Commit Graph
350 Commits
Author SHA1 Message Date
alex sandGitHub 995059cd87 fix: ensure LLM stats tracking is accurate by including completed subagents (#441) 2026-04-13 00:09:13 -04:00
Ahmed AllamandGitHub 800bb0ccc8 Add Strix GitHub Actions integration tip 2026-04-12 12:43:41 -07:00
STJandGitHub db459db6e3 feat: Migrate from Poetry to uv (#379) 2026-03-31 17:20:41 -07:00
alex sandGitHub 5320880e78 feat: Better source-aware testing (#391) 2026-03-31 11:53:49 -07:00
0xallamandAhmed Allam 1a4a356721 chore: bump version to 0.8.3 2026-03-22 22:10:17 -07:00
0xallamandAhmed Allam ff1db26989 fix: use anthropic model in anthropic provider docs example 2026-03-22 22:08:20 -07:00
0xallamandAhmed Allam 12c39c52d6 fix: strengthen tool-call requirement in interactive and autonomous modes
Models occasionally output text-only narration ("Planning the
assessment...") without a tool call, which halts the interactive agent
loop since the system interprets no-tool-call as "waiting for user
input." Rewrite both interactive and autonomous prompt sections to make
the tool-call requirement absolute with explicit warnings about the
system halt consequence.
2026-03-22 22:08:20 -07:00
0xallamandAhmed Allam 214abbbdcd chore: bump sandbox image to 0.1.13 2026-03-22 22:08:20 -07:00
0xallamandAhmed Allam 216d884653 refine system prompt, add scope verification, and improve tool guidance
- Rewrite system prompt: refusal avoidance, system-verified scope, thorough
  validation mandate, root agent orchestration role, recon-first guidance
- Add authorized targets injection via system_prompt_context in strix_agent
- Add set_system_prompt_context to LLM for dynamic prompt updates
- Prefer python tool over terminal for Python code in tool schemas
- Increase LLM retry backoff cap to 90s
- Replace models.strix.ai footer with strix.ai
2026-03-22 22:08:20 -07:00
0xallamandAhmed Allam 9f5ceaafa3 chore: update default model to gpt-5.4 and remove Strix Router from docs
- Change default model from gpt-5 to gpt-5.4 across docs, tests, and examples
- Remove Strix Router references from docs, quickstart, overview, and README
- Delete models.mdx (Strix Router page) and its nav entry
- Simplify install script to suggest openai/ prefix directly
- Keep strix/ model routing support intact in code
2026-03-22 22:08:20 -07:00
Ahmed Allam d04240a51b Simplify tool file copying in Dockerfile
Removed specific tool files from Dockerfile and added a directory copy instead.
2026-03-22 16:01:39 -07:00
0xallamandAhmed Allam 09fac5be81 fix: address review feedback on tool registration gating 2026-03-19 23:50:57 -07:00
0xallamandAhmed Allam 29d44b82d0 refactor: move tool availability checks into registration 2026-03-19 23:50:57 -07:00
Ahmed AllamandGitHub 8ca8b2a832 Guard TUI chat rendering against invalid Rich spans (#375) 2026-03-19 22:28:42 -07:00
Ahmed AllamandGitHub f15bfa0d83 fix: prevent ScreenStackError when stopping agent from modal (#374) 2026-03-19 20:39:05 -07:00
262f59147e feat: add skills for specific tools (#366)
Co-authored-by: 0xallam <ahmed39652003@gmail.com>
2026-03-19 16:47:29 -07:00
Ahmed Allam 1905159468 Add tip about Strix integration with GitHub Actions 2026-03-17 22:14:11 -07:00
0xallamandAhmed Allam e787265875 feat: add interactive mode for agent loop
Re-architects the agent loop to support interactive (chat-like) mode
where text-only responses pause execution and wait for user input,
while tool-call responses continue looping autonomously.

- Add `interactive` flag to LLMConfig (default False, no regression)
- Add configurable `waiting_timeout` to AgentState (0 = disabled)
- _process_iteration returns None for text-only → agent_loop pauses
- Conditional system prompt: interactive allows natural text responses
- Skip <meta>Continue the task.</meta> injection in interactive mode
- Sub-agents inherit interactive from parent (300s auto-resume timeout)
- Root interactive agents wait indefinitely for user input (timeout=0)
- TUI sets interactive=True; CLI unchanged (non_interactive=True)
2026-03-14 11:57:58 -07:00
0xallamandAhmed Allam b3455938a1 fix: web_search tool not loading when API key is in config file
The perplexity API key check in strix/tools/__init__.py used
Config.get() which only checks os.environ. At import time, the
config file (~/.strix/cli-config.json) hasn't been applied to
env vars yet, so the check always returned False.

Replace with _has_perplexity_api() that checks os.environ first
(fast path for SaaS/env var), then falls back to Config.load()
which reads the config file directly.
2026-03-14 11:48:45 -07:00
Ahmed Allam 67a4aa03af Update web search model name to 'sonar-reasoning-pro' 2026-03-11 14:20:04 -07:00
AlexandAhmed Allam 3e3453852a Change VERTEXAI_LOCATION from 'us-central1' to 'global'
us-central1 doesn't have access to the latest gemini models like gemini-3-flash-preview
2026-03-11 08:08:18 -07:00
508e473633 Add OpenTelemetry observability with local JSONL traces (#347)
Co-authored-by: 0xallam <ahmed39652003@gmail.com>
2026-03-09 01:11:24 -07:00
0xallamandGitHub 8a6723cb7e chore(deps): bump pypdf from 6.7.4 to 6.7.5 (#343) 2026-03-08 09:46:32 -07:00
Ms6RBandGitHub 8a5670bed0 feat(skills): add NestJS security testing module (#348) 2026-03-08 09:45:08 -07:00
0xallamandAhmed Allam 8ae631e452 chore(deps): bump pypdf from 6.7.2 to 6.7.4
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.7.2 to 6.7.4.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.7.2...6.7.4)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.7.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 15:34:01 -08:00
Ahmed AllamandGitHub f183a8719c Update README 2026-03-03 03:33:46 +04:00
Ahmed AllamandGitHub f7fa94a524 Update models.mdx 2026-03-03 03:33:14 +04:00
octovimmerandAhmed Allam 5d2cd22652 chore: remove references of codex models 2026-03-02 15:29:29 -08:00
octovimmerandAhmed Allam 0a3d139ced chore: remove codex models from supported models 2026-03-02 15:29:29 -08:00
0xallamandAhmed Allam aaaf8c366e chore(deps): bump pypdf from 6.7.1 to 6.7.2
Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.7.1 to 6.7.2.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.7.1...6.7.2)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.7.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-26 14:58:52 -08:00
0xallam 1caaf7a7b0 docs: Add Strix Platform and Enterprise sections to README 2026-02-26 14:58:28 -08:00
0xallam 97a044fc45 docs: Add human-in-the-loop section to proxy documentation 2026-02-23 19:54:54 -08:00
0xallam 42a7882c85 chore: Bump version to 0.8.2 2026-02-23 18:41:06 -08:00
0xallamandAhmed Allam ae8f740c4a feat: Expose Caido proxy port to host for human-in-the-loop interaction
Users can now access the Caido web UI from their browser to inspect traffic,
replay requests, and perform manual testing alongside the automated scan.

- Map Caido port (48080) to a random host port in DockerRuntime
- Add caido_port to SandboxInfo and track across container lifecycle
- Display Caido URL in TUI sidebar stats panel with selectable text
- Bind Caido to 0.0.0.0 in entrypoint (requires image rebuild)
- Bump sandbox image to 0.1.12
- Restore discord link in exit screen
2026-02-23 18:37:25 -08:00
mason5052andAhmed Allam 047d035a37 docs: fix Discord badge expired invite code
The badge image URL used invite code  which is expired,
causing the badge to render 'Invalid invite' instead of the server info.
Updated to use the vanity URL  which resolves correctly.

Fixes #313
2026-02-22 20:52:03 -08:00
0xallamandAhmed Allam e15e79acb4 chore(deps): bump google-cloud-aiplatform from 1.129.0 to 1.133.0
Bumps [google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform) from 1.129.0 to 1.133.0.
- [Release notes](https://github.com/googleapis/python-aiplatform/releases)
- [Changelog](https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/python-aiplatform/compare/v1.129.0...v1.133.0)

---
updated-dependencies:
- dependency-name: google-cloud-aiplatform
  dependency-version: 1.133.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-22 20:51:29 -08:00
0xallam 1b66dbc63f fix: Lower sidebar min width from 140 to 120 for smaller terminals 2026-02-22 09:28:52 -08:00
0xallam 1cfa600050 fix: Update end screen to display models.strix.ai instead of strix.ai and discord 2026-02-22 09:03:56 -08:00
Ahmed AllamandGitHub 9db8f3d596 Update installation instructions
Removed pipx installation instructions for strix-agent.
2026-02-22 00:10:06 +04:00
0xallam 6cf0e59ca2 chore: Bump version to 0.8.1 2026-02-20 10:36:48 -08:00
0xallam 23607e4cb3 fix: Change default model from claude-sonnet-4-6 to gpt-5 across docs and code 2026-02-20 10:35:58 -08:00
0xallamandAhmed Allam d5166ad363 fix: Handle stray quotes in tag names and enforce parameter tags in prompt 2026-02-20 08:29:01 -08:00
0xallamandAhmed Allam 1382e5d173 fix: Address code review feedback on tool format normalization 2026-02-20 08:29:01 -08:00
0xallamandAhmed Allam 75e7c6455d fix: Prevent assistant-message prefill rejected by Claude 4.6 2026-02-20 08:29:01 -08:00
0xallamandAhmed Allam 8eb7ca3a6c fix: Handle single-quoted and whitespace-padded tool call tags 2026-02-20 08:29:01 -08:00
0xallamandAhmed Allam addc1d4ef4 fix: Strip quotes from parameter/function names in tool calls 2026-02-20 08:29:01 -08:00
0xallamandAhmed Allam a71a83d5ae feat: Normalize alternative tool call formats (invoke/function_calls) 2026-02-20 08:29:01 -08:00
Ahmed AllamandGitHub c091585c31 Resolve LLM API Base and Models (#317) 2026-02-20 07:14:10 -08:00
0xallam a3dc2ca438 fix: Strip custom_llm_provider before cost lookup for proxied models 2026-02-20 06:52:27 -08:00
0xallam 8b516e8373 refactor: Centralize strix model resolution with separate API and capability names
- Replace fragile prefix matching with explicit STRIX_MODEL_MAP
- Add resolve_strix_model() returning (api_model, canonical_model)
- api_model (openai/ prefix) for API calls to OpenAI-compatible Strix API
- canonical_model (actual provider name) for litellm capability lookups
- Centralize resolution in LLMConfig instead of scattered call sites
2026-02-20 04:40:04 -08:00