diff --git a/README.md b/README.md index f25d9ee20..bf2715968 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,27 @@

English | - 简体中文 | - 繁體中文 | - 한국어 | - Deutsch | - Español | - Français | - Italiano | - Dansk | - 日本語 | - Polski | - Русский | - Bosanski | - العربية | - Norsk | - Português (Brasil) | - ไทย | - Türkçe | - Українська | - বাংলা | - Ελληνικά | - Tiếng Việt | - हिन्दी + 简体中文 | + 繁體中文 | + 한국어 | + Deutsch | + Español | + Français | + Italiano | + Dansk | + 日本語 | + Polski | + Русский | + Bosanski | + العربية | + Norsk | + Português (Brasil) | + ไทย | + Türkçe | + Українська | + বাংলা | + Ελληνικά | + Tiếng Việt | + हिन्दी

diff --git a/STATS.md b/STATS.md index d0c526298..cf6173c26 100644 --- a/STATS.md +++ b/STATS.md @@ -327,3 +327,13 @@ | 2026-08-09 | 3,305 (+48) | 0 (+0) | 3,305 (+48) | | 2026-08-10 | 3,376 (+71) | 0 (+0) | 3,376 (+71) | | 2026-08-11 | 3,439 (+63) | 0 (+0) | 3,439 (+63) | +| 2026-08-12 | 3,503 (+64) | 0 (+0) | 3,503 (+64) | +| 2026-08-13 | 3,710 (+207) | 0 (+0) | 3,710 (+207) | +| 2026-08-14 | 3,820 (+110) | 0 (+0) | 3,820 (+110) | +| 2026-08-15 | 3,876 (+56) | 0 (+0) | 3,876 (+56) | +| 2026-08-16 | 3,935 (+59) | 0 (+0) | 3,935 (+59) | +| 2026-08-17 | 4,019 (+84) | 0 (+0) | 4,019 (+84) | +| 2026-08-18 | 4,144 (+125) | 0 (+0) | 4,144 (+125) | +| 2026-08-19 | 4,207 (+63) | 0 (+0) | 4,207 (+63) | +| 2026-08-20 | 4,288 (+81) | 0 (+0) | 4,288 (+81) | +| 2026-08-21 | 4,421 (+133) | 0 (+0) | 4,421 (+133) | diff --git a/bun.lock b/bun.lock index 2ce854b48..ab9598680 100644 --- a/bun.lock +++ b/bun.lock @@ -27,7 +27,7 @@ }, "packages/app": { "name": "@cyberstrike-io/app", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@cyberstrike-io/sdk": "workspace:*", "@cyberstrike-io/ui": "workspace:*", @@ -78,7 +78,7 @@ }, "packages/console/app": { "name": "@cyberstrike-io/console-app", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@cyberstrike-io/console-core": "workspace:*", @@ -112,7 +112,7 @@ }, "packages/console/core": { "name": "@cyberstrike-io/console-core", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@cyberstrike-io/console-mail": "workspace:*", @@ -139,7 +139,7 @@ }, "packages/console/function": { "name": "@cyberstrike-io/console-function", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -163,7 +163,7 @@ }, "packages/console/mail": { "name": "@cyberstrike-io/console-mail", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -187,7 +187,7 @@ }, "packages/cyberstrike": { "name": "cyberstrike", - "version": "1.1.15", + "version": "1.1.16", "bin": { "cyberstrike": "./bin/cyberstrike", }, @@ -302,7 +302,7 @@ }, "packages/enterprise": { "name": "@cyberstrike-io/enterprise", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@cyberstrike-io/ui": "workspace:*", "@cyberstrike-io/util": "workspace:*", @@ -331,7 +331,7 @@ }, "packages/function": { "name": "@cyberstrike-io/function", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -347,7 +347,7 @@ }, "packages/hackbrowser": { "name": "@cyberstrike-io/hackbrowser", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@ai-sdk/anthropic": "2.0.0", "@ai-sdk/openai": "2.0.2", @@ -362,7 +362,7 @@ }, "packages/plugin": { "name": "@cyberstrike-io/plugin", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@cyberstrike-io/sdk": "workspace:*", "zod": "catalog:", @@ -382,7 +382,7 @@ }, "packages/sdk/js": { "name": "@cyberstrike-io/sdk", - "version": "1.1.15", + "version": "1.1.16", "devDependencies": { "@hey-api/openapi-ts": "0.97.3", "@tsconfig/node22": "catalog:", @@ -393,7 +393,7 @@ }, "packages/slack": { "name": "@cyberstrike-io/slack", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@cyberstrike-io/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -406,7 +406,7 @@ }, "packages/ui": { "name": "@cyberstrike-io/ui", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@cyberstrike-io/sdk": "workspace:*", "@cyberstrike-io/util": "workspace:*", @@ -448,7 +448,7 @@ }, "packages/util": { "name": "@cyberstrike-io/util", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "zod": "catalog:", }, diff --git a/README.ar.md b/docs/README/README.ar.md similarity index 97% rename from README.ar.md rename to docs/README/README.ar.md index 6b4deeeb3..787407e0b 100644 --- a/README.ar.md +++ b/docs/README/README.ar.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ التثبيتالأدوات المدمجةلمن هذا؟ • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.bn.md b/docs/README/README.bn.md similarity index 98% rename from README.bn.md rename to docs/README/README.bn.md index 4b54eb054..c8d77fd14 100644 --- a/README.bn.md +++ b/docs/README/README.bn.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ ইনস্টলেশনবিল্ট-ইন টুলএটি কাদের জন্য? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.br.md b/docs/README/README.br.md similarity index 96% rename from README.br.md rename to docs/README/README.br.md index 9d971c43a..a154b9380 100644 --- a/README.br.md +++ b/docs/README/README.br.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstalacaoFerramentas integradasPara quem e isso? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.bs.md b/docs/README/README.bs.md similarity index 96% rename from README.bs.md rename to docs/README/README.bs.md index db23c5364..08353cb00 100644 --- a/README.bs.md +++ b/docs/README/README.bs.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstalacijaUgrađeni alatiKome je ovo namijenjeno? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.da.md b/docs/README/README.da.md similarity index 97% rename from README.da.md rename to docs/README/README.da.md index 1f0d16397..e66c9cdfd 100644 --- a/README.da.md +++ b/docs/README/README.da.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstallationIndbyggede VærktøjerHvem Er Det Til? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.de.md b/docs/README/README.de.md similarity index 97% rename from README.de.md rename to docs/README/README.de.md index 4130037d9..8d691fb92 100644 --- a/README.de.md +++ b/docs/README/README.de.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstallationIntegrierte WerkzeugeFuer wen ist das? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.el.md b/docs/README/README.el.md similarity index 97% rename from README.el.md rename to docs/README/README.el.md index 29d56e093..9d3374898 100644 --- a/README.el.md +++ b/docs/README/README.el.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ ΕγκατάστασηΕνσωματωμένα εργαλείαΓια ποιον είναι; • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.es.md b/docs/README/README.es.md similarity index 96% rename from README.es.md rename to docs/README/README.es.md index e7800add2..5dba08cac 100644 --- a/README.es.md +++ b/docs/README/README.es.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstalacionHerramientas integradasPara quien es? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.fr.md b/docs/README/README.fr.md similarity index 97% rename from README.fr.md rename to docs/README/README.fr.md index af8f79dd9..0bfeac672 100644 --- a/README.fr.md +++ b/docs/README/README.fr.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstallationOutils integresA qui s'adresse-t-il ? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.hi.md b/docs/README/README.hi.md similarity index 97% rename from README.hi.md rename to docs/README/README.hi.md index 322cac6bb..bfdf3d93e 100644 --- a/README.hi.md +++ b/docs/README/README.hi.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ इंस्टॉलेशनबिल्ट-इन टूल्सयह किसके लिए है? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.it.md b/docs/README/README.it.md similarity index 96% rename from README.it.md rename to docs/README/README.it.md index 22d848eba..6d47cf77b 100644 --- a/README.it.md +++ b/docs/README/README.it.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstallazioneStrumenti IntegratiA Chi È Rivolto? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.ja.md b/docs/README/README.ja.md similarity index 97% rename from README.ja.md rename to docs/README/README.ja.md index 35f707d1c..79603c9b0 100644 --- a/README.ja.md +++ b/docs/README/README.ja.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ インストール組み込みツール誰のためのものか • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.ko.md b/docs/README/README.ko.md similarity index 96% rename from README.ko.md rename to docs/README/README.ko.md index 25d90e9ed..df6f0fbe8 100644 --- a/README.ko.md +++ b/docs/README/README.ko.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ 설치내장 도구누구를 위한 것인가 • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.no.md b/docs/README/README.no.md similarity index 96% rename from README.no.md rename to docs/README/README.no.md index c9d200654..681eb7d17 100644 --- a/README.no.md +++ b/docs/README/README.no.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstallasjonInnebygde verktøyHvem er dette for? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.pl.md b/docs/README/README.pl.md similarity index 96% rename from README.pl.md rename to docs/README/README.pl.md index b34e02bae..aff1865b4 100644 --- a/README.pl.md +++ b/docs/README/README.pl.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ InstalacjaWbudowane NarzędziaDla Kogo To Jest? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.ru.md b/docs/README/README.ru.md similarity index 97% rename from README.ru.md rename to docs/README/README.ru.md index 48dd73868..c2556e377 100644 --- a/README.ru.md +++ b/docs/README/README.ru.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ УстановкаВстроенные ИнструментыДля Кого Это? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.th.md b/docs/README/README.th.md similarity index 98% rename from README.th.md rename to docs/README/README.th.md index 2123075be..c50fb0bc8 100644 --- a/README.th.md +++ b/docs/README/README.th.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ การติดตั้งเครื่องมือในตัวเหมาะสำหรับใคร? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.tr.md b/docs/README/README.tr.md similarity index 96% rename from README.tr.md rename to docs/README/README.tr.md index 3295c1058..b42339c60 100644 --- a/README.tr.md +++ b/docs/README/README.tr.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ KurulumYerlesik AraclarKimler Icin? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.uk.md b/docs/README/README.uk.md similarity index 97% rename from README.uk.md rename to docs/README/README.uk.md index b7588b69e..f5f490f4e 100644 --- a/README.uk.md +++ b/docs/README/README.uk.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ ВстановленняВбудовані інструментиДля кого це? • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.vi.md b/docs/README/README.vi.md similarity index 97% rename from README.vi.md rename to docs/README/README.vi.md index 5d6436a0b..1bfe1285c 100644 --- a/README.vi.md +++ b/docs/README/README.vi.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ Cài đặtCông cụ tích hợp sẵnĐối tượng sử dụng • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.zh.md b/docs/README/README.zh.md similarity index 96% rename from README.zh.md rename to docs/README/README.zh.md index fe96913f7..7148bee43 100644 --- a/README.zh.md +++ b/docs/README/README.zh.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ 安装内置工具适用人群 • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/README.zht.md b/docs/README/README.zht.md similarity index 96% rename from README.zht.md rename to docs/README/README.zht.md index 46d6de035..d7a8a7064 100644 --- a/README.zht.md +++ b/docs/README/README.zht.md @@ -1,5 +1,5 @@

- English | + English | 简体中文 | 繁體中文 | 한국어 | @@ -26,9 +26,9 @@

- - - CyberStrike — open-source AI agent for offensive security + + + CyberStrike — open-source AI agent for offensive security

@@ -48,8 +48,8 @@ 安裝內建工具適用對象 • - Changelog • - Contributing + Changelog • + Contributing

diff --git a/packages/app/package.json b/packages/app/package.json index 41d0cc654..2bd4c5974 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/app", - "version": "1.1.15", + "version": "1.1.16", "description": "", "type": "module", "exports": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index dfeeb05cb..16addc277 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/console-app", - "version": "1.1.15", + "version": "1.1.16", "type": "module", "license": "AGPL-3.0-only", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index 7782b1d9a..6bed38d27 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@cyberstrike-io/console-core", - "version": "1.1.15", + "version": "1.1.16", "private": true, "type": "module", "license": "AGPL-3.0-only", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 0062d305b..01990cf78 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/console-function", - "version": "1.1.15", + "version": "1.1.16", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index 63d54887f..b2196c256 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/console-mail", - "version": "1.1.15", + "version": "1.1.16", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/cyberstrike/package.json b/packages/cyberstrike/package.json index 8347fffc1..43a7bad11 100644 --- a/packages/cyberstrike/package.json +++ b/packages/cyberstrike/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.1.15", + "version": "1.1.16", "name": "cyberstrike", "type": "module", "description": "The first open-source AI agent built for offensive security. Autonomous pentesting from your terminal.", diff --git a/packages/cyberstrike/src/provider/provider.ts b/packages/cyberstrike/src/provider/provider.ts index 87c7c0c50..531819c4c 100644 --- a/packages/cyberstrike/src/provider/provider.ts +++ b/packages/cyberstrike/src/provider/provider.ts @@ -43,6 +43,13 @@ export namespace Provider { return Number(match[1]) >= 5 } + // deepseek-v4-flash-vision-exp is DeepSeek's multimodal model. Force image + // input capability even if models.dev / local cache hasn't tagged it yet. + // https://api-docs.deepseek.com/zh-cn/guides/vision + function isVisionModel(modelID: string): boolean { + return modelID === "deepseek-v4-flash-vision-exp" || modelID.endsWith("/deepseek-v4-flash-vision-exp") + } + function shouldUseCopilotResponsesApi(modelID: string): boolean { return isGpt5OrLater(modelID) && !modelID.startsWith("gpt-5-mini") } @@ -734,7 +741,7 @@ export namespace Provider { input: { text: model.modalities?.input?.includes("text") ?? false, audio: model.modalities?.input?.includes("audio") ?? false, - image: model.modalities?.input?.includes("image") ?? false, + image: model.modalities?.input?.includes("image") || isVisionModel(model.id), video: model.modalities?.input?.includes("video") ?? false, pdf: model.modalities?.input?.includes("pdf") ?? false, }, @@ -875,7 +882,10 @@ export namespace Provider { input: { text: model.modalities?.input?.includes("text") ?? existingModel?.capabilities.input.text ?? true, audio: model.modalities?.input?.includes("audio") ?? existingModel?.capabilities.input.audio ?? false, - image: model.modalities?.input?.includes("image") ?? existingModel?.capabilities.input.image ?? false, + image: + model.modalities?.input?.includes("image") || + existingModel?.capabilities.input.image || + isVisionModel(modelID), video: model.modalities?.input?.includes("video") ?? existingModel?.capabilities.input.video ?? false, pdf: model.modalities?.input?.includes("pdf") ?? existingModel?.capabilities.input.pdf ?? false, }, diff --git a/packages/cyberstrike/src/provider/transform.ts b/packages/cyberstrike/src/provider/transform.ts index a8e457121..599c7cf26 100644 --- a/packages/cyberstrike/src/provider/transform.ts +++ b/packages/cyberstrike/src/provider/transform.ts @@ -349,7 +349,8 @@ export namespace ProviderTransform { ) return {} - // DeepSeek V4 supports only "high" and "max" reasoning_effort (low/medium are mapped to high by API) + // DeepSeek V4 supports only "high" and "max" reasoning_effort (low/medium are mapped to high by API). + // Applies to all deepseek-v4* models including the multimodal deepseek-v4-flash-vision-exp. if (id.includes("deepseek")) { if (id.includes("deepseek-v4")) return { diff --git a/packages/cyberstrike/test/provider/provider.test.ts b/packages/cyberstrike/test/provider/provider.test.ts index ff8baf99f..1d0677dfa 100644 --- a/packages/cyberstrike/test/provider/provider.test.ts +++ b/packages/cyberstrike/test/provider/provider.test.ts @@ -2127,3 +2127,77 @@ test("custom model with variants enabled and disabled", async () => { }, }) }) + +test("deepseek-v4-flash-vision-exp is loaded as a multimodal model from models.dev", async () => { + await using tmp = await tmpdir({ + init: async (dir) => { + await Bun.write( + path.join(dir, "cyberstrike.json"), + JSON.stringify({ + $schema: "https://cyberstrike.io/config.json", + }), + ) + }, + }) + await Instance.provide({ + directory: tmp.path, + init: async () => { + Env.set("DEEPSEEK_API_KEY", "test-api-key") + }, + fn: async () => { + const providers = await Provider.list() + const model = providers["deepseek"].models["deepseek-v4-flash-vision-exp"] + expect(model).toBeDefined() + expect(model.name).toBe("DeepSeek V4 Flash Vision Exp") + // Multimodal: accepts image input + expect(model.capabilities.input.image).toBe(true) + expect(model.capabilities.attachment).toBe(true) + // Reasoning + interleaved reasoning_content (deepseek-v4 family) + expect(model.capabilities.reasoning).toBe(true) + expect(model.capabilities.interleaved).toEqual({ field: "reasoning_content" }) + // Reasoning effort variants are generated for deepseek-v4 models + expect(model.variants).toBeDefined() + expect(model.variants!["high"]).toEqual({ reasoning_effort: "high" }) + expect(model.variants!["max"]).toEqual({ reasoning_effort: "max" }) + }, + }) +}) + +test("deepseek-v4-flash-vision-exp keeps image capability even when config omits modalities", async () => { + await using tmp = await tmpdir({ + init: async (dir) => { + await Bun.write( + path.join(dir, "cyberstrike.json"), + JSON.stringify({ + $schema: "https://cyberstrike.io/config.json", + provider: { + deepseek: { + models: { + "deepseek-v4-flash-vision-exp": { + name: "DeepSeek V4 Flash Vision Exp", + tool_call: true, + reasoning: true, + limit: { context: 1000000, output: 384000 }, + }, + }, + }, + }, + }), + ) + }, + }) + await Instance.provide({ + directory: tmp.path, + init: async () => { + Env.set("DEEPSEEK_API_KEY", "test-api-key") + }, + fn: async () => { + const providers = await Provider.list() + const model = providers["deepseek"].models["deepseek-v4-flash-vision-exp"] + expect(model).toBeDefined() + // Image input must be forced on even though config didn't set modalities + expect(model.capabilities.input.image).toBe(true) + expect(model.capabilities.reasoning).toBe(true) + }, + }) +}) diff --git a/packages/cyberstrike/test/provider/transform.test.ts b/packages/cyberstrike/test/provider/transform.test.ts index bcb20fb71..e932a7146 100644 --- a/packages/cyberstrike/test/provider/transform.test.ts +++ b/packages/cyberstrike/test/provider/transform.test.ts @@ -1638,6 +1638,23 @@ describe("ProviderTransform.variants", () => { }) }) + test("deepseek-v4-flash-vision-exp returns high/max reasoning_effort variants", () => { + const model = createMockModel({ + id: "deepseek/deepseek-v4-flash-vision-exp", + providerID: "deepseek", + api: { + id: "deepseek-v4-flash-vision-exp", + url: "https://api.deepseek.com", + npm: "@ai-sdk/openai-compatible", + }, + }) + const result = ProviderTransform.variants(model) + expect(result).toEqual({ + high: { reasoning_effort: "high" }, + max: { reasoning_effort: "max" }, + }) + }) + test("minimax returns empty object", () => { const model = createMockModel({ id: "minimax/minimax-model", diff --git a/packages/cyberstrike/test/tool/fixtures/models-api.json b/packages/cyberstrike/test/tool/fixtures/models-api.json index 05e12d44c..29fd42fe1 100644 --- a/packages/cyberstrike/test/tool/fixtures/models-api.json +++ b/packages/cyberstrike/test/tool/fixtures/models-api.json @@ -9866,6 +9866,30 @@ "open_weights": false, "cost": { "input": 0.28, "output": 0.42, "cache_read": 0.028 }, "limit": { "context": 128000, "output": 128000 } + }, + "deepseek-v4-flash-vision-exp": { + "id": "deepseek-v4-flash-vision-exp", + "name": "DeepSeek V4 Flash Vision Exp", + "description": "Experimental multimodal DeepSeek V4 Flash model for image understanding, coding, and agentic work", + "family": "deepseek-flash", + "attachment": true, + "reasoning": true, + "reasoning_options": [ + { "type": "toggle" }, + { "type": "effort", "values": ["low", "high", "max"] } + ], + "tool_call": true, + "interleaved": { "field": "reasoning_content" }, + "structured_output": true, + "temperature": true, + "knowledge": "2025-05", + "release_date": "2026-08-21", + "last_updated": "2026-08-21", + "modalities": { "input": ["text", "image"], "output": ["text"] }, + "open_weights": false, + "status": "beta", + "cost": { "input": 0.14, "output": 0.28, "cache_read": 0.0028 }, + "limit": { "context": 1000000, "output": 384000 } } } }, diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 3e5bcad2b..9dde3dc28 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/enterprise", - "version": "1.1.15", + "version": "1.1.16", "private": true, "type": "module", "license": "AGPL-3.0-only", diff --git a/packages/extensions/zed/extension.toml b/packages/extensions/zed/extension.toml index f34063801..aced12dd7 100644 --- a/packages/extensions/zed/extension.toml +++ b/packages/extensions/zed/extension.toml @@ -1,7 +1,7 @@ id = "cyberstrike" name = "CyberStrike" description = "The open source coding agent." -version = "1.1.15" +version = "1.1.16" schema_version = 1 authors = ["Anomaly"] repository = "https://github.com/CyberStrikeus/CyberStrike" @@ -11,26 +11,26 @@ name = "CyberStrike" icon = "./icons/cyberstrike.svg" [agent_servers.cyberstrike.targets.darwin-aarch64] -archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.15/cyberstrike-darwin-arm64.zip" +archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.16/cyberstrike-darwin-arm64.zip" cmd = "./cyberstrike" args = ["acp"] [agent_servers.cyberstrike.targets.darwin-x86_64] -archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.15/cyberstrike-darwin-x64.zip" +archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.16/cyberstrike-darwin-x64.zip" cmd = "./cyberstrike" args = ["acp"] [agent_servers.cyberstrike.targets.linux-aarch64] -archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.15/cyberstrike-linux-arm64.tar.gz" +archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.16/cyberstrike-linux-arm64.tar.gz" cmd = "./cyberstrike" args = ["acp"] [agent_servers.cyberstrike.targets.linux-x86_64] -archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.15/cyberstrike-linux-x64.tar.gz" +archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.16/cyberstrike-linux-x64.tar.gz" cmd = "./cyberstrike" args = ["acp"] [agent_servers.cyberstrike.targets.windows-x86_64] -archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.15/cyberstrike-windows-x64.zip" +archive = "https://github.com/CyberStrikeus/CyberStrike/releases/download/v1.1.16/cyberstrike-windows-x64.zip" cmd = "./cyberstrike.exe" args = ["acp"] diff --git a/packages/function/package.json b/packages/function/package.json index 834781279..d3ba627d5 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/function", - "version": "1.1.15", + "version": "1.1.16", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/hackbrowser/package.json b/packages/hackbrowser/package.json index e9948444c..7082ed36b 100644 --- a/packages/hackbrowser/package.json +++ b/packages/hackbrowser/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/hackbrowser", - "version": "1.1.15", + "version": "1.1.16", "description": "AI-driven hackbrowser — autonomous web pentesting crawler with HTTP capture and UI context", "type": "module", "private": true, diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 8f472c204..4f9557be8 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@cyberstrike-io/plugin", - "version": "1.1.15", + "version": "1.1.16", "type": "module", "license": "AGPL-3.0-only", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 1af6e0c9f..8c5bcfa60 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@cyberstrike-io/sdk", - "version": "1.1.15", + "version": "1.1.16", "type": "module", "license": "AGPL-3.0-only", "scripts": { diff --git a/packages/slack/package.json b/packages/slack/package.json index 33599978e..59a685de1 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/slack", - "version": "1.1.15", + "version": "1.1.16", "type": "module", "license": "AGPL-3.0-only", "scripts": { diff --git a/packages/ui/package.json b/packages/ui/package.json index 563a159e8..b1db7d5fa 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/ui", - "version": "1.1.15", + "version": "1.1.16", "type": "module", "license": "AGPL-3.0-only", "exports": { diff --git a/packages/util/package.json b/packages/util/package.json index 96f56e2dc..6dc33f453 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@cyberstrike-io/util", - "version": "1.1.15", + "version": "1.1.16", "private": true, "type": "module", "license": "AGPL-3.0-only", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 799d9003e..8b3aa0e94 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "cyberstrike", "displayName": "cyberstrike", "description": "cyberstrike for VS Code", - "version": "1.1.15", + "version": "1.1.16", "publisher": "sst-dev", "repository": { "type": "git",