strix-agent 0.1.5__tar.gz → 0.1.6__tar.gz

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 (98) hide show
  1. {strix_agent-0.1.5 → strix_agent-0.1.6}/PKG-INFO +4 -14
  2. {strix_agent-0.1.5 → strix_agent-0.1.6}/README.md +2 -12
  3. {strix_agent-0.1.5 → strix_agent-0.1.6}/pyproject.toml +2 -2
  4. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/main.py +26 -4
  5. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/agents_graph_renderer.py +2 -8
  6. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/finish_renderer.py +1 -2
  7. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/reporting_renderer.py +1 -2
  8. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/scan_info_renderer.py +1 -2
  9. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/llm/config.py +1 -1
  10. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/llm/llm.py +0 -1
  11. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/llm/memory_compressor.py +1 -1
  12. {strix_agent-0.1.5 → strix_agent-0.1.6}/LICENSE +0 -0
  13. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/__init__.py +0 -0
  14. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/agents/StrixAgent/__init__.py +0 -0
  15. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/agents/StrixAgent/strix_agent.py +0 -0
  16. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/agents/StrixAgent/system_prompt.jinja +0 -0
  17. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/agents/__init__.py +0 -0
  18. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/agents/base_agent.py +0 -0
  19. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/agents/state.py +0 -0
  20. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/__init__.py +0 -0
  21. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/app.py +0 -0
  22. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/assets/cli.tcss +0 -0
  23. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/__init__.py +0 -0
  24. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/base_renderer.py +0 -0
  25. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/browser_renderer.py +0 -0
  26. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/file_edit_renderer.py +0 -0
  27. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/notes_renderer.py +0 -0
  28. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/proxy_renderer.py +0 -0
  29. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/python_renderer.py +0 -0
  30. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/registry.py +0 -0
  31. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/terminal_renderer.py +0 -0
  32. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/thinking_renderer.py +0 -0
  33. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/user_message_renderer.py +0 -0
  34. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tool_components/web_search_renderer.py +0 -0
  35. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/cli/tracer.py +0 -0
  36. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/llm/__init__.py +0 -0
  37. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/llm/request_queue.py +0 -0
  38. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/llm/utils.py +0 -0
  39. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/__init__.py +0 -0
  40. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/coordination/root_agent.jinja +0 -0
  41. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/authentication_jwt.jinja +0 -0
  42. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/business_logic.jinja +0 -0
  43. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/csrf.jinja +0 -0
  44. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/idor.jinja +0 -0
  45. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/race_conditions.jinja +0 -0
  46. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/rce.jinja +0 -0
  47. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/sql_injection.jinja +0 -0
  48. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/ssrf.jinja +0 -0
  49. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/xss.jinja +0 -0
  50. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/prompts/vulnerabilities/xxe.jinja +0 -0
  51. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/runtime/__init__.py +0 -0
  52. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/runtime/docker_runtime.py +0 -0
  53. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/runtime/runtime.py +0 -0
  54. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/runtime/tool_server.py +0 -0
  55. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/__init__.py +0 -0
  56. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/agents_graph/__init__.py +0 -0
  57. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/agents_graph/agents_graph_actions.py +0 -0
  58. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/agents_graph/agents_graph_actions_schema.xml +0 -0
  59. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/argument_parser.py +0 -0
  60. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/browser/__init__.py +0 -0
  61. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/browser/browser_actions.py +0 -0
  62. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/browser/browser_actions_schema.xml +0 -0
  63. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/browser/browser_instance.py +0 -0
  64. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/browser/tab_manager.py +0 -0
  65. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/executor.py +0 -0
  66. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/file_edit/__init__.py +0 -0
  67. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/file_edit/file_edit_actions.py +0 -0
  68. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/file_edit/file_edit_actions_schema.xml +0 -0
  69. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/finish/__init__.py +0 -0
  70. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/finish/finish_actions.py +0 -0
  71. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/finish/finish_actions_schema.xml +0 -0
  72. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/notes/__init__.py +0 -0
  73. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/notes/notes_actions.py +0 -0
  74. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/notes/notes_actions_schema.xml +0 -0
  75. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/proxy/__init__.py +0 -0
  76. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/proxy/proxy_actions.py +0 -0
  77. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/proxy/proxy_actions_schema.xml +0 -0
  78. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/proxy/proxy_manager.py +0 -0
  79. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/python/__init__.py +0 -0
  80. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/python/python_actions.py +0 -0
  81. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/python/python_actions_schema.xml +0 -0
  82. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/python/python_instance.py +0 -0
  83. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/python/python_manager.py +0 -0
  84. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/registry.py +0 -0
  85. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/reporting/__init__.py +0 -0
  86. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/reporting/reporting_actions.py +0 -0
  87. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/reporting/reporting_actions_schema.xml +0 -0
  88. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/terminal/__init__.py +0 -0
  89. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/terminal/terminal_actions.py +0 -0
  90. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/terminal/terminal_actions_schema.xml +0 -0
  91. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/terminal/terminal_instance.py +0 -0
  92. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/terminal/terminal_manager.py +0 -0
  93. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/thinking/__init__.py +0 -0
  94. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/thinking/thinking_actions.py +0 -0
  95. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/thinking/thinking_actions_schema.xml +0 -0
  96. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/web_search/__init__.py +0 -0
  97. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/web_search/web_search_actions.py +0 -0
  98. {strix_agent-0.1.5 → strix_agent-0.1.6}/strix/tools/web_search/web_search_actions_schema.xml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strix-agent
3
- Version: 0.1.5
3
+ Version: 0.1.6
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
@@ -22,7 +22,7 @@ Requires-Dist: docker (>=7.1.0,<8.0.0)
22
22
  Requires-Dist: fastapi
23
23
  Requires-Dist: gql[requests] (>=3.5.3,<4.0.0)
24
24
  Requires-Dist: ipython (>=9.3.0,<10.0.0)
25
- Requires-Dist: litellm[proxy] (>=1.72.1,<2.0.0)
25
+ Requires-Dist: litellm[proxy] (>=1.75.5.post1,<2.0.0)
26
26
  Requires-Dist: numpydoc (>=1.8.0,<2.0.0)
27
27
  Requires-Dist: openhands-aci (>=0.3.0,<0.4.0)
28
28
  Requires-Dist: playwright (>=1.48.0,<2.0.0)
@@ -57,16 +57,6 @@ Description-Content-Type: text/markdown
57
57
 
58
58
  ---
59
59
 
60
- ## 🚨 The AI Security Crisis
61
-
62
- Everyone's shipping code faster than ever. Cursor, Windsurf, and Claude made coding easy - but QA and security testing are now the real bottlenecks.
63
-
64
- > **Number of security vulnerabilities doubled post-AI.**
65
-
66
- Traditional security tools weren't designed for this. SAST was a temporary fix when manual pentesting cost $10k+ and took weeks. Now, Strix delivers real security testing rapidly.
67
-
68
- **The solution:** Enable developers to use AI coding at full speed, without compromising on security.
69
-
70
60
  ## 🦉 Strix Overview
71
61
 
72
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.
@@ -78,7 +68,7 @@ Strix are autonomous AI agents that act just like real hackers - they run your c
78
68
  pipx install strix-agent
79
69
 
80
70
  # Configure AI provider
81
- export STRIX_LLM="anthropic/claude-sonnet-4-20250514"
71
+ export STRIX_LLM="openai/gpt-5"
82
72
  export LLM_API_KEY="your-api-key"
83
73
 
84
74
  # Run security assessment
@@ -141,7 +131,7 @@ strix --target api.your-app.com --instruction "Prioritize authentication and aut
141
131
 
142
132
  ```bash
143
133
  # Required
144
- export STRIX_LLM="anthropic/claude-sonnet-4-20250514"
134
+ export STRIX_LLM="openai/gpt-5"
145
135
  export LLM_API_KEY="your-api-key"
146
136
 
147
137
  # Recommended
@@ -19,16 +19,6 @@
19
19
 
20
20
  ---
21
21
 
22
- ## 🚨 The AI Security Crisis
23
-
24
- Everyone's shipping code faster than ever. Cursor, Windsurf, and Claude made coding easy - but QA and security testing are now the real bottlenecks.
25
-
26
- > **Number of security vulnerabilities doubled post-AI.**
27
-
28
- Traditional security tools weren't designed for this. SAST was a temporary fix when manual pentesting cost $10k+ and took weeks. Now, Strix delivers real security testing rapidly.
29
-
30
- **The solution:** Enable developers to use AI coding at full speed, without compromising on security.
31
-
32
22
  ## 🦉 Strix Overview
33
23
 
34
24
  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.
@@ -40,7 +30,7 @@ Strix are autonomous AI agents that act just like real hackers - they run your c
40
30
  pipx install strix-agent
41
31
 
42
32
  # Configure AI provider
43
- export STRIX_LLM="anthropic/claude-sonnet-4-20250514"
33
+ export STRIX_LLM="openai/gpt-5"
44
34
  export LLM_API_KEY="your-api-key"
45
35
 
46
36
  # Run security assessment
@@ -103,7 +93,7 @@ strix --target api.your-app.com --instruction "Prioritize authentication and aut
103
93
 
104
94
  ```bash
105
95
  # Required
106
- export STRIX_LLM="anthropic/claude-sonnet-4-20250514"
96
+ export STRIX_LLM="openai/gpt-5"
107
97
  export LLM_API_KEY="your-api-key"
108
98
 
109
99
  # Recommended
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "strix-agent"
3
- version = "0.1.5"
3
+ version = "0.1.6"
4
4
  description = "Open-source AI Hackers for your apps"
5
5
  authors = ["Strix <hi@usestrix.com>"]
6
6
  readme = "README.md"
@@ -45,7 +45,7 @@ strix = "strix.cli.main:main"
45
45
  python = "^3.12"
46
46
  fastapi = "*"
47
47
  uvicorn = "*"
48
- litellm = {extras = ["proxy"], version = "^1.72.1"}
48
+ litellm = {extras = ["proxy"], version = "^1.75.5.post1"}
49
49
  tenacity = "^9.0.0"
50
50
  numpydoc = "^1.8.0"
51
51
  pydantic = {extras = ["email"], version = "^2.11.3"}
@@ -12,6 +12,7 @@ import sys
12
12
  from pathlib import Path
13
13
  from typing import Any
14
14
  from urllib.parse import urlparse
15
+ import shutil
15
16
 
16
17
  import docker
17
18
  import litellm
@@ -73,7 +74,7 @@ def validate_environment() -> None:
73
74
  error_text.append("• ", style="white")
74
75
  error_text.append("STRIX_LLM", style="bold cyan")
75
76
  error_text.append(
76
- " - Model name to use with litellm (e.g., 'anthropic/claude-sonnet-4-20250514')\n",
77
+ " - Model name to use with litellm (e.g., 'openai/gpt-5')\n",
77
78
  style="white",
78
79
  )
79
80
  error_text.append("• ", style="white")
@@ -91,7 +92,7 @@ def validate_environment() -> None:
91
92
 
92
93
  error_text.append("\nExample setup:\n", style="white")
93
94
  error_text.append(
94
- "export STRIX_LLM='anthropic/claude-sonnet-4-20250514'\n", style="dim white"
95
+ "export STRIX_LLM='openai/gpt-5'\n", style="dim white"
95
96
  )
96
97
  error_text.append("export LLM_API_KEY='your-api-key-here'\n", style="dim white")
97
98
  if missing_optional_vars:
@@ -118,11 +119,32 @@ def _validate_llm_response(response: Any) -> None:
118
119
  raise RuntimeError("Invalid response from LLM")
119
120
 
120
121
 
122
+ def check_docker_installed() -> None:
123
+ if shutil.which("docker") is None:
124
+ console = Console()
125
+ error_text = Text()
126
+ error_text.append("❌ ", style="bold red")
127
+ error_text.append("DOCKER NOT INSTALLED", style="bold red")
128
+ error_text.append("\n\n", style="white")
129
+ error_text.append("The 'docker' CLI was not found in your PATH.\n", style="white")
130
+ error_text.append("Please install Docker and ensure the 'docker' command is available.\n\n", style="white")
131
+
132
+ panel = Panel(
133
+ error_text,
134
+ title="[bold red]🛡️ STRIX STARTUP ERROR",
135
+ title_align="center",
136
+ border_style="red",
137
+ padding=(1, 2),
138
+ )
139
+ console.print("\n", panel, "\n")
140
+ sys.exit(1)
141
+
142
+
121
143
  async def warm_up_llm() -> None:
122
144
  console = Console()
123
145
 
124
146
  try:
125
- model_name = os.getenv("STRIX_LLM", "anthropic/claude-sonnet-4-20250514")
147
+ model_name = os.getenv("STRIX_LLM", "openai/gpt-5")
126
148
  api_key = os.getenv("LLM_API_KEY")
127
149
 
128
150
  if api_key:
@@ -136,7 +158,6 @@ async def warm_up_llm() -> None:
136
158
  response = litellm.completion(
137
159
  model=model_name,
138
160
  messages=test_messages,
139
- max_tokens=10,
140
161
  )
141
162
 
142
163
  _validate_llm_response(response)
@@ -523,6 +544,7 @@ def main() -> None:
523
544
  if sys.platform == "win32":
524
545
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
525
546
 
547
+ check_docker_installed()
526
548
  pull_docker_image()
527
549
 
528
550
  validate_environment()
@@ -84,16 +84,10 @@ class AgentFinishRenderer(BaseToolRenderer):
84
84
  )
85
85
 
86
86
  if result_summary:
87
- summary_display = (
88
- result_summary[:400] + "..." if len(result_summary) > 400 else result_summary
89
- )
90
- content_parts = [f"{header}\n [bold]{cls.escape_markup(summary_display)}[/]"]
87
+ content_parts = [f"{header}\n [bold]{cls.escape_markup(result_summary)}[/]"]
91
88
 
92
89
  if findings and isinstance(findings, list):
93
- finding_lines = [f"• {finding}" for finding in findings[:3]]
94
- if len(findings) > 3:
95
- finding_lines.append(f"• ... +{len(findings) - 3} more findings")
96
-
90
+ finding_lines = [f"• {finding}" for finding in findings]
97
91
  content_parts.append(
98
92
  f" [dim]{chr(10).join([cls.escape_markup(line) for line in finding_lines])}[/]"
99
93
  )
@@ -23,8 +23,7 @@ class FinishScanRenderer(BaseToolRenderer):
23
23
  )
24
24
 
25
25
  if content:
26
- content_display = content[:600] + "..." if len(content) > 600 else content
27
- content_text = f"{header}\n [bold]{cls.escape_markup(content_display)}[/]"
26
+ content_text = f"{header}\n [bold]{cls.escape_markup(content)}[/]"
28
27
  else:
29
28
  content_text = f"{header}\n [dim]Generating final report...[/]"
30
29
 
@@ -31,8 +31,7 @@ class CreateVulnerabilityReportRenderer(BaseToolRenderer):
31
31
  )
32
32
 
33
33
  if content:
34
- content_preview = content[:100] + "..." if len(content) > 100 else content
35
- content_parts.append(f" [dim]{cls.escape_markup(content_preview)}[/]")
34
+ content_parts.append(f" [dim]{cls.escape_markup(content)}[/]")
36
35
 
37
36
  content_text = "\n".join(content_parts)
38
37
  else:
@@ -51,8 +51,7 @@ class SubagentStartInfoRenderer(BaseToolRenderer):
51
51
 
52
52
  content = f"🤖 Spawned subagent [bold #22c55e]{name}[/bold #22c55e]"
53
53
  if task:
54
- display_task = task[:80] + "..." if len(task) > 80 else task
55
- content += f"\n Task: [dim]{display_task}[/dim]"
54
+ content += f"\n Task: [dim]{task}[/dim]"
56
55
 
57
56
  css_classes = cls.get_css_classes(status)
58
57
  return Static(content, classes=css_classes)
@@ -9,7 +9,7 @@ class LLMConfig:
9
9
  enable_prompt_caching: bool = True,
10
10
  prompt_modules: list[str] | None = None,
11
11
  ):
12
- self.model_name = model_name or os.getenv("STRIX_LLM", "anthropic/claude-sonnet-4-20250514")
12
+ self.model_name = model_name or os.getenv("STRIX_LLM", "openai/gpt-5")
13
13
 
14
14
  if not self.model_name:
15
15
  raise ValueError("STRIX_LLM environment variable must be set and not empty")
@@ -248,7 +248,6 @@ class LLM:
248
248
  "model": self.config.model_name,
249
249
  "messages": messages,
250
250
  "temperature": self.config.temperature,
251
- "stop": ["</function>"],
252
251
  }
253
252
 
254
253
  queue = get_global_queue()
@@ -145,7 +145,7 @@ class MemoryCompressor:
145
145
  model_name: str | None = None,
146
146
  ):
147
147
  self.max_images = max_images
148
- self.model_name = model_name or os.getenv("STRIX_LLM", "anthropic/claude-sonnet-4-20250514")
148
+ self.model_name = model_name or os.getenv("STRIX_LLM", "openai/gpt-5")
149
149
 
150
150
  if not self.model_name:
151
151
  raise ValueError("STRIX_LLM environment variable must be set and not empty")
File without changes