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.
- strix/agents/StrixAgent/strix_agent.py +3 -3
- strix/agents/StrixAgent/system_prompt.jinja +30 -26
- strix/agents/base_agent.py +159 -75
- strix/agents/state.py +5 -2
- strix/config/__init__.py +12 -0
- strix/config/config.py +172 -0
- strix/interface/assets/tui_styles.tcss +195 -230
- strix/interface/cli.py +16 -41
- strix/interface/main.py +151 -74
- strix/interface/streaming_parser.py +119 -0
- strix/interface/tool_components/__init__.py +4 -0
- strix/interface/tool_components/agent_message_renderer.py +190 -0
- strix/interface/tool_components/agents_graph_renderer.py +54 -38
- strix/interface/tool_components/base_renderer.py +68 -36
- strix/interface/tool_components/browser_renderer.py +106 -91
- strix/interface/tool_components/file_edit_renderer.py +117 -36
- strix/interface/tool_components/finish_renderer.py +43 -10
- strix/interface/tool_components/notes_renderer.py +63 -38
- strix/interface/tool_components/proxy_renderer.py +133 -92
- strix/interface/tool_components/python_renderer.py +121 -8
- strix/interface/tool_components/registry.py +19 -12
- strix/interface/tool_components/reporting_renderer.py +196 -28
- strix/interface/tool_components/scan_info_renderer.py +22 -19
- strix/interface/tool_components/terminal_renderer.py +270 -90
- strix/interface/tool_components/thinking_renderer.py +8 -6
- strix/interface/tool_components/todo_renderer.py +225 -0
- strix/interface/tool_components/user_message_renderer.py +26 -19
- strix/interface/tool_components/web_search_renderer.py +7 -6
- strix/interface/tui.py +907 -262
- strix/interface/utils.py +236 -4
- strix/llm/__init__.py +6 -2
- strix/llm/config.py +8 -5
- strix/llm/dedupe.py +217 -0
- strix/llm/llm.py +209 -356
- strix/llm/memory_compressor.py +6 -5
- strix/llm/utils.py +17 -8
- strix/runtime/__init__.py +12 -3
- strix/runtime/docker_runtime.py +121 -202
- strix/runtime/tool_server.py +55 -95
- strix/skills/README.md +64 -0
- strix/skills/__init__.py +110 -0
- strix/{prompts → skills}/frameworks/nextjs.jinja +26 -0
- strix/skills/scan_modes/deep.jinja +145 -0
- strix/skills/scan_modes/quick.jinja +63 -0
- strix/skills/scan_modes/standard.jinja +91 -0
- strix/telemetry/README.md +38 -0
- strix/telemetry/__init__.py +7 -1
- strix/telemetry/posthog.py +137 -0
- strix/telemetry/tracer.py +194 -54
- strix/tools/__init__.py +11 -4
- strix/tools/agents_graph/agents_graph_actions.py +20 -21
- strix/tools/agents_graph/agents_graph_actions_schema.xml +8 -8
- strix/tools/browser/browser_actions.py +10 -6
- strix/tools/browser/browser_actions_schema.xml +6 -1
- strix/tools/browser/browser_instance.py +96 -48
- strix/tools/browser/tab_manager.py +121 -102
- strix/tools/context.py +12 -0
- strix/tools/executor.py +63 -4
- strix/tools/file_edit/file_edit_actions.py +6 -3
- strix/tools/file_edit/file_edit_actions_schema.xml +45 -3
- strix/tools/finish/finish_actions.py +80 -105
- strix/tools/finish/finish_actions_schema.xml +121 -14
- strix/tools/notes/notes_actions.py +6 -33
- strix/tools/notes/notes_actions_schema.xml +50 -46
- strix/tools/proxy/proxy_actions.py +14 -2
- strix/tools/proxy/proxy_actions_schema.xml +0 -1
- strix/tools/proxy/proxy_manager.py +28 -16
- strix/tools/python/python_actions.py +2 -2
- strix/tools/python/python_actions_schema.xml +9 -1
- strix/tools/python/python_instance.py +39 -37
- strix/tools/python/python_manager.py +43 -31
- strix/tools/registry.py +73 -12
- strix/tools/reporting/reporting_actions.py +218 -31
- strix/tools/reporting/reporting_actions_schema.xml +256 -8
- strix/tools/terminal/terminal_actions.py +2 -2
- strix/tools/terminal/terminal_actions_schema.xml +6 -0
- strix/tools/terminal/terminal_manager.py +41 -30
- strix/tools/thinking/thinking_actions_schema.xml +27 -25
- strix/tools/todo/__init__.py +18 -0
- strix/tools/todo/todo_actions.py +568 -0
- strix/tools/todo/todo_actions_schema.xml +225 -0
- strix/utils/__init__.py +0 -0
- strix/utils/resource_paths.py +13 -0
- {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info}/METADATA +90 -65
- strix_agent-0.6.2.dist-info/RECORD +134 -0
- {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info}/WHEEL +1 -1
- strix/llm/request_queue.py +0 -87
- strix/prompts/README.md +0 -64
- strix/prompts/__init__.py +0 -109
- strix_agent-0.4.0.dist-info/RECORD +0 -118
- /strix/{prompts → skills}/cloud/.gitkeep +0 -0
- /strix/{prompts → skills}/coordination/root_agent.jinja +0 -0
- /strix/{prompts → skills}/custom/.gitkeep +0 -0
- /strix/{prompts → skills}/frameworks/fastapi.jinja +0 -0
- /strix/{prompts → skills}/protocols/graphql.jinja +0 -0
- /strix/{prompts → skills}/reconnaissance/.gitkeep +0 -0
- /strix/{prompts → skills}/technologies/firebase_firestore.jinja +0 -0
- /strix/{prompts → skills}/technologies/supabase.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/authentication_jwt.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/broken_function_level_authorization.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/business_logic.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/csrf.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/idor.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/information_disclosure.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/insecure_file_uploads.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/mass_assignment.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/open_redirect.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/path_traversal_lfi_rfi.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/race_conditions.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/rce.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/sql_injection.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/ssrf.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/subdomain_takeover.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/xss.jinja +0 -0
- /strix/{prompts → skills}/vulnerabilities/xxe.jinja +0 -0
- {strix_agent-0.4.0.dist-info → strix_agent-0.6.2.dist-info}/entry_points.txt +0 -0
- {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,,
|
strix/llm/request_queue.py
DELETED
|
@@ -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
|
|
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
|
|
File without changes
|