strix-agent 0.4.0__py3-none-any.whl → 0.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. strix/agents/StrixAgent/strix_agent.py +3 -3
  2. strix/agents/StrixAgent/system_prompt.jinja +30 -26
  3. strix/agents/base_agent.py +159 -75
  4. strix/agents/state.py +5 -2
  5. strix/config/__init__.py +12 -0
  6. strix/config/config.py +172 -0
  7. strix/interface/assets/tui_styles.tcss +195 -230
  8. strix/interface/cli.py +16 -41
  9. strix/interface/main.py +151 -74
  10. strix/interface/streaming_parser.py +119 -0
  11. strix/interface/tool_components/__init__.py +4 -0
  12. strix/interface/tool_components/agent_message_renderer.py +190 -0
  13. strix/interface/tool_components/agents_graph_renderer.py +54 -38
  14. strix/interface/tool_components/base_renderer.py +68 -36
  15. strix/interface/tool_components/browser_renderer.py +106 -91
  16. strix/interface/tool_components/file_edit_renderer.py +117 -36
  17. strix/interface/tool_components/finish_renderer.py +43 -10
  18. strix/interface/tool_components/notes_renderer.py +63 -38
  19. strix/interface/tool_components/proxy_renderer.py +133 -92
  20. strix/interface/tool_components/python_renderer.py +121 -8
  21. strix/interface/tool_components/registry.py +19 -12
  22. strix/interface/tool_components/reporting_renderer.py +196 -28
  23. strix/interface/tool_components/scan_info_renderer.py +22 -19
  24. strix/interface/tool_components/terminal_renderer.py +270 -90
  25. strix/interface/tool_components/thinking_renderer.py +8 -6
  26. strix/interface/tool_components/todo_renderer.py +225 -0
  27. strix/interface/tool_components/user_message_renderer.py +26 -19
  28. strix/interface/tool_components/web_search_renderer.py +7 -6
  29. strix/interface/tui.py +907 -262
  30. strix/interface/utils.py +236 -4
  31. strix/llm/__init__.py +6 -2
  32. strix/llm/config.py +8 -5
  33. strix/llm/dedupe.py +217 -0
  34. strix/llm/llm.py +209 -356
  35. strix/llm/memory_compressor.py +6 -5
  36. strix/llm/utils.py +17 -8
  37. strix/runtime/__init__.py +12 -3
  38. strix/runtime/docker_runtime.py +121 -202
  39. strix/runtime/tool_server.py +55 -95
  40. strix/skills/README.md +64 -0
  41. strix/skills/__init__.py +110 -0
  42. strix/{prompts → skills}/frameworks/nextjs.jinja +26 -0
  43. strix/skills/scan_modes/deep.jinja +145 -0
  44. strix/skills/scan_modes/quick.jinja +63 -0
  45. strix/skills/scan_modes/standard.jinja +91 -0
  46. strix/telemetry/README.md +38 -0
  47. strix/telemetry/__init__.py +7 -1
  48. strix/telemetry/posthog.py +137 -0
  49. strix/telemetry/tracer.py +194 -54
  50. strix/tools/__init__.py +11 -4
  51. strix/tools/agents_graph/agents_graph_actions.py +20 -21
  52. strix/tools/agents_graph/agents_graph_actions_schema.xml +8 -8
  53. strix/tools/browser/browser_actions.py +10 -6
  54. strix/tools/browser/browser_actions_schema.xml +6 -1
  55. strix/tools/browser/browser_instance.py +96 -48
  56. strix/tools/browser/tab_manager.py +121 -102
  57. strix/tools/context.py +12 -0
  58. strix/tools/executor.py +63 -4
  59. strix/tools/file_edit/file_edit_actions.py +6 -3
  60. strix/tools/file_edit/file_edit_actions_schema.xml +45 -3
  61. strix/tools/finish/finish_actions.py +80 -105
  62. strix/tools/finish/finish_actions_schema.xml +121 -14
  63. strix/tools/notes/notes_actions.py +6 -33
  64. strix/tools/notes/notes_actions_schema.xml +50 -46
  65. strix/tools/proxy/proxy_actions.py +14 -2
  66. strix/tools/proxy/proxy_actions_schema.xml +0 -1
  67. strix/tools/proxy/proxy_manager.py +28 -16
  68. strix/tools/python/python_actions.py +2 -2
  69. strix/tools/python/python_actions_schema.xml +9 -1
  70. strix/tools/python/python_instance.py +39 -37
  71. strix/tools/python/python_manager.py +43 -31
  72. strix/tools/registry.py +73 -12
  73. strix/tools/reporting/reporting_actions.py +218 -31
  74. strix/tools/reporting/reporting_actions_schema.xml +256 -8
  75. strix/tools/terminal/terminal_actions.py +2 -2
  76. strix/tools/terminal/terminal_actions_schema.xml +6 -0
  77. strix/tools/terminal/terminal_manager.py +41 -30
  78. strix/tools/thinking/thinking_actions_schema.xml +27 -25
  79. strix/tools/todo/__init__.py +18 -0
  80. strix/tools/todo/todo_actions.py +568 -0
  81. strix/tools/todo/todo_actions_schema.xml +225 -0
  82. strix/utils/__init__.py +0 -0
  83. strix/utils/resource_paths.py +13 -0
  84. {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info}/METADATA +90 -65
  85. strix_agent-0.6.2.dist-info/RECORD +134 -0
  86. {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info}/WHEEL +1 -1
  87. strix/llm/request_queue.py +0 -87
  88. strix/prompts/README.md +0 -64
  89. strix/prompts/__init__.py +0 -109
  90. strix_agent-0.4.0.dist-info/RECORD +0 -118
  91. /strix/{prompts → skills}/cloud/.gitkeep +0 -0
  92. /strix/{prompts → skills}/coordination/root_agent.jinja +0 -0
  93. /strix/{prompts → skills}/custom/.gitkeep +0 -0
  94. /strix/{prompts → skills}/frameworks/fastapi.jinja +0 -0
  95. /strix/{prompts → skills}/protocols/graphql.jinja +0 -0
  96. /strix/{prompts → skills}/reconnaissance/.gitkeep +0 -0
  97. /strix/{prompts → skills}/technologies/firebase_firestore.jinja +0 -0
  98. /strix/{prompts → skills}/technologies/supabase.jinja +0 -0
  99. /strix/{prompts → skills}/vulnerabilities/authentication_jwt.jinja +0 -0
  100. /strix/{prompts → skills}/vulnerabilities/broken_function_level_authorization.jinja +0 -0
  101. /strix/{prompts → skills}/vulnerabilities/business_logic.jinja +0 -0
  102. /strix/{prompts → skills}/vulnerabilities/csrf.jinja +0 -0
  103. /strix/{prompts → skills}/vulnerabilities/idor.jinja +0 -0
  104. /strix/{prompts → skills}/vulnerabilities/information_disclosure.jinja +0 -0
  105. /strix/{prompts → skills}/vulnerabilities/insecure_file_uploads.jinja +0 -0
  106. /strix/{prompts → skills}/vulnerabilities/mass_assignment.jinja +0 -0
  107. /strix/{prompts → skills}/vulnerabilities/open_redirect.jinja +0 -0
  108. /strix/{prompts → skills}/vulnerabilities/path_traversal_lfi_rfi.jinja +0 -0
  109. /strix/{prompts → skills}/vulnerabilities/race_conditions.jinja +0 -0
  110. /strix/{prompts → skills}/vulnerabilities/rce.jinja +0 -0
  111. /strix/{prompts → skills}/vulnerabilities/sql_injection.jinja +0 -0
  112. /strix/{prompts → skills}/vulnerabilities/ssrf.jinja +0 -0
  113. /strix/{prompts → skills}/vulnerabilities/subdomain_takeover.jinja +0 -0
  114. /strix/{prompts → skills}/vulnerabilities/xss.jinja +0 -0
  115. /strix/{prompts → skills}/vulnerabilities/xxe.jinja +0 -0
  116. {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info}/entry_points.txt +0 -0
  117. {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,134 @@
1
+ strix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ strix/agents/StrixAgent/__init__.py,sha256=VORJn9aPTJyNn2-QAv6DbTxO1P9wBQoSZlAw-YuTJhQ,63
3
+ strix/agents/StrixAgent/strix_agent.py,sha256=Wqm8Yf0HJjQhL8thPx6S8K-j2haTptd4cIlPfBGOqGo,3073
4
+ strix/agents/StrixAgent/system_prompt.jinja,sha256=cS9JaX1aQ-T2qDHmy7VURQ0QfhPTfFz2nxEK3s-vtYY,22467
5
+ strix/agents/__init__.py,sha256=F64zhlv4XZIvYJSL9eSSuKUsIVGPLG3ycpQBhZwvE6A,168
6
+ strix/agents/base_agent.py,sha256=vPzjeMucD7eqJnBeVAIIL_FpDFKoOE2XD5wIq24AgNU,23775
7
+ strix/agents/state.py,sha256=RJtw8dm1qj3yMvnJFIMltxE_M6F3j8eBlImjroo8_Oc,5884
8
+ strix/config/__init__.py,sha256=LSHZt0kR6YCQH4AuWsG4ZnugYGLPlPrdN0qq2a99AgY,180
9
+ strix/config/config.py,sha256=sxfxJje57L2-JVEZ6P-RRxfGSRAsvA0kTScWleNnuY4,4977
10
+ strix/interface/__init__.py,sha256=ww23sFOQhICEIrIo0MtwWv2qHW5qUprvPj8QVjv3SM0,44
11
+ strix/interface/assets/tui_styles.tcss,sha256=BDfDqabn1XTC3cxKiAazYvrXWDbeCH_zvbJTNIZqQAM,11489
12
+ strix/interface/cli.py,sha256=3ViBpWthxOAtfLsH_fOk_-KOrd3rIkEy-A3DXdzNSoA,6460
13
+ strix/interface/main.py,sha256=ZldcXg2O1Utn6FzN2k3LMy1CxUF4mY0ZfKAJecEINRY,19964
14
+ strix/interface/streaming_parser.py,sha256=mruZfcv72A3ofi90YTsrU6dR9cQttsrdIgHvNlRUqYQ,3554
15
+ strix/interface/tool_components/__init__.py,sha256=Y1-7p2YsQTEcc1g-Fg9-d5PPfqxBeZemQamgKm9LKs8,1033
16
+ strix/interface/tool_components/agent_message_renderer.py,sha256=M2N8aAZETMClAxbHhF_5YJDsFfkYEUmpmXdr-K3Z0Fo,5909
17
+ strix/interface/tool_components/agents_graph_renderer.py,sha256=nDd9DHd3zVQjffHVGwucrnC4ciIcJpV9XPVv-zawgF4,4315
18
+ strix/interface/tool_components/base_renderer.py,sha256=6GCCXgeAhV5XNDKqdykkbDOM6nzuIZYM-1xLzwy6CzA,2598
19
+ strix/interface/tool_components/browser_renderer.py,sha256=lJIUxTpZfu7FYUQrljOuXeH-m09kKVcpmqSkxixeuLI,4560
20
+ strix/interface/tool_components/file_edit_renderer.py,sha256=BZhat0CMpl9SL2gUY2hI1U1l4FB4cEV8zJ8z4FzQ3RQ,6169
21
+ strix/interface/tool_components/finish_renderer.py,sha256=USGAySHje-hJmA8nSu35clfSmnu9NKD_x6AMA0xl_Xo,2055
22
+ strix/interface/tool_components/notes_renderer.py,sha256=kx9x3bdllmWK7Og1rG9ImdWBvlCPIfDldGKyqecZRks,4191
23
+ strix/interface/tool_components/proxy_renderer.py,sha256=jNTxr-KoRIpz1TlXNdVgR5yrJUcbEdJevk98s3lP5LA,11181
24
+ strix/interface/tool_components/python_renderer.py,sha256=A6oaY6vRyXlgPokksaNf7agIecWTVLj_MBWCwcs_NTs,4649
25
+ strix/interface/tool_components/registry.py,sha256=MnCMe2YTaeB29KNfy-tuN8p-ln8dgdZ1J351X5xl44k,2413
26
+ strix/interface/tool_components/reporting_renderer.py,sha256=jLGY6OTjLyytMaY4k2Q3Tj7Oyi5_JHpN2H6IQ45umJ8,7258
27
+ strix/interface/tool_components/scan_info_renderer.py,sha256=Oee9IGMDc5AU7PmrmWamkdbwjUdDvXRMtqs3uzgEZ9w,2170
28
+ strix/interface/tool_components/terminal_renderer.py,sha256=KFdxWTQL3M8dDvAUjNS1oNBJGqfHZ1wAtvq4GXkPuJI,9227
29
+ strix/interface/tool_components/thinking_renderer.py,sha256=RBegWWdwQ-jBaCKIDTgUKH2KKrvHYD_Ea1CacJf9KGQ,905
30
+ strix/interface/tool_components/todo_renderer.py,sha256=IeI94_unbbXXT6Y4N2UHS2nkjXe83TT5CLoogkL1osE,7423
31
+ strix/interface/tool_components/user_message_renderer.py,sha256=fSnEwnXW5eM_vl2LpfJNDZsuNiSSWTuEhkqzXKyYlmg,1385
32
+ strix/interface/tool_components/web_search_renderer.py,sha256=zRRehZwzXNWpWec3tM0KIwL8dzmNybrAFzV5I9_5sjI,844
33
+ strix/interface/tui.py,sha256=PFBsHQRBtSSWwTyjxcq-1fRJSYuXaGM4-Pu_gz70c6M,67199
34
+ strix/interface/utils.py,sha256=8hR7aO8J98NYg9RRjj5Xa063Zt78S4099RRVvmA48Ls,26952
35
+ strix/llm/__init__.py,sha256=vhSTrDOD1744m_Gr1Mi-aSjqmw4HsGWX_n6ASqaINl0,414
36
+ strix/llm/config.py,sha256=1RKsoapNLg4QII4-mGhZrNaZcMAtH_kV5KaVMznAeVQ,733
37
+ strix/llm/dedupe.py,sha256=9mYggs7OahJD5_uf2Bg36TY92OoFI9-aOCutSEGjfLc,7174
38
+ strix/llm/llm.py,sha256=Qg4uzD8NgI2V9frX9gcpfmVjA4-u16WHEr34gBer8yw,11752
39
+ strix/llm/memory_compressor.py,sha256=fa-s-i61J723tj3ecgarm7zEBhn0bw0e3feHZoA9KL0,7131
40
+ strix/llm/utils.py,sha256=cxcMbCDufET88ob7OHz3VGq48keo2JGFuesSy07pqSA,2923
41
+ strix/runtime/__init__.py,sha256=m2CVvceE3GQAmAyOz4nm8cGxv1n-hoLpfwhU0xJn6Z0,772
42
+ strix/runtime/docker_runtime.py,sha256=QevlMTuX6UBBwM7qgO2Sm0XS4xot4KvbAkiHrPtDNUQ,12159
43
+ strix/runtime/runtime.py,sha256=PRYByipRG9OhtIphIruGBSe4k-glVnYAXH68mikqt78,730
44
+ strix/runtime/tool_server.py,sha256=6c-86elO9pBS0fEuKUli9bydEdKvU4ArTyjCpUXtQSk,5057
45
+ strix/skills/README.md,sha256=WjGJ_VdeS2qL_EzyKCZeRoLULcqyoxgfwhb5AyGTZc0,2926
46
+ strix/skills/__init__.py,sha256=btneUv2_WfSVAp85q2t3knOLe88fWXcJEKCWMqatRAQ,3456
47
+ strix/skills/cloud/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ strix/skills/coordination/root_agent.jinja,sha256=05VUZKnBX_7-FjEYilEq_OJG4u01_56bf4mzGNbFtJc,1996
49
+ strix/skills/custom/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ strix/skills/frameworks/fastapi.jinja,sha256=zXa08RDG9tVQu6MZetKCcOUPuDDKJJF1anTei7_2TZg,10200
51
+ strix/skills/frameworks/nextjs.jinja,sha256=1K0w0U-_AIFWHesd0kXNGAa2_jBLXhhbpbhzTIboMqE,12053
52
+ strix/skills/protocols/graphql.jinja,sha256=Tm538OmlFOJvuOwd4MXYQ4KYR7k4bJ4r-z4yoFcF6-8,10454
53
+ strix/skills/reconnaissance/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ strix/skills/scan_modes/deep.jinja,sha256=_njDSh-drRcFH9A3Cja469yRtPHfUwKcBEX5VKiOcn4,7264
55
+ strix/skills/scan_modes/quick.jinja,sha256=oG_UanFM1-dxAA5WyYkT_3xG3HyOpWFJyg3YZbR4fz8,3050
56
+ strix/skills/scan_modes/standard.jinja,sha256=XTE3nWB0S66AQicszZHAOVYVNj-Wd5fnH_0-__6bTHs,4274
57
+ strix/skills/technologies/firebase_firestore.jinja,sha256=J2yBQ3CvX8V0DV9hebmS1tdMyQhWHTRXIAe0bNYGAdM,11365
58
+ strix/skills/technologies/supabase.jinja,sha256=ib2B_OLRLrutr1f8ez8paiXQcLBKS8_LU3iJBnO_vK4,11751
59
+ strix/skills/vulnerabilities/authentication_jwt.jinja,sha256=XVil5YMvjo4DyDWdpAxrclMTh-0JELU9G4PFK6SHA6c,8388
60
+ strix/skills/vulnerabilities/broken_function_level_authorization.jinja,sha256=DTFi_M9_edDprotnRaUoCjUvPztnafXD7NMsF6wfd38,7204
61
+ strix/skills/vulnerabilities/business_logic.jinja,sha256=hz7oOzJWNFjj_DZndzqahzU5ckOrJMCpnIy3GxzmzCA,9857
62
+ strix/skills/vulnerabilities/csrf.jinja,sha256=ZOkFB-u2qWi1wYq_vTJzINi9eOyHh6rUsOgJguGvutk,8739
63
+ strix/skills/vulnerabilities/idor.jinja,sha256=8XE24uCCyJXBPZj6JIhcwPx3mx9_NE2mr5XAfhq8yTE,10785
64
+ strix/skills/vulnerabilities/information_disclosure.jinja,sha256=Q7HF_lYciVXFe6AkD1cAxFmx7jYyEVNZUItF12OfVd4,12428
65
+ strix/skills/vulnerabilities/insecure_file_uploads.jinja,sha256=1qLkfQoOyyTwbafJknmDJ_tjV9fzJInfLNc3eeagWos,10972
66
+ strix/skills/vulnerabilities/mass_assignment.jinja,sha256=9RTI_waQPvXBBEhzHCzytlbU7zF2Y-B3HuYHeUs7iO8,7176
67
+ strix/skills/vulnerabilities/open_redirect.jinja,sha256=Mbit385OO7fTSGRb0xFHb_zhOMAFc84jjdKIsJY-Q7U,9456
68
+ strix/skills/vulnerabilities/path_traversal_lfi_rfi.jinja,sha256=5Zfr424yM2LyFxt9A6q18RhbIjdq1MB6mpjWbG_FA7o,7916
69
+ strix/skills/vulnerabilities/race_conditions.jinja,sha256=ZHxdZc7v7yvhmUWJK3P3kIzOz3oaYRb2OJEzG1momcg,8372
70
+ strix/skills/vulnerabilities/rce.jinja,sha256=tgmocWH3Y9FJ3fBeR9DTR7ViBcuH5salGis8vywJ2h8,8425
71
+ strix/skills/vulnerabilities/sql_injection.jinja,sha256=tdFjkbu5p_di0Zui95o2Eh1v-Ulvwg1qcENDNLswv1Q,8426
72
+ strix/skills/vulnerabilities/ssrf.jinja,sha256=XMRAclYIyq0JhVSXopTsbZAm-wRxz-zZfDHdaFgVeiw,7899
73
+ strix/skills/vulnerabilities/subdomain_takeover.jinja,sha256=_-MBlD-Hu8A8YEnMEW3tkP0ywJeWKVQ0aTrpgR4l2vY,10004
74
+ strix/skills/vulnerabilities/xss.jinja,sha256=GG1egKjGw9onilu1azEhU2Hfxu9XjQfBA2j4P4KQRzE,8675
75
+ strix/skills/vulnerabilities/xxe.jinja,sha256=yyWl5i74YiFZIhQknMPWXLKL0C5gwL6Ra_YB4xddJsc,7841
76
+ strix/telemetry/README.md,sha256=iDMQmO85OmkvWuf1i0oVNzTFkqZT9X7NkSisMT4o4vU,1952
77
+ strix/telemetry/__init__.py,sha256=OFbAbBWhckE8DvmcgOYkH-kyXyB3qB4VQKRQBBIXruI,182
78
+ strix/telemetry/posthog.py,sha256=ijUS10TMY1yyNEvgSwAzDZfcOw5xkVokLnakoSCa3kA,3809
79
+ strix/telemetry/tracer.py,sha256=2rSwU5lQbq3lQ0L7LmqOfekaD6B9FGRAk1sf_GreihY,17810
80
+ strix/tools/__init__.py,sha256=RH2HRZtD5z_5UESd0NAGh8qw8AmjlaSrLgH2DEB388s,1927
81
+ strix/tools/agents_graph/__init__.py,sha256=FLJ2kGxXICY2pRKrC0sgIc3w3KhZo7VID7hbwYcgBfM,278
82
+ strix/tools/agents_graph/agents_graph_actions.py,sha256=KzOxgd9QXMcjgnudmmTwbSUkU4w642CAiApveVuOXcY,21130
83
+ strix/tools/agents_graph/agents_graph_actions_schema.xml,sha256=ltiFgtwFMAINJ_ybN0JzAhDQS2G2CXCoMXyu6EZ6ldY,12563
84
+ strix/tools/argument_parser.py,sha256=FA9LY0UBtMqDRJ9yHHUzQCbGmpTQvo4xTtLiNRYG2FU,3861
85
+ strix/tools/browser/__init__.py,sha256=7azA1td3CfwCVqMYIIzT0vGM0-JUNq3sZBYB0QnwFDk,75
86
+ strix/tools/browser/browser_actions.py,sha256=Qdb-V-G1niAHG_rvqg3tVq2_nxPlxKuJ7tmkl0BMFlc,7112
87
+ strix/tools/browser/browser_actions_schema.xml,sha256=aJvGmgNsEYtvrwcEPXL8Ol1sr_E1Sx8f1Kj4ZkuGlII,9949
88
+ strix/tools/browser/browser_instance.py,sha256=9Opp2w2AF47Jl5G8xYD5nGvLXRtNT2e_EXtZb17J-xo,19925
89
+ strix/tools/browser/tab_manager.py,sha256=AN7jDhH8h18Nk4ITpK-eYxVAwTppor-ebvN6HNUW4Sc,13338
90
+ strix/tools/context.py,sha256=iov-gT0SKQ3dG-0nLzh0Kugeo1UJ3uK8uhZlRFIFl_0,280
91
+ strix/tools/executor.py,sha256=horscHU2AoEYsEBbvsbjFTMVqkfwbZq7RV0qhSIq2Wg,12665
92
+ strix/tools/file_edit/__init__.py,sha256=8f6VlEoGP627hGtcdLkr63vdrTmdb8uyPIqB0qVgZd8,141
93
+ strix/tools/file_edit/file_edit_actions.py,sha256=Ygo7HeA9JaeMaP_3pjgRQ_xvAyRId2HqDMNZQ6LLWrA,4017
94
+ strix/tools/file_edit/file_edit_actions_schema.xml,sha256=QH4WRycebHUo1CV7062VJG2YzXiqxBSXiz_-Bqgjeus,6815
95
+ strix/tools/finish/__init__.py,sha256=QIMaHYusly8YaFR3zjYsy_CFawwgtTZvOU7gsEumFrw,68
96
+ strix/tools/finish/finish_actions.py,sha256=6YidFZMRrZijkZEGxmXD6PjwxIESsYR8ICsRGDykR78,5085
97
+ strix/tools/finish/finish_actions_schema.xml,sha256=T1OgnsbJRbXlDNd3WR6kKf3qmckrC8efkpVb1P_SQKE,11082
98
+ strix/tools/notes/__init__.py,sha256=DUpkZUWN21tb9AXCWfJLrKrgLz9YEBVU8KQy1J6cyxU,189
99
+ strix/tools/notes/notes_actions.py,sha256=KJ0uL18JTHD1O4zLgdKjlfDwAmD3KH2dUGhTzbOswPc,4907
100
+ strix/tools/notes/notes_actions_schema.xml,sha256=X6QjRfTP8O2Xh-xBgS7UzdvdgXyijrvDWP3jE_LwkS8,6083
101
+ strix/tools/proxy/__init__.py,sha256=K3BFmT6QWw9heB7l7DnmI-Yj-DOI3BAow6g0GLWsA0c,329
102
+ strix/tools/proxy/proxy_actions.py,sha256=7KfjpwVOeGcH-NOyk4MAGZKHxUcHTgeMPtAoxBe-hD8,2849
103
+ strix/tools/proxy/proxy_actions_schema.xml,sha256=X8UGnt5DGDHALMj3HhoqUPSNUHTOeiOPMxlGVIVuBKA,11544
104
+ strix/tools/proxy/proxy_manager.py,sha256=AR_SD9gmliKCWaKjzE7U8gG27d_Ymm0VPmZjxqyYKoM,29186
105
+ strix/tools/python/__init__.py,sha256=l5mFWKbtis61S8lOQY-gFn-vIlc13lu1K-pqqRywOCk,72
106
+ strix/tools/python/python_actions.py,sha256=H95Jw3SWxyjkzP8ZmQHdq0zoGhIoSM9XsMJyAXYoauY,1436
107
+ strix/tools/python/python_actions_schema.xml,sha256=IrWOeFwAExkhjNaxoZE71uTYu1n2GjpODCqZwVMIGDY,7445
108
+ strix/tools/python/python_instance.py,sha256=nXyDFhWwZKLPN8ERg1QeNi4bS8bf4Qn--IjeOCjeegU,5965
109
+ strix/tools/python/python_manager.py,sha256=PQPQ1WxCyXSsbKasUBQfTtYfDfYS1mbE31acps2gioI,4851
110
+ strix/tools/registry.py,sha256=F_AL2ombKJKq96GwLVrTAGsHL4IHM7CSN2R1dvspRVQ,7890
111
+ strix/tools/reporting/__init__.py,sha256=_cYxb3OP0vZtCwO_ExLBjhAn1ECaG-SH1Z4wfGDyT1Y,110
112
+ strix/tools/reporting/reporting_actions.py,sha256=VygNYzR8tJYQWB592YUUKBgrSO1DNaSGcYlHLbGSp50,8095
113
+ strix/tools/reporting/reporting_actions_schema.xml,sha256=gDZpiHf9CLDx9F21ARUo-ZNCmQjpXQviatouEdnN98A,15174
114
+ strix/tools/terminal/__init__.py,sha256=xvflcrbLQ31o_K3cWFsIhTm7gxY5JF0nVnhOIadwFV0,80
115
+ strix/tools/terminal/terminal_actions.py,sha256=RgQSAL8A38vejaFIQqXJmYptP9EnM-dHfaeGLMKvZRg,892
116
+ strix/tools/terminal/terminal_actions_schema.xml,sha256=8EJ1D0DxyOB85m0VpO9vNmNCtRX7-iiBIAFi1CJt0_s,7360
117
+ strix/tools/terminal/terminal_manager.py,sha256=3zaMezGeSWT5MU9nsSI_omnzppJPu453LVbEF7FFW6k,5415
118
+ strix/tools/terminal/terminal_session.py,sha256=peHQrYCty-KHYECbT8jOww06ayGUK_rAcnTlYIfQe00,16008
119
+ strix/tools/thinking/__init__.py,sha256=-v4fG4fyFkqsTSWspDtCT6IRlyRM8zeUwEM-kscaxDE,58
120
+ strix/tools/thinking/thinking_actions.py,sha256=Ll96ZjlnOS5zSRSCmGzi7hcgyURBlCdq4xcstEhdRao,564
121
+ strix/tools/thinking/thinking_actions_schema.xml,sha256=PktLxjbC5lUJ-LHhvUCiN0l2eVq9XJd1DN7DomChMZk,2260
122
+ strix/tools/todo/__init__.py,sha256=ZzKnUl0XHCi44gHZomkukUO0JwBBin8YQt0rg1KMSZc,278
123
+ strix/tools/todo/todo_actions.py,sha256=4q4OvWBMR68VrRFwQs065cUqX6jWII-FTde9Me-RQ3A,17238
124
+ strix/tools/todo/todo_actions_schema.xml,sha256=bS13jaY-BJqeVdB4jT0sptIbGdbPNPjnuxmfzRguYHY,10107
125
+ strix/tools/web_search/__init__.py,sha256=m5PCHXqeNVraLRLNIbh54Z2N4Y_75d-ftqwyq3dbCd0,70
126
+ strix/tools/web_search/web_search_actions.py,sha256=LRS3AjGO4JLIyu_B6-ogfWOsnENwqrrCa8Rz0vxuuGQ,3107
127
+ strix/tools/web_search/web_search_actions_schema.xml,sha256=Ihc3Gv4LaPI_MzBbwZOt3y4pwg9xmtl8KfPNvFihEP4,4805
128
+ strix/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
+ strix/utils/resource_paths.py,sha256=6YNZIMvYOWrl8hkV9LakmXHbrgBbOwqu6ca8mSOLlv4,351
130
+ strix_agent-0.6.2.dist-info/METADATA,sha256=dOpIS8kdZBKx46yVFmF6fF90fzVaYnTdiFm0QC2hhK4,11816
131
+ strix_agent-0.6.2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
132
+ strix_agent-0.6.2.dist-info/entry_points.txt,sha256=F_Uflti5ggiBHZ9wUHTqacARQavQDiditz0mRN0qnAA,51
133
+ strix_agent-0.6.2.dist-info/licenses/LICENSE,sha256=fblpcTQlHjFL2NOSV_4XDJiz4q2bLtZ-l6yvlhPnueM,11345
134
+ strix_agent-0.6.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.0
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,87 +0,0 @@
1
- import asyncio
2
- import logging
3
- import os
4
- import threading
5
- import time
6
- from typing import Any
7
-
8
- import litellm
9
- from litellm import ModelResponse, completion
10
- from tenacity import retry, retry_if_exception, stop_after_attempt, wait_exponential
11
-
12
-
13
- logger = logging.getLogger(__name__)
14
-
15
-
16
- def should_retry_exception(exception: Exception) -> bool:
17
- status_code = None
18
-
19
- if hasattr(exception, "status_code"):
20
- status_code = exception.status_code
21
- elif hasattr(exception, "response") and hasattr(exception.response, "status_code"):
22
- status_code = exception.response.status_code
23
-
24
- if status_code is not None:
25
- return bool(litellm._should_retry(status_code))
26
- return True
27
-
28
-
29
- class LLMRequestQueue:
30
- def __init__(self, max_concurrent: int = 6, delay_between_requests: float = 5.0):
31
- rate_limit_delay = os.getenv("LLM_RATE_LIMIT_DELAY")
32
- if rate_limit_delay:
33
- delay_between_requests = float(rate_limit_delay)
34
-
35
- rate_limit_concurrent = os.getenv("LLM_RATE_LIMIT_CONCURRENT")
36
- if rate_limit_concurrent:
37
- max_concurrent = int(rate_limit_concurrent)
38
-
39
- self.max_concurrent = max_concurrent
40
- self.delay_between_requests = delay_between_requests
41
- self._semaphore = threading.BoundedSemaphore(max_concurrent)
42
- self._last_request_time = 0.0
43
- self._lock = threading.Lock()
44
-
45
- async def make_request(self, completion_args: dict[str, Any]) -> ModelResponse:
46
- try:
47
- while not self._semaphore.acquire(timeout=0.2):
48
- await asyncio.sleep(0.1)
49
-
50
- with self._lock:
51
- now = time.time()
52
- time_since_last = now - self._last_request_time
53
- sleep_needed = max(0, self.delay_between_requests - time_since_last)
54
- self._last_request_time = now + sleep_needed
55
-
56
- if sleep_needed > 0:
57
- await asyncio.sleep(sleep_needed)
58
-
59
- return await self._reliable_request(completion_args)
60
- finally:
61
- self._semaphore.release()
62
-
63
- @retry( # type: ignore[misc]
64
- stop=stop_after_attempt(7),
65
- wait=wait_exponential(multiplier=6, min=12, max=150),
66
- retry=retry_if_exception(should_retry_exception),
67
- reraise=True,
68
- )
69
- async def _reliable_request(self, completion_args: dict[str, Any]) -> ModelResponse:
70
- response = completion(**completion_args, stream=False)
71
- if isinstance(response, ModelResponse):
72
- return response
73
- self._raise_unexpected_response()
74
- raise RuntimeError("Unreachable code")
75
-
76
- def _raise_unexpected_response(self) -> None:
77
- raise RuntimeError("Unexpected response type")
78
-
79
-
80
- _global_queue: LLMRequestQueue | None = None
81
-
82
-
83
- def get_global_queue() -> LLMRequestQueue:
84
- global _global_queue # noqa: PLW0603
85
- if _global_queue is None:
86
- _global_queue = LLMRequestQueue()
87
- return _global_queue
strix/prompts/README.md DELETED
@@ -1,64 +0,0 @@
1
- # 📚 Strix Prompt Modules
2
-
3
- ## 🎯 Overview
4
-
5
- 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.
6
-
7
- ---
8
-
9
- ## 🏗️ Architecture
10
-
11
- ### How Prompts Work
12
-
13
- When an agent is created, it can load up to 5 specialized prompt modules relevant to the specific subtask and context at hand:
14
-
15
- ```python
16
- # Agent creation with specialized modules
17
- create_agent(
18
- task="Test authentication mechanisms in API",
19
- name="Auth Specialist",
20
- prompt_modules="authentication_jwt,business_logic"
21
- )
22
- ```
23
-
24
- 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.
25
-
26
- ---
27
-
28
- ## 📁 Module Categories
29
-
30
- | Category | Purpose |
31
- |----------|---------|
32
- | **`/vulnerabilities`** | Advanced testing techniques for core vulnerability classes like authentication bypasses, business logic flaws, and race conditions |
33
- | **`/frameworks`** | Specific testing methods for popular frameworks e.g. Django, Express, FastAPI, and Next.js |
34
- | **`/technologies`** | Specialized techniques for third-party services such as Supabase, Firebase, Auth0, and payment gateways |
35
- | **`/protocols`** | Protocol-specific testing patterns for GraphQL, WebSocket, OAuth, and other communication standards |
36
- | **`/cloud`** | Cloud provider security testing for AWS, Azure, GCP, and Kubernetes environments |
37
- | **`/reconnaissance`** | Advanced information gathering and enumeration techniques for comprehensive attack surface mapping |
38
- | **`/custom`** | Community-contributed modules for specialized or industry-specific testing scenarios |
39
-
40
- ---
41
-
42
- ## 🎨 Creating New Modules
43
-
44
- ### What Should a Module Contain?
45
-
46
- A good prompt module is a structured knowledge package that typically includes:
47
-
48
- - **Advanced techniques** - Non-obvious methods specific to the task and domain
49
- - **Practical examples** - Working payloads, commands, or test cases with variations
50
- - **Validation methods** - How to confirm findings and avoid false positives
51
- - **Context-specific insights** - Environment and version nuances, configuration-dependent behavior, and edge cases
52
-
53
- Modules use XML-style tags for structure and focus on deep, specialized knowledge that significantly enhances agent capabilities for that specific context.
54
-
55
- ---
56
-
57
- ## 🤝 Contributing
58
-
59
- 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.
60
-
61
- ---
62
-
63
- > [!NOTE]
64
- > **Work in Progress** - We're actively expanding the prompt module collection with specialized techniques and new categories.
strix/prompts/__init__.py DELETED
@@ -1,109 +0,0 @@
1
- from pathlib import Path
2
-
3
- from jinja2 import Environment
4
-
5
-
6
- def get_available_prompt_modules() -> dict[str, list[str]]:
7
- modules_dir = Path(__file__).parent
8
- available_modules = {}
9
-
10
- for category_dir in modules_dir.iterdir():
11
- if category_dir.is_dir() and not category_dir.name.startswith("__"):
12
- category_name = category_dir.name
13
- modules = []
14
-
15
- for file_path in category_dir.glob("*.jinja"):
16
- module_name = file_path.stem
17
- modules.append(module_name)
18
-
19
- if modules:
20
- available_modules[category_name] = sorted(modules)
21
-
22
- return available_modules
23
-
24
-
25
- def get_all_module_names() -> set[str]:
26
- all_modules = set()
27
- for category_modules in get_available_prompt_modules().values():
28
- all_modules.update(category_modules)
29
- return all_modules
30
-
31
-
32
- def validate_module_names(module_names: list[str]) -> dict[str, list[str]]:
33
- available_modules = get_all_module_names()
34
- valid_modules = []
35
- invalid_modules = []
36
-
37
- for module_name in module_names:
38
- if module_name in available_modules:
39
- valid_modules.append(module_name)
40
- else:
41
- invalid_modules.append(module_name)
42
-
43
- return {"valid": valid_modules, "invalid": invalid_modules}
44
-
45
-
46
- def generate_modules_description() -> str:
47
- available_modules = get_available_prompt_modules()
48
-
49
- if not available_modules:
50
- return "No prompt modules available"
51
-
52
- all_module_names = get_all_module_names()
53
-
54
- if not all_module_names:
55
- return "No prompt modules available"
56
-
57
- sorted_modules = sorted(all_module_names)
58
- modules_str = ", ".join(sorted_modules)
59
-
60
- description = (
61
- f"List of prompt modules to load for this agent (max 5). Available modules: {modules_str}. "
62
- )
63
-
64
- example_modules = sorted_modules[:2]
65
- if example_modules:
66
- example = f"Example: {', '.join(example_modules)} for specialized agent"
67
- description += example
68
-
69
- return description
70
-
71
-
72
- def load_prompt_modules(module_names: list[str], jinja_env: Environment) -> dict[str, str]:
73
- import logging
74
-
75
- logger = logging.getLogger(__name__)
76
- module_content = {}
77
- prompts_dir = Path(__file__).parent
78
-
79
- available_modules = get_available_prompt_modules()
80
-
81
- for module_name in module_names:
82
- try:
83
- module_path = None
84
-
85
- if "/" in module_name:
86
- module_path = f"{module_name}.jinja"
87
- else:
88
- for category, modules in available_modules.items():
89
- if module_name in modules:
90
- module_path = f"{category}/{module_name}.jinja"
91
- break
92
-
93
- if not module_path:
94
- root_candidate = f"{module_name}.jinja"
95
- if (prompts_dir / root_candidate).exists():
96
- module_path = root_candidate
97
-
98
- if module_path and (prompts_dir / module_path).exists():
99
- template = jinja_env.get_template(module_path)
100
- var_name = module_name.split("/")[-1]
101
- module_content[var_name] = template.render()
102
- logger.info(f"Loaded prompt module: {module_name} -> {var_name}")
103
- else:
104
- logger.warning(f"Prompt module not found: {module_name}")
105
-
106
- except (FileNotFoundError, OSError, ValueError) as e:
107
- logger.warning(f"Failed to load prompt module {module_name}: {e}")
108
-
109
- return module_content
@@ -1,118 +0,0 @@
1
- strix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- strix/agents/StrixAgent/__init__.py,sha256=VORJn9aPTJyNn2-QAv6DbTxO1P9wBQoSZlAw-YuTJhQ,63
3
- strix/agents/StrixAgent/strix_agent.py,sha256=2UCIFnal72hnNxAM6C1RpdE-C2X-LwhIgiGp3i2iPTk,3084
4
- strix/agents/StrixAgent/system_prompt.jinja,sha256=Nz-iXpFpsGpJNI5uBOxyF_dDrFPPLpqMBGZax8w3o2M,21751
5
- strix/agents/__init__.py,sha256=F64zhlv4XZIvYJSL9eSSuKUsIVGPLG3ycpQBhZwvE6A,168
6
- strix/agents/base_agent.py,sha256=UGxCC-ZABwFuSTlabfjX6QQhiTpV9vIfk2-U3a5tU_M,20361
7
- strix/agents/state.py,sha256=pH3BijyYVOYVx2_PeocLeeAysAuIKqHPtYrLDTbBcB0,5720
8
- strix/interface/__init__.py,sha256=ww23sFOQhICEIrIo0MtwWv2qHW5qUprvPj8QVjv3SM0,44
9
- strix/interface/assets/tui_styles.tcss,sha256=iwhx72f5bIiSg72168ifyR_Q0TKfL3Bf0lU6cyJw1Bg,12114
10
- strix/interface/cli.py,sha256=gHfXRVmzkjfp9ggWjJ5wK0K_beV-GxO7IUnp_I4nCVQ,7352
11
- strix/interface/main.py,sha256=THota1lF4HOL30tB-GladhZmiXh-BQ10mlvqvuFpH-4,17358
12
- strix/interface/tool_components/__init__.py,sha256=Dz5ci3VMzvhlPOwQ2x9Nd11cmFzx1OP7sdlpZPMTT4k,935
13
- strix/interface/tool_components/agents_graph_renderer.py,sha256=eVFRqmJ-TxyxZ-hssLTweDAio4UvsZZgxo2dKky0N1U,4399
14
- strix/interface/tool_components/base_renderer.py,sha256=P0zYeRnbkr2NYoE8KDQmj1TzrAGX6r7qLMb4Sw7AoTI,1905
15
- strix/interface/tool_components/browser_renderer.py,sha256=_dj5VSNtuyJSH24SyORB466H8bpa7aD4_hNiFmqxtFs,4526
16
- strix/interface/tool_components/file_edit_renderer.py,sha256=DfV8l4o3ssipXO_-uIrTS674h_9kALFLkuCb3ry0T0s,3612
17
- strix/interface/tool_components/finish_renderer.py,sha256=Q5Jp-irOqh0rfdoG_wzEiNhDqLDkdP-NwhYoag4N_Kw,984
18
- strix/interface/tool_components/notes_renderer.py,sha256=ZykNe589yXR9D9mm5rSHfdppZs65STVr356EDh7GaT0,3736
19
- strix/interface/tool_components/proxy_renderer.py,sha256=cK1mG3r0QhlVd_jbdKGiWuw5MJNLs0sTZCkOMZRRbJw,10224
20
- strix/interface/tool_components/python_renderer.py,sha256=2jlD6J9PpL-rOUq8uQiny54KLr45yVPO24Q-Tn_6VxM,1208
21
- strix/interface/tool_components/registry.py,sha256=o7KnSfuIR4NYAZ5EGk11YThrTdCmbb7pMBhxr1o6Fec,2370
22
- strix/interface/tool_components/reporting_renderer.py,sha256=mfVadTe5IbWBc9lV-rCJ29BxwXcFhaY1aON4_0qzglM,1762
23
- strix/interface/tool_components/scan_info_renderer.py,sha256=BWeWJ-Whm-MOM_CKSR59SKTq1tKbUh2kqi1cdOkUorQ,2223
24
- strix/interface/tool_components/terminal_renderer.py,sha256=-ORL2vBH5XImUZrIfk_K3fij3QQks2ejiJgcU11OB0E,3349
25
- strix/interface/tool_components/thinking_renderer.py,sha256=-MQLkKCgOJksrustULFf2jhAjJrP5bbfS2BQ6zgNKCc,927
26
- strix/interface/tool_components/user_message_renderer.py,sha256=6gHJ1hG-pwcTsxLM7JuYZuaDu8cZ2MeOuUDF3LGy-4I,1432
27
- strix/interface/tool_components/web_search_renderer.py,sha256=JnJa22ACIcRksfxxdenesUo8Th9cHSxo-fej9YcuYHs,911
28
- strix/interface/tui.py,sha256=ogfY4eJfFnrvEy9QNUUbD2ynxohewkwhN4WBa68QJpE,44822
29
- strix/interface/utils.py,sha256=vmt9bcRB8CYSQiyHujGAAOlucOuUmAMtDYod0nLOqVY,19397
30
- strix/llm/__init__.py,sha256=WqYE3Xc2e1D3z4QyjwN_jZPTdqsSDX6ODYsu-dcufSk,230
31
- strix/llm/config.py,sha256=Au_BX11ueu3Ko0FPmjauyuOQt3J0mqGFgOrOe9wPWFA,620
32
- strix/llm/llm.py,sha256=AIQ5R8jmd2eiWqCq3hQfKVzPu-C7TGYd5jfdlNYHlBE,17009
33
- strix/llm/memory_compressor.py,sha256=5ozNKFHCawIl8VssPs-eQNqT7vAUBGNOj4QNZmrMCIM,7054
34
- strix/llm/request_queue.py,sha256=YkyQf3I1rtkIA25TIPkOd1zx1l9u09aPYvSN3DpRObY,2921
35
- strix/llm/utils.py,sha256=0Z0r6qo9IfUSOJt5FJsq3X-veXrA8A09frc2VIy-aS4,2540
36
- strix/prompts/README.md,sha256=m81jqGbsmYMzuvBQ7jrftqTv1qGuUvpKH09XYCpRV4A,2983
37
- strix/prompts/__init__.py,sha256=cysOM59WT-BVsGrGc09a8Dkcog2Ky08fDZJXXHZ8iJg,3490
38
- strix/prompts/cloud/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- strix/prompts/coordination/root_agent.jinja,sha256=05VUZKnBX_7-FjEYilEq_OJG4u01_56bf4mzGNbFtJc,1996
40
- strix/prompts/custom/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- strix/prompts/frameworks/fastapi.jinja,sha256=zXa08RDG9tVQu6MZetKCcOUPuDDKJJF1anTei7_2TZg,10200
42
- strix/prompts/frameworks/nextjs.jinja,sha256=AhfKOUl2bQzRWqqCw5lrjrXaKIkZ3CEEjVJwPJF8nP8,8175
43
- strix/prompts/protocols/graphql.jinja,sha256=Tm538OmlFOJvuOwd4MXYQ4KYR7k4bJ4r-z4yoFcF6-8,10454
44
- strix/prompts/reconnaissance/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- strix/prompts/technologies/firebase_firestore.jinja,sha256=J2yBQ3CvX8V0DV9hebmS1tdMyQhWHTRXIAe0bNYGAdM,11365
46
- strix/prompts/technologies/supabase.jinja,sha256=ib2B_OLRLrutr1f8ez8paiXQcLBKS8_LU3iJBnO_vK4,11751
47
- strix/prompts/vulnerabilities/authentication_jwt.jinja,sha256=XVil5YMvjo4DyDWdpAxrclMTh-0JELU9G4PFK6SHA6c,8388
48
- strix/prompts/vulnerabilities/broken_function_level_authorization.jinja,sha256=DTFi_M9_edDprotnRaUoCjUvPztnafXD7NMsF6wfd38,7204
49
- strix/prompts/vulnerabilities/business_logic.jinja,sha256=hz7oOzJWNFjj_DZndzqahzU5ckOrJMCpnIy3GxzmzCA,9857
50
- strix/prompts/vulnerabilities/csrf.jinja,sha256=ZOkFB-u2qWi1wYq_vTJzINi9eOyHh6rUsOgJguGvutk,8739
51
- strix/prompts/vulnerabilities/idor.jinja,sha256=8XE24uCCyJXBPZj6JIhcwPx3mx9_NE2mr5XAfhq8yTE,10785
52
- strix/prompts/vulnerabilities/information_disclosure.jinja,sha256=Q7HF_lYciVXFe6AkD1cAxFmx7jYyEVNZUItF12OfVd4,12428
53
- strix/prompts/vulnerabilities/insecure_file_uploads.jinja,sha256=1qLkfQoOyyTwbafJknmDJ_tjV9fzJInfLNc3eeagWos,10972
54
- strix/prompts/vulnerabilities/mass_assignment.jinja,sha256=9RTI_waQPvXBBEhzHCzytlbU7zF2Y-B3HuYHeUs7iO8,7176
55
- strix/prompts/vulnerabilities/open_redirect.jinja,sha256=Mbit385OO7fTSGRb0xFHb_zhOMAFc84jjdKIsJY-Q7U,9456
56
- strix/prompts/vulnerabilities/path_traversal_lfi_rfi.jinja,sha256=5Zfr424yM2LyFxt9A6q18RhbIjdq1MB6mpjWbG_FA7o,7916
57
- strix/prompts/vulnerabilities/race_conditions.jinja,sha256=ZHxdZc7v7yvhmUWJK3P3kIzOz3oaYRb2OJEzG1momcg,8372
58
- strix/prompts/vulnerabilities/rce.jinja,sha256=tgmocWH3Y9FJ3fBeR9DTR7ViBcuH5salGis8vywJ2h8,8425
59
- strix/prompts/vulnerabilities/sql_injection.jinja,sha256=tdFjkbu5p_di0Zui95o2Eh1v-Ulvwg1qcENDNLswv1Q,8426
60
- strix/prompts/vulnerabilities/ssrf.jinja,sha256=XMRAclYIyq0JhVSXopTsbZAm-wRxz-zZfDHdaFgVeiw,7899
61
- strix/prompts/vulnerabilities/subdomain_takeover.jinja,sha256=_-MBlD-Hu8A8YEnMEW3tkP0ywJeWKVQ0aTrpgR4l2vY,10004
62
- strix/prompts/vulnerabilities/xss.jinja,sha256=GG1egKjGw9onilu1azEhU2Hfxu9XjQfBA2j4P4KQRzE,8675
63
- strix/prompts/vulnerabilities/xxe.jinja,sha256=yyWl5i74YiFZIhQknMPWXLKL0C5gwL6Ra_YB4xddJsc,7841
64
- strix/runtime/__init__.py,sha256=v2oQ1JnfZXOTU8N3NOEI_MbxNp8BfNj8hTgvjCsNGvY,445
65
- strix/runtime/docker_runtime.py,sha256=HSxzgfX88LqhiwBHuMytL_ooOa5ET07hsAJQaIWESzE,15776
66
- strix/runtime/runtime.py,sha256=PRYByipRG9OhtIphIruGBSe4k-glVnYAXH68mikqt78,730
67
- strix/runtime/tool_server.py,sha256=pKI_cL1aSEFC8b6Dqaz9bRfh0LvcCKwb6ZCN-v6OYls,6618
68
- strix/telemetry/__init__.py,sha256=8QLHMvrVNLlGKezWTf3mTSmTOLIvDS5xVciry1KVS1Y,130
69
- strix/telemetry/tracer.py,sha256=PAfj9Cb68LEC58SYFj7KqDcGMB-0c9ETnS-k4-eaJbc,12241
70
- strix/tools/__init__.py,sha256=_uTsOImNlJ-q5FFuQBTIYpIAgTETNI7Pm2hkaLE-Z5Y,1743
71
- strix/tools/agents_graph/__init__.py,sha256=FLJ2kGxXICY2pRKrC0sgIc3w3KhZo7VID7hbwYcgBfM,278
72
- strix/tools/agents_graph/agents_graph_actions.py,sha256=7_C-M-QLkvbKbvAORIGXyYPx08wxXOgvq7e_3x8QuXg,21075
73
- strix/tools/agents_graph/agents_graph_actions_schema.xml,sha256=fczqDpNw2m58p2O_G0amBZso--EjEGZuK829lB-cXdE,12617
74
- strix/tools/argument_parser.py,sha256=FA9LY0UBtMqDRJ9yHHUzQCbGmpTQvo4xTtLiNRYG2FU,3861
75
- strix/tools/browser/__init__.py,sha256=7azA1td3CfwCVqMYIIzT0vGM0-JUNq3sZBYB0QnwFDk,75
76
- strix/tools/browser/browser_actions.py,sha256=ZmHdPoow9R-rkSjopYsY1-56fL7Tm-WDCaIPvs1_hys,7037
77
- strix/tools/browser/browser_actions_schema.xml,sha256=zZQD8sZWsNnxxnlY3QYDrfKHFu0x6i1vtfSOlIGyiho,9573
78
- strix/tools/browser/browser_instance.py,sha256=vgb-dJP20SLaBOhFExn-uwfjdISBrHJpG7ewfiKQkYU,18605
79
- strix/tools/browser/tab_manager.py,sha256=SMkDFOgEr3ADK2rP5Ko2uK-A24-8p0VsbjoxEj5eU-Y,13011
80
- strix/tools/executor.py,sha256=ED7P7LLCuZk12jO4t8UvB6Ms-xm4kVeu6F4WHetETnM,10223
81
- strix/tools/file_edit/__init__.py,sha256=8f6VlEoGP627hGtcdLkr63vdrTmdb8uyPIqB0qVgZd8,141
82
- strix/tools/file_edit/file_edit_actions.py,sha256=Aq-LwzmmfUJrBZWy5TeP9Pxz9TlmeqOSqemD4jBkt2s,3951
83
- strix/tools/file_edit/file_edit_actions_schema.xml,sha256=tt0_QgSjOtTEy8ordsXUcEiVTePiybgn4aisZJ_qnbc,5477
84
- strix/tools/finish/__init__.py,sha256=QIMaHYusly8YaFR3zjYsy_CFawwgtTZvOU7gsEumFrw,68
85
- strix/tools/finish/finish_actions.py,sha256=_M8mmJzPAwSJCG0NOGAhhON24OQMJV16dqZEa_s8HuM,5702
86
- strix/tools/finish/finish_actions_schema.xml,sha256=CS6Vq3ByyNxv2spRWS4oJcmUzWQRB7jvUAOS8aiWd8o,2294
87
- strix/tools/notes/__init__.py,sha256=DUpkZUWN21tb9AXCWfJLrKrgLz9YEBVU8KQy1J6cyxU,189
88
- strix/tools/notes/notes_actions.py,sha256=Y4b7DYJzh7XwwlMTdwThOLuIuuj46m6KiMrMKekTMCE,5771
89
- strix/tools/notes/notes_actions_schema.xml,sha256=nzirWDyzbPRxaG3jdSjmSCjfY-ggDy1kH7oxAuj-osw,6264
90
- strix/tools/proxy/__init__.py,sha256=K3BFmT6QWw9heB7l7DnmI-Yj-DOI3BAow6g0GLWsA0c,329
91
- strix/tools/proxy/proxy_actions.py,sha256=KM4m7pVpbkpx_Srgj9kUiAPZyfMpLI_p-_gCxq6Ojfg,2545
92
- strix/tools/proxy/proxy_actions_schema.xml,sha256=d87SUKD2J16KQCCFpI5w2y-Ax1NgwOuGO3crr1bFPDw,11567
93
- strix/tools/proxy/proxy_manager.py,sha256=rmy8c_7jcYl9WeeA3O2lcZBnN7hESpTYxoLCM24VhVE,28933
94
- strix/tools/python/__init__.py,sha256=l5mFWKbtis61S8lOQY-gFn-vIlc13lu1K-pqqRywOCk,72
95
- strix/tools/python/python_actions.py,sha256=pXnyvspsV3nh2qNWJTY7m4rzoXYfYQ7mpsVIXd7NC68,1432
96
- strix/tools/python/python_actions_schema.xml,sha256=XcIUjz5uEoI7J3VFcby0O-0ovm9r9cIoADfpqDGJXlU,7122
97
- strix/tools/python/python_instance.py,sha256=x8ARTRAmAjdotD3TbtN0O4Q3nKNjfOzxTMN7aGU99H8,5547
98
- strix/tools/python/python_manager.py,sha256=C_k8C8uQ6ESpAgzhbf3km9jeFyI52SGd2m36mD1ErhM,4235
99
- strix/tools/registry.py,sha256=LhByebT-OiIfc2g-hxlSopzHoNIPiKfPJRvTAK37TOQ,6025
100
- strix/tools/reporting/__init__.py,sha256=_cYxb3OP0vZtCwO_ExLBjhAn1ECaG-SH1Z4wfGDyT1Y,110
101
- strix/tools/reporting/reporting_actions.py,sha256=1d0QfWWqjaamErfQk5Fms3FxdSJoi3vuZ0e17V2Nh_Y,2192
102
- strix/tools/reporting/reporting_actions_schema.xml,sha256=y_g0iuyBuCh79fvA0ri8fOPlXY7uUd-P-mdzXLUyIJg,1629
103
- strix/tools/terminal/__init__.py,sha256=xvflcrbLQ31o_K3cWFsIhTm7gxY5JF0nVnhOIadwFV0,80
104
- strix/tools/terminal/terminal_actions.py,sha256=9BGsK7Io7PyW8YGpJfXHeJTP3AVqBAgaKZl-1YziF8Y,888
105
- strix/tools/terminal/terminal_actions_schema.xml,sha256=L7dzjvKNZpJA0qDGp1gCBuwXiY4mtjOq7T2tNDmUPA4,7257
106
- strix/tools/terminal/terminal_manager.py,sha256=cTWosczkMoSRSjQ-xPR56D5cIYcylA3NAZb4FSi32Ko,4838
107
- strix/tools/terminal/terminal_session.py,sha256=peHQrYCty-KHYECbT8jOww06ayGUK_rAcnTlYIfQe00,16008
108
- strix/tools/thinking/__init__.py,sha256=-v4fG4fyFkqsTSWspDtCT6IRlyRM8zeUwEM-kscaxDE,58
109
- strix/tools/thinking/thinking_actions.py,sha256=Ll96ZjlnOS5zSRSCmGzi7hcgyURBlCdq4xcstEhdRao,564
110
- strix/tools/thinking/thinking_actions_schema.xml,sha256=otD4dOhQx4uyudLnjA_HIP6EmUS5NvKG4l3CVFrg8go,2756
111
- strix/tools/web_search/__init__.py,sha256=m5PCHXqeNVraLRLNIbh54Z2N4Y_75d-ftqwyq3dbCd0,70
112
- strix/tools/web_search/web_search_actions.py,sha256=LRS3AjGO4JLIyu_B6-ogfWOsnENwqrrCa8Rz0vxuuGQ,3107
113
- strix/tools/web_search/web_search_actions_schema.xml,sha256=Ihc3Gv4LaPI_MzBbwZOt3y4pwg9xmtl8KfPNvFihEP4,4805
114
- strix_agent-0.4.0.dist-info/LICENSE,sha256=fblpcTQlHjFL2NOSV_4XDJiz4q2bLtZ-l6yvlhPnueM,11345
115
- strix_agent-0.4.0.dist-info/METADATA,sha256=KKlOhpQWTVOHenx0YqR5bA6_nrsXOsoAtfYzQoQrD8E,10353
116
- strix_agent-0.4.0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
117
- strix_agent-0.4.0.dist-info/entry_points.txt,sha256=F_Uflti5ggiBHZ9wUHTqacARQavQDiditz0mRN0qnAA,51
118
- strix_agent-0.4.0.dist-info/RECORD,,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes