strix-agent 0.1.18__py3-none-any.whl → 0.3.1__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.

Potentially problematic release.


This version of strix-agent might be problematic. Click here for more details.

Files changed (68) hide show
  1. strix/agents/StrixAgent/strix_agent.py +49 -39
  2. strix/agents/StrixAgent/system_prompt.jinja +23 -10
  3. strix/agents/base_agent.py +90 -10
  4. strix/agents/state.py +23 -2
  5. strix/interface/cli.py +171 -0
  6. strix/interface/main.py +482 -0
  7. strix/{cli → interface}/tool_components/base_renderer.py +2 -2
  8. strix/{cli → interface}/tool_components/reporting_renderer.py +2 -1
  9. strix/{cli → interface}/tool_components/scan_info_renderer.py +17 -12
  10. strix/{cli/app.py → interface/tui.py} +107 -31
  11. strix/interface/utils.py +435 -0
  12. strix/prompts/README.md +64 -0
  13. strix/prompts/__init__.py +1 -1
  14. strix/prompts/cloud/.gitkeep +0 -0
  15. strix/prompts/custom/.gitkeep +0 -0
  16. strix/prompts/frameworks/fastapi.jinja +142 -0
  17. strix/prompts/frameworks/nextjs.jinja +126 -0
  18. strix/prompts/protocols/graphql.jinja +215 -0
  19. strix/prompts/reconnaissance/.gitkeep +0 -0
  20. strix/prompts/technologies/firebase_firestore.jinja +177 -0
  21. strix/prompts/technologies/supabase.jinja +189 -0
  22. strix/prompts/vulnerabilities/authentication_jwt.jinja +133 -115
  23. strix/prompts/vulnerabilities/broken_function_level_authorization.jinja +146 -0
  24. strix/prompts/vulnerabilities/business_logic.jinja +146 -118
  25. strix/prompts/vulnerabilities/csrf.jinja +137 -131
  26. strix/prompts/vulnerabilities/idor.jinja +149 -118
  27. strix/prompts/vulnerabilities/insecure_file_uploads.jinja +188 -0
  28. strix/prompts/vulnerabilities/mass_assignment.jinja +141 -0
  29. strix/prompts/vulnerabilities/path_traversal_lfi_rfi.jinja +142 -0
  30. strix/prompts/vulnerabilities/race_conditions.jinja +135 -165
  31. strix/prompts/vulnerabilities/rce.jinja +128 -180
  32. strix/prompts/vulnerabilities/sql_injection.jinja +128 -192
  33. strix/prompts/vulnerabilities/ssrf.jinja +118 -151
  34. strix/prompts/vulnerabilities/xss.jinja +144 -196
  35. strix/prompts/vulnerabilities/xxe.jinja +151 -243
  36. strix/runtime/docker_runtime.py +28 -7
  37. strix/runtime/runtime.py +4 -1
  38. strix/telemetry/__init__.py +4 -0
  39. strix/{cli → telemetry}/tracer.py +21 -9
  40. strix/tools/agents_graph/agents_graph_actions.py +17 -12
  41. strix/tools/agents_graph/agents_graph_actions_schema.xml +10 -14
  42. strix/tools/executor.py +1 -1
  43. strix/tools/finish/finish_actions.py +1 -1
  44. strix/tools/registry.py +1 -1
  45. strix/tools/reporting/reporting_actions.py +1 -1
  46. {strix_agent-0.1.18.dist-info → strix_agent-0.3.1.dist-info}/METADATA +95 -15
  47. strix_agent-0.3.1.dist-info/RECORD +115 -0
  48. strix_agent-0.3.1.dist-info/entry_points.txt +3 -0
  49. strix/cli/main.py +0 -702
  50. strix_agent-0.1.18.dist-info/RECORD +0 -99
  51. strix_agent-0.1.18.dist-info/entry_points.txt +0 -3
  52. /strix/{cli → interface}/__init__.py +0 -0
  53. /strix/{cli/assets/cli.tcss → interface/assets/tui_styles.tcss} +0 -0
  54. /strix/{cli → interface}/tool_components/__init__.py +0 -0
  55. /strix/{cli → interface}/tool_components/agents_graph_renderer.py +0 -0
  56. /strix/{cli → interface}/tool_components/browser_renderer.py +0 -0
  57. /strix/{cli → interface}/tool_components/file_edit_renderer.py +0 -0
  58. /strix/{cli → interface}/tool_components/finish_renderer.py +0 -0
  59. /strix/{cli → interface}/tool_components/notes_renderer.py +0 -0
  60. /strix/{cli → interface}/tool_components/proxy_renderer.py +0 -0
  61. /strix/{cli → interface}/tool_components/python_renderer.py +0 -0
  62. /strix/{cli → interface}/tool_components/registry.py +0 -0
  63. /strix/{cli → interface}/tool_components/terminal_renderer.py +0 -0
  64. /strix/{cli → interface}/tool_components/thinking_renderer.py +0 -0
  65. /strix/{cli → interface}/tool_components/user_message_renderer.py +0 -0
  66. /strix/{cli → interface}/tool_components/web_search_renderer.py +0 -0
  67. {strix_agent-0.1.18.dist-info → strix_agent-0.3.1.dist-info}/LICENSE +0 -0
  68. {strix_agent-0.1.18.dist-info → strix_agent-0.3.1.dist-info}/WHEEL +0 -0
@@ -199,11 +199,11 @@ def create_agent(
199
199
  if prompt_modules:
200
200
  module_list = [m.strip() for m in prompt_modules.split(",") if m.strip()]
201
201
 
202
- if len(module_list) > 3:
202
+ if len(module_list) > 5:
203
203
  return {
204
204
  "success": False,
205
205
  "error": (
206
- "Cannot specify more than 3 prompt modules for an agent "
206
+ "Cannot specify more than 5 prompt modules for an agent "
207
207
  "(use comma-separated format)"
208
208
  ),
209
209
  "agent_id": None,
@@ -228,15 +228,19 @@ def create_agent(
228
228
  from strix.agents.state import AgentState
229
229
  from strix.llm.config import LLMConfig
230
230
 
231
- state = AgentState(task=task, agent_name=name, parent_id=parent_id, max_iterations=200)
231
+ state = AgentState(task=task, agent_name=name, parent_id=parent_id, max_iterations=300)
232
232
 
233
233
  llm_config = LLMConfig(prompt_modules=module_list)
234
- agent = StrixAgent(
235
- {
236
- "llm_config": llm_config,
237
- "state": state,
238
- }
239
- )
234
+
235
+ parent_agent = _agent_instances.get(parent_id)
236
+ agent_config = {
237
+ "llm_config": llm_config,
238
+ "state": state,
239
+ }
240
+ if parent_agent and hasattr(parent_agent, "non_interactive"):
241
+ agent_config["non_interactive"] = parent_agent.non_interactive
242
+
243
+ agent = StrixAgent(agent_config)
240
244
 
241
245
  inherited_messages = []
242
246
  if inherit_context:
@@ -487,7 +491,7 @@ def stop_agent(agent_id: str) -> dict[str, Any]:
487
491
  agent_node["status"] = "stopping"
488
492
 
489
493
  try:
490
- from strix.cli.tracer import get_global_tracer
494
+ from strix.telemetry.tracer import get_global_tracer
491
495
 
492
496
  tracer = get_global_tracer()
493
497
  if tracer:
@@ -565,7 +569,7 @@ def send_user_message_to_agent(agent_id: str, message: str) -> dict[str, Any]:
565
569
  @register_tool(sandbox_execution=False)
566
570
  def wait_for_message(
567
571
  agent_state: Any,
568
- reason: str = "Waiting for messages from other agents or user input",
572
+ reason: str = "Waiting for messages from other agents",
569
573
  ) -> dict[str, Any]:
570
574
  try:
571
575
  agent_id = agent_state.agent_id
@@ -578,7 +582,7 @@ def wait_for_message(
578
582
  _agent_graph["nodes"][agent_id]["waiting_reason"] = reason
579
583
 
580
584
  try:
581
- from strix.cli.tracer import get_global_tracer
585
+ from strix.telemetry.tracer import get_global_tracer
582
586
 
583
587
  tracer = get_global_tracer()
584
588
  if tracer:
@@ -603,5 +607,6 @@ def wait_for_message(
603
607
  "Message from another agent",
604
608
  "Message from user",
605
609
  "Direct communication",
610
+ "Waiting timeout reached",
606
611
  ],
607
612
  }
@@ -80,7 +80,7 @@ Only create a new agent if no existing agent is handling the specific task.</des
80
80
  <description>Whether the new agent should inherit parent's conversation history and context</description>
81
81
  </parameter>
82
82
  <parameter name="prompt_modules" type="string" required="false">
83
- <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}}</description>
83
+ <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}}</description>
84
84
  </parameter>
85
85
  </parameters>
86
86
  <returns type="Dict[str, Any]">
@@ -114,7 +114,7 @@ Only create a new agent if no existing agent is handling the specific task.</des
114
114
  <parameter=prompt_modules>xss</parameter>
115
115
  </function>
116
116
 
117
- # Example of maximum 3 related modules (borderline acceptable)
117
+ # Example of up to 5 related modules (borderline acceptable)
118
118
  <function=create_agent>
119
119
  <parameter=task>Test for server-side vulnerabilities including SSRF, XXE, and potential
120
120
  RCE vectors in file upload and XML processing endpoints.</parameter>
@@ -182,25 +182,26 @@ Only create a new agent if no existing agent is handling the specific task.</des
182
182
  </returns>
183
183
  </tool>
184
184
  <tool name="wait_for_message">
185
- <description>Pause the agent loop indefinitely until receiving a message from another agent or user.
185
+ <description>Pause the agent loop indefinitely until receiving a message from another agent.
186
186
 
187
187
  This tool puts the agent into a waiting state where it remains idle until it receives any form of communication. The agent will automatically resume execution when a message arrives.
188
188
 
189
189
  IMPORTANT: This tool causes the agent to stop all activity until a message is received. Use it when you need to:
190
190
  - Wait for subagent completion reports
191
191
  - Coordinate with other agents before proceeding
192
- - Pause for user input or decisions
193
192
  - Synchronize multi-agent workflows
194
193
 
195
194
  NOTE: If you are waiting for an agent that is NOT your subagent, you first tell it to message you with updates before waiting for it. Otherwise, you will wait forever!
196
195
  </description>
197
- <details>When this tool is called, the agent enters a waiting state and will not continue execution until:
198
- - Another agent sends it a message via send_message_to_agent
199
- - A user sends it a direct message through the CLI
200
- - Any other form of inter-agent or user communication occurs
196
+ <details>When this tool is called, the agent (you) enters a waiting state and will not continue execution until:
197
+ - Another agent sends a message via send_message_to_agent
198
+ - Any other form of inter-agent communication occurs
199
+ - Waiting timeout is reached
201
200
 
202
201
  The agent will automatically resume from where it left off once a message is received.
203
- This is particularly useful for parent agents waiting for subagent results or for coordination points in multi-agent workflows.</details>
202
+ This is particularly useful for parent agents waiting for subagent results or for coordination points in multi-agent workflows.
203
+ NOTE: If you finished your task, and you do NOT have any child agents running, you should NEVER use this tool, and just call finish tool instead.
204
+ </details>
204
205
  <parameters>
205
206
  <parameter name="reason" type="string" required="false">
206
207
  <description>Explanation for why the agent is waiting (for logging and monitoring purposes)</description>
@@ -215,11 +216,6 @@ NOTE: If you are waiting for an agent that is NOT your subagent, you first tell
215
216
  <parameter=reason>Waiting for subdomain enumeration and port scanning subagents to complete their tasks and report findings</parameter>
216
217
  </function>
217
218
 
218
- # Wait for user input on next steps
219
- <function=wait_for_message>
220
- <parameter=reason>Waiting for user decision on whether to proceed with exploitation of discovered SQL injection vulnerability</parameter>
221
- </function>
222
-
223
219
  # Coordinate with other agents
224
220
  <function=wait_for_message>
225
221
  <parameter=reason>Waiting for vulnerability assessment agent to share discovered attack vectors before proceeding with exploitation phase</parameter>
strix/tools/executor.py CHANGED
@@ -240,7 +240,7 @@ async def _execute_single_tool(
240
240
 
241
241
  def _get_tracer_and_agent_id(agent_state: Any | None) -> tuple[Any | None, str]:
242
242
  try:
243
- from strix.cli.tracer import get_global_tracer
243
+ from strix.telemetry.tracer import get_global_tracer
244
244
 
245
245
  tracer = get_global_tracer()
246
246
  agent_id = agent_state.agent_id if agent_state else "unknown_agent"
@@ -107,7 +107,7 @@ def _check_active_agents(agent_state: Any = None) -> dict[str, Any] | None:
107
107
 
108
108
  def _finalize_with_tracer(content: str, success: bool) -> dict[str, Any]:
109
109
  try:
110
- from strix.cli.tracer import get_global_tracer
110
+ from strix.telemetry.tracer import get_global_tracer
111
111
 
112
112
  tracer = get_global_tracer()
113
113
  if tracer:
strix/tools/registry.py CHANGED
@@ -33,7 +33,7 @@ def _process_dynamic_content(content: str) -> str:
33
33
  logger.warning("Could not import prompts utilities for dynamic schema generation")
34
34
  content = content.replace(
35
35
  "{{DYNAMIC_MODULES_DESCRIPTION}}",
36
- "List of prompt modules to load for this agent (max 3). Module discovery failed.",
36
+ "List of prompt modules to load for this agent (max 5). Module discovery failed.",
37
37
  )
38
38
 
39
39
  return content
@@ -27,7 +27,7 @@ def create_vulnerability_report(
27
27
  return {"success": False, "message": validation_error}
28
28
 
29
29
  try:
30
- from strix.cli.tracer import get_global_tracer
30
+ from strix.telemetry.tracer import get_global_tracer
31
31
 
32
32
  tracer = get_global_tracer()
33
33
  if tracer:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strix-agent
3
- Version: 0.1.18
3
+ Version: 0.3.1
4
4
  Summary: Open-source AI Hackers for your apps
5
5
  License: Apache-2.0
6
6
  Keywords: cybersecurity,security,vulnerability,scanner,pentest,agent,ai,cli
@@ -44,10 +44,11 @@ Description-Content-Type: text/markdown
44
44
 
45
45
  ### Open-source AI hackers for your apps
46
46
 
47
+ [![Strix](https://img.shields.io/badge/Strix-usestrix.com-1a1a1a.svg)](https://usestrix.com)
47
48
  [![Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
48
- [![Vercel AI Accelerator 2025](https://img.shields.io/badge/Vercel%20AI-Accelerator%202025-000000?style=flat&logo=vercel)](https://vercel.com/ai-accelerator)
49
- [![Status: Alpha](https://img.shields.io/badge/status-alpha-orange.svg)](https://github.com/usestrix/strix)
50
-
49
+ [![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/J48Fzuh7)
50
+ [![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)
51
+ [![GitHub stars](https://img.shields.io/github/stars/usestrix/strix.svg?style=social&label=Star)](https://github.com/usestrix/strix)
51
52
  </div>
52
53
 
53
54
  <div align="center">
@@ -60,8 +61,30 @@ Description-Content-Type: text/markdown
60
61
 
61
62
  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.
62
63
 
64
+ - **Full hacker toolkit** out of the box
65
+ - **Teams of agents** that collaborate and scale
66
+ - **Real validation** via exploitation and PoC, not false positives
67
+ - **Developer‑first** CLI with actionable reports
68
+ - **Auto‑fix & reporting** to accelerate remediation
69
+
70
+ ---
71
+
72
+ ### 🎯 Use Cases
73
+
74
+ - Detect and validate critical vulnerabilities in your applications.
75
+ - Get penetration tests done in hours, not weeks, with compliance reports.
76
+ - Automate bug bounty research and generate PoCs for faster reporting.
77
+ - Run tests in CI/CD to block vulnerabilities before reaching production.
78
+
79
+ ---
80
+
63
81
  ### 🚀 Quick Start
64
82
 
83
+ Prerequisites:
84
+ - Docker (running)
85
+ - Python 3.12+
86
+ - An LLM provider key (or a local LLM)
87
+
65
88
  ```bash
66
89
  # Install
67
90
  pipx install strix-agent
@@ -74,12 +97,11 @@ export LLM_API_KEY="your-api-key"
74
97
  strix --target ./app-directory
75
98
  ```
76
99
 
77
- ## Why Use Strix
100
+ First run pulls the sandbox Docker image. Results are saved under `agent_runs/<run-name>`.
101
+
102
+ ### ☁️ Cloud Hosted
78
103
 
79
- - **Full Hacker Arsenal** - All the tools a professional hacker needs, built into the agents
80
- - **Real Validation** - Dynamic testing and actual exploitation, thus much fewer false positives
81
- - **Developer-First** - Seamlessly integrates into existing development workflows
82
- - **Auto-Fix & Reporting** - Automated patching with detailed remediation and security reports
104
+ Want to skip the setup? Try our cloud-hosted version: **[usestrix.com](https://usestrix.com)**
83
105
 
84
106
  ## ✨ Features
85
107
 
@@ -122,8 +144,17 @@ strix --target https://github.com/org/repo
122
144
  # Web application assessment
123
145
  strix --target https://your-app.com
124
146
 
125
- # Focused testing
147
+ # Multi-target white-box testing (source code + deployed app)
148
+ strix -t https://github.com/org/app -t https://your-app.com
149
+
150
+ # Test multiple environments simultaneously
151
+ strix -t https://dev.your-app.com -t https://staging.your-app.com -t https://prod.your-app.com
152
+
153
+ # Focused testing with instructions
126
154
  strix --target api.your-app.com --instruction "Prioritize authentication and authorization testing"
155
+
156
+ # Testing with credentials
157
+ strix --target https://your-app.com --instruction "Test with credentials: testuser/testpass. Focus on privilege escalation and access control bypasses."
127
158
  ```
128
159
 
129
160
  ### ⚙️ Configuration
@@ -139,6 +170,41 @@ export PERPLEXITY_API_KEY="your-api-key" # for search capabilities
139
170
 
140
171
  [📚 View supported AI models](https://docs.litellm.ai/docs/providers)
141
172
 
173
+ ### 🤖 Headless Mode
174
+
175
+ Run Strix programmatically without interactive UI using the `-n/--non-interactive` flag—perfect for servers and automated jobs. The CLI prints real-time vulnerability findings, and the final report before exiting. Exits with non-zero code when vulnerabilities are found.
176
+
177
+ ```bash
178
+ strix -n --target https://your-app.com --instruction "Focus on authentication and authorization vulnerabilities"
179
+ ```
180
+
181
+ ### 🔄 CI/CD (GitHub Actions)
182
+
183
+ Strix can be added to your pipeline to run a security test on pull requests with a lightweight GitHub Actions workflow:
184
+
185
+ ```yaml
186
+ name: strix-penetration-test
187
+
188
+ on:
189
+ pull_request:
190
+
191
+ jobs:
192
+ security-scan:
193
+ runs-on: ubuntu-latest
194
+ steps:
195
+ - uses: actions/checkout@v4
196
+
197
+ - name: Install Strix
198
+ run: pipx install strix-agent
199
+
200
+ - name: Run Strix
201
+ env:
202
+ STRIX_LLM: ${{ secrets.STRIX_LLM }}
203
+ LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
204
+
205
+ run: strix -n -t ./
206
+ ```
207
+
142
208
  ## 🏆 Enterprise Platform
143
209
 
144
210
  Our managed platform provides:
@@ -150,26 +216,40 @@ Our managed platform provides:
150
216
  - **🔌 Third-Party Integrations**
151
217
  - **🎯 Enterprise Support**
152
218
 
153
- [**Get Enterprise Demo →**](https://form.typeform.com/to/ljtvl6X0)
219
+ [**Get Enterprise Demo →**](https://usestrix.com)
154
220
 
155
221
  ## 🔒 Security Architecture
156
222
 
157
223
  - **Container Isolation** - All testing in sandboxed Docker environments
158
224
  - **Local Processing** - Testing runs locally, no data sent to external services
159
225
 
160
- > [!NOTE]
161
- > Strix is currently in Alpha. Expect rapid updates and improvements.
162
-
163
226
  > [!WARNING]
164
227
  > Only test systems you own or have permission to test. You are responsible for using Strix ethically and legally.
165
228
 
229
+ ## 🤝 Contributing
230
+
231
+ We welcome contributions from the community! There are several ways to contribute:
232
+
233
+ ### Code Contributions
234
+ See our [Contributing Guide](CONTRIBUTING.md) for details on:
235
+ - Setting up your development environment
236
+ - Running tests and quality checks
237
+ - Submitting pull requests
238
+ - Code style guidelines
239
+
240
+ ### Prompt Modules Collection
241
+ Help expand our collection of specialized prompt modules for AI agents:
242
+ - Advanced testing techniques for vulnerabilities, frameworks, and technologies
243
+ - See [Prompt Modules Documentation](strix/prompts/README.md) for guidelines
244
+ - Submit via [pull requests](https://github.com/usestrix/strix/pulls) or [issues](https://github.com/usestrix/strix/issues)
245
+
166
246
  ## 🌟 Support the Project
167
247
 
168
248
  **Love Strix?** Give us a ⭐ on GitHub!
169
249
 
170
250
  ## 👥 Join Our Community
171
251
 
172
- Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/yduEyduBsp)**
252
+ Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/J48Fzuh7)**
173
253
 
174
254
  </div>
175
255
 
@@ -0,0 +1,115 @@
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=2_A8vLzIOB7WC8svNVVzij4isw09LNcAslvAgd9EiHo,2796
4
+ strix/agents/StrixAgent/system_prompt.jinja,sha256=W48gWtCalN7fu_SURJEpbX4YVbKP8iEj7YN2qwHfa8c,20088
5
+ strix/agents/__init__.py,sha256=F64zhlv4XZIvYJSL9eSSuKUsIVGPLG3ycpQBhZwvE6A,168
6
+ strix/agents/base_agent.py,sha256=0oWy779P3ZzqCP_kuN9Okq0UQNzFf9oS0zYhXIDawtc,20220
7
+ strix/agents/state.py,sha256=3A4wOewNYyzqnCCBbzpSc35OrgTfObzxIwZpJDW_rag,5720
8
+ strix/interface/__init__.py,sha256=ww23sFOQhICEIrIo0MtwWv2qHW5qUprvPj8QVjv3SM0,44
9
+ strix/interface/assets/tui_styles.tcss,sha256=y7N_l8sJhDeflwqjmGz_Zm6xhVzpKUPJ6zcci-3qesE,11914
10
+ strix/interface/cli.py,sha256=9-kcS_x-15sXL3jUCz5Fi2s1RLNXdMh82okEb2eTD7M,5485
11
+ strix/interface/main.py,sha256=712U3e49vj02YleqNr-QIm1Vjj9uNVA7T1sOkOz1SVg,16431
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=xCwmRqdIg8KOcrqijcMoacKx-O2XHCKJhuwLMo4P3l4,43872
29
+ strix/interface/utils.py,sha256=oEGc5WyXiV65OBEpUKMub0w7lOqSk_UPvNL_MKdf3jw,14899
30
+ strix/llm/__init__.py,sha256=WqYE3Xc2e1D3z4QyjwN_jZPTdqsSDX6ODYsu-dcufSk,230
31
+ strix/llm/config.py,sha256=iBv1tuUOUDcP2gVQWhjtN8wtO5lWOipsER7Rnc3p6k4,603
32
+ strix/llm/llm.py,sha256=lsjNAXDGikhI2EGrtQHolqRtr5KC4Zi4-2sCUF3n9ZE,15604
33
+ strix/llm/memory_compressor.py,sha256=RFJWirlK39ZkoDc42eNicJUR8nMVbxSsviWvfJ4kRgs,6953
34
+ strix/llm/request_queue.py,sha256=P8YStE3qe8X1H0PkIaZ7_FNokWgDlgrrZrRj0TWHbKo,2595
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=Z34uffB-lIt6Oei307dtD7oyXSmX2DSApeoRcA3LcnM,1902
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/insecure_file_uploads.jinja,sha256=1qLkfQoOyyTwbafJknmDJ_tjV9fzJInfLNc3eeagWos,10972
53
+ strix/prompts/vulnerabilities/mass_assignment.jinja,sha256=9RTI_waQPvXBBEhzHCzytlbU7zF2Y-B3HuYHeUs7iO8,7176
54
+ strix/prompts/vulnerabilities/path_traversal_lfi_rfi.jinja,sha256=5Zfr424yM2LyFxt9A6q18RhbIjdq1MB6mpjWbG_FA7o,7916
55
+ strix/prompts/vulnerabilities/race_conditions.jinja,sha256=ZHxdZc7v7yvhmUWJK3P3kIzOz3oaYRb2OJEzG1momcg,8372
56
+ strix/prompts/vulnerabilities/rce.jinja,sha256=tgmocWH3Y9FJ3fBeR9DTR7ViBcuH5salGis8vywJ2h8,8425
57
+ strix/prompts/vulnerabilities/sql_injection.jinja,sha256=tdFjkbu5p_di0Zui95o2Eh1v-Ulvwg1qcENDNLswv1Q,8426
58
+ strix/prompts/vulnerabilities/ssrf.jinja,sha256=XMRAclYIyq0JhVSXopTsbZAm-wRxz-zZfDHdaFgVeiw,7899
59
+ strix/prompts/vulnerabilities/xss.jinja,sha256=GG1egKjGw9onilu1azEhU2Hfxu9XjQfBA2j4P4KQRzE,8675
60
+ strix/prompts/vulnerabilities/xxe.jinja,sha256=yyWl5i74YiFZIhQknMPWXLKL0C5gwL6Ra_YB4xddJsc,7841
61
+ strix/runtime/__init__.py,sha256=v2oQ1JnfZXOTU8N3NOEI_MbxNp8BfNj8hTgvjCsNGvY,445
62
+ strix/runtime/docker_runtime.py,sha256=cUkx2S3h7d9lOXGHBb5Sz0tjY178QuVZB6dGcxSwBMY,15595
63
+ strix/runtime/runtime.py,sha256=PRYByipRG9OhtIphIruGBSe4k-glVnYAXH68mikqt78,730
64
+ strix/runtime/tool_server.py,sha256=pKI_cL1aSEFC8b6Dqaz9bRfh0LvcCKwb6ZCN-v6OYls,6618
65
+ strix/telemetry/__init__.py,sha256=8QLHMvrVNLlGKezWTf3mTSmTOLIvDS5xVciry1KVS1Y,130
66
+ strix/telemetry/tracer.py,sha256=DkCD3m3dqely_of6EcYKko3hJDZKgfFE_O4towdqzWA,11586
67
+ strix/tools/__init__.py,sha256=_uTsOImNlJ-q5FFuQBTIYpIAgTETNI7Pm2hkaLE-Z5Y,1743
68
+ strix/tools/agents_graph/__init__.py,sha256=FLJ2kGxXICY2pRKrC0sgIc3w3KhZo7VID7hbwYcgBfM,278
69
+ strix/tools/agents_graph/agents_graph_actions.py,sha256=vftFb1haz3ZZMVBVR8N99aGqhBSPfLEAQCR4L9PLkpQ,20818
70
+ strix/tools/agents_graph/agents_graph_actions_schema.xml,sha256=lgnjltVyDog5T-uW4oFll1RksRfXdLmQyjUVVtFBXoE,12511
71
+ strix/tools/argument_parser.py,sha256=FA9LY0UBtMqDRJ9yHHUzQCbGmpTQvo4xTtLiNRYG2FU,3861
72
+ strix/tools/browser/__init__.py,sha256=7azA1td3CfwCVqMYIIzT0vGM0-JUNq3sZBYB0QnwFDk,75
73
+ strix/tools/browser/browser_actions.py,sha256=ZmHdPoow9R-rkSjopYsY1-56fL7Tm-WDCaIPvs1_hys,7037
74
+ strix/tools/browser/browser_actions_schema.xml,sha256=zZQD8sZWsNnxxnlY3QYDrfKHFu0x6i1vtfSOlIGyiho,9573
75
+ strix/tools/browser/browser_instance.py,sha256=vgb-dJP20SLaBOhFExn-uwfjdISBrHJpG7ewfiKQkYU,18605
76
+ strix/tools/browser/tab_manager.py,sha256=SMkDFOgEr3ADK2rP5Ko2uK-A24-8p0VsbjoxEj5eU-Y,13011
77
+ strix/tools/executor.py,sha256=ED7P7LLCuZk12jO4t8UvB6Ms-xm4kVeu6F4WHetETnM,10223
78
+ strix/tools/file_edit/__init__.py,sha256=8f6VlEoGP627hGtcdLkr63vdrTmdb8uyPIqB0qVgZd8,141
79
+ strix/tools/file_edit/file_edit_actions.py,sha256=Aq-LwzmmfUJrBZWy5TeP9Pxz9TlmeqOSqemD4jBkt2s,3951
80
+ strix/tools/file_edit/file_edit_actions_schema.xml,sha256=tt0_QgSjOtTEy8ordsXUcEiVTePiybgn4aisZJ_qnbc,5477
81
+ strix/tools/finish/__init__.py,sha256=QIMaHYusly8YaFR3zjYsy_CFawwgtTZvOU7gsEumFrw,68
82
+ strix/tools/finish/finish_actions.py,sha256=_M8mmJzPAwSJCG0NOGAhhON24OQMJV16dqZEa_s8HuM,5702
83
+ strix/tools/finish/finish_actions_schema.xml,sha256=CS6Vq3ByyNxv2spRWS4oJcmUzWQRB7jvUAOS8aiWd8o,2294
84
+ strix/tools/notes/__init__.py,sha256=DUpkZUWN21tb9AXCWfJLrKrgLz9YEBVU8KQy1J6cyxU,189
85
+ strix/tools/notes/notes_actions.py,sha256=Y4b7DYJzh7XwwlMTdwThOLuIuuj46m6KiMrMKekTMCE,5771
86
+ strix/tools/notes/notes_actions_schema.xml,sha256=nzirWDyzbPRxaG3jdSjmSCjfY-ggDy1kH7oxAuj-osw,6264
87
+ strix/tools/proxy/__init__.py,sha256=K3BFmT6QWw9heB7l7DnmI-Yj-DOI3BAow6g0GLWsA0c,329
88
+ strix/tools/proxy/proxy_actions.py,sha256=KM4m7pVpbkpx_Srgj9kUiAPZyfMpLI_p-_gCxq6Ojfg,2545
89
+ strix/tools/proxy/proxy_actions_schema.xml,sha256=d87SUKD2J16KQCCFpI5w2y-Ax1NgwOuGO3crr1bFPDw,11567
90
+ strix/tools/proxy/proxy_manager.py,sha256=rmy8c_7jcYl9WeeA3O2lcZBnN7hESpTYxoLCM24VhVE,28933
91
+ strix/tools/python/__init__.py,sha256=l5mFWKbtis61S8lOQY-gFn-vIlc13lu1K-pqqRywOCk,72
92
+ strix/tools/python/python_actions.py,sha256=pXnyvspsV3nh2qNWJTY7m4rzoXYfYQ7mpsVIXd7NC68,1432
93
+ strix/tools/python/python_actions_schema.xml,sha256=XcIUjz5uEoI7J3VFcby0O-0ovm9r9cIoADfpqDGJXlU,7122
94
+ strix/tools/python/python_instance.py,sha256=x8ARTRAmAjdotD3TbtN0O4Q3nKNjfOzxTMN7aGU99H8,5547
95
+ strix/tools/python/python_manager.py,sha256=C_k8C8uQ6ESpAgzhbf3km9jeFyI52SGd2m36mD1ErhM,4235
96
+ strix/tools/registry.py,sha256=LhByebT-OiIfc2g-hxlSopzHoNIPiKfPJRvTAK37TOQ,6025
97
+ strix/tools/reporting/__init__.py,sha256=_cYxb3OP0vZtCwO_ExLBjhAn1ECaG-SH1Z4wfGDyT1Y,110
98
+ strix/tools/reporting/reporting_actions.py,sha256=1d0QfWWqjaamErfQk5Fms3FxdSJoi3vuZ0e17V2Nh_Y,2192
99
+ strix/tools/reporting/reporting_actions_schema.xml,sha256=y_g0iuyBuCh79fvA0ri8fOPlXY7uUd-P-mdzXLUyIJg,1629
100
+ strix/tools/terminal/__init__.py,sha256=xvflcrbLQ31o_K3cWFsIhTm7gxY5JF0nVnhOIadwFV0,80
101
+ strix/tools/terminal/terminal_actions.py,sha256=9BGsK7Io7PyW8YGpJfXHeJTP3AVqBAgaKZl-1YziF8Y,888
102
+ strix/tools/terminal/terminal_actions_schema.xml,sha256=L7dzjvKNZpJA0qDGp1gCBuwXiY4mtjOq7T2tNDmUPA4,7257
103
+ strix/tools/terminal/terminal_manager.py,sha256=cTWosczkMoSRSjQ-xPR56D5cIYcylA3NAZb4FSi32Ko,4838
104
+ strix/tools/terminal/terminal_session.py,sha256=peHQrYCty-KHYECbT8jOww06ayGUK_rAcnTlYIfQe00,16008
105
+ strix/tools/thinking/__init__.py,sha256=-v4fG4fyFkqsTSWspDtCT6IRlyRM8zeUwEM-kscaxDE,58
106
+ strix/tools/thinking/thinking_actions.py,sha256=Ll96ZjlnOS5zSRSCmGzi7hcgyURBlCdq4xcstEhdRao,564
107
+ strix/tools/thinking/thinking_actions_schema.xml,sha256=otD4dOhQx4uyudLnjA_HIP6EmUS5NvKG4l3CVFrg8go,2756
108
+ strix/tools/web_search/__init__.py,sha256=m5PCHXqeNVraLRLNIbh54Z2N4Y_75d-ftqwyq3dbCd0,70
109
+ strix/tools/web_search/web_search_actions.py,sha256=LRS3AjGO4JLIyu_B6-ogfWOsnENwqrrCa8Rz0vxuuGQ,3107
110
+ strix/tools/web_search/web_search_actions_schema.xml,sha256=Ihc3Gv4LaPI_MzBbwZOt3y4pwg9xmtl8KfPNvFihEP4,4805
111
+ strix_agent-0.3.1.dist-info/LICENSE,sha256=fblpcTQlHjFL2NOSV_4XDJiz4q2bLtZ-l6yvlhPnueM,11345
112
+ strix_agent-0.3.1.dist-info/METADATA,sha256=NwABK0FvzSF3eysmrNZXF1CHymAOOjddgVQXYMtLSLM,9066
113
+ strix_agent-0.3.1.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
114
+ strix_agent-0.3.1.dist-info/entry_points.txt,sha256=F_Uflti5ggiBHZ9wUHTqacARQavQDiditz0mRN0qnAA,51
115
+ strix_agent-0.3.1.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ strix=strix.interface.main:main
3
+