cascade-ai 0.47.0 → 0.48.0
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.
- package/dist/cli.cjs +67 -7
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +67 -7
- package/dist/cli.js.map +1 -1
- package/dist/desktop-core.cjs +57 -7
- package/dist/index.cjs +57 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +57 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -193,7 +193,7 @@ var init_audit_logger = __esm({
|
|
|
193
193
|
});
|
|
194
194
|
|
|
195
195
|
// src/constants.ts
|
|
196
|
-
var CASCADE_VERSION = "0.
|
|
196
|
+
var CASCADE_VERSION = "0.48.0";
|
|
197
197
|
var CASCADE_CONFIG_DIR = ".cascade";
|
|
198
198
|
var CASCADE_MD_FILE = "CASCADE.md";
|
|
199
199
|
var CASCADE_IGNORE_FILE = ".cascadeignore";
|
|
@@ -675,6 +675,55 @@ var BaseProvider = class {
|
|
|
675
675
|
}
|
|
676
676
|
};
|
|
677
677
|
|
|
678
|
+
// src/providers/model-filter.ts
|
|
679
|
+
var NON_CHAT_PATTERNS = [
|
|
680
|
+
"embed",
|
|
681
|
+
// text-embedding-3, nomic-embed, mxbai-embed, snowflake-arctic-embed
|
|
682
|
+
"(?:^|[-_/])tts(?:[-_/]|$)",
|
|
683
|
+
"text-to-speech",
|
|
684
|
+
"speech",
|
|
685
|
+
// text-to-speech
|
|
686
|
+
"whisper",
|
|
687
|
+
"transcrib",
|
|
688
|
+
"(?:^|[-_/])stt(?:[-_/]|$)",
|
|
689
|
+
// speech-to-text
|
|
690
|
+
"dall[-]?e",
|
|
691
|
+
"imagen",
|
|
692
|
+
"image-generation",
|
|
693
|
+
"gpt-image",
|
|
694
|
+
"(?:^|[-_/])image(?:[-_/]|$)",
|
|
695
|
+
"stable-diffusion",
|
|
696
|
+
"sdxl",
|
|
697
|
+
"flux",
|
|
698
|
+
// image gen
|
|
699
|
+
"moderation",
|
|
700
|
+
"(?:^|[-_/])guard(?:[-_/]|$)",
|
|
701
|
+
// moderation / safety
|
|
702
|
+
"rerank",
|
|
703
|
+
"(?:^|[-_/])audio(?:[-_/]|$)",
|
|
704
|
+
"native-audio",
|
|
705
|
+
"realtime",
|
|
706
|
+
// audio / realtime
|
|
707
|
+
"veo",
|
|
708
|
+
"sora",
|
|
709
|
+
"(?:^|[-_/])video(?:[-_/]|$)",
|
|
710
|
+
// video
|
|
711
|
+
"(?:^|[-_/])aqa(?:[-_/]|$)",
|
|
712
|
+
// attributed QA
|
|
713
|
+
"(?:^|[-_/])live(?:[-_/]|$)",
|
|
714
|
+
// live-audio variants
|
|
715
|
+
"(?:^|[-_/])(?:davinci|babbage)(?:[-_/]|$)"
|
|
716
|
+
// legacy completion-only base models
|
|
717
|
+
];
|
|
718
|
+
var NON_CHAT = new RegExp(NON_CHAT_PATTERNS.join("|"), "i");
|
|
719
|
+
function isChatModel(id, methods) {
|
|
720
|
+
if (methods && methods.length > 0) {
|
|
721
|
+
const canGenerate = methods.some((m) => /generatecontent|generatemessage|chat|completion/i.test(m));
|
|
722
|
+
if (!canGenerate) return false;
|
|
723
|
+
}
|
|
724
|
+
return !NON_CHAT.test(id);
|
|
725
|
+
}
|
|
726
|
+
|
|
678
727
|
// src/providers/anthropic.ts
|
|
679
728
|
function anthropicThinkingParam(modelId, maxTokens) {
|
|
680
729
|
if (!/claude-(opus|sonnet)-4/i.test(modelId)) return {};
|
|
@@ -788,7 +837,7 @@ var AnthropicProvider = class extends BaseProvider {
|
|
|
788
837
|
if (!Array.isArray(data?.data)) {
|
|
789
838
|
return Object.values(MODELS).filter((m) => m.provider === "anthropic");
|
|
790
839
|
}
|
|
791
|
-
return data.data.map((m) => {
|
|
840
|
+
return data.data.filter((m) => isChatModel(m.id)).map((m) => {
|
|
792
841
|
const known = Object.values(MODELS).find((km) => km.id === m.id && km.provider === "anthropic");
|
|
793
842
|
if (known) return known;
|
|
794
843
|
return {
|
|
@@ -1003,7 +1052,7 @@ var OpenAIProvider = class extends BaseProvider {
|
|
|
1003
1052
|
async listModels() {
|
|
1004
1053
|
try {
|
|
1005
1054
|
const response = await this.client.models.list();
|
|
1006
|
-
return response.data.map((m) => {
|
|
1055
|
+
return response.data.filter((m) => isChatModel(m.id)).map((m) => {
|
|
1007
1056
|
const known = Object.values(MODELS).find((km) => km.id === m.id && km.provider === "openai");
|
|
1008
1057
|
if (known) return known;
|
|
1009
1058
|
return {
|
|
@@ -1278,7 +1327,7 @@ var GeminiProvider = class extends BaseProvider {
|
|
|
1278
1327
|
if (!Array.isArray(data?.models)) {
|
|
1279
1328
|
return Object.values(MODELS).filter((m) => m.provider === "gemini");
|
|
1280
1329
|
}
|
|
1281
|
-
return data.models.map((m) => {
|
|
1330
|
+
return data.models.filter((m) => isChatModel(m.name.replace("models/", ""), m.supportedGenerationMethods)).map((m) => {
|
|
1282
1331
|
const id = m.name.replace("models/", "");
|
|
1283
1332
|
const known = Object.values(MODELS).find(
|
|
1284
1333
|
(km) => km.id === id && km.provider === "gemini"
|
|
@@ -1636,10 +1685,10 @@ var OllamaProvider = class extends BaseProvider {
|
|
|
1636
1685
|
const response = await fetch(`${this.baseUrl}/api/tags`);
|
|
1637
1686
|
if (!response.ok) return [];
|
|
1638
1687
|
const data = await response.json();
|
|
1639
|
-
const supportedKeywords = ["llama3", "llama2", "gemma", "mistral", "mixtral", "qwen", "phi3", "codellama", "deepseek", "llava", "starcoder", "stable-code"
|
|
1688
|
+
const supportedKeywords = ["llama3", "llama2", "gemma", "mistral", "mixtral", "qwen", "phi3", "codellama", "deepseek", "llava", "starcoder", "stable-code"];
|
|
1640
1689
|
const entries = data.models.filter((m) => {
|
|
1641
1690
|
const name = m.name.toLowerCase();
|
|
1642
|
-
return supportedKeywords.some((k) => name.includes(k));
|
|
1691
|
+
return supportedKeywords.some((k) => name.includes(k)) && isChatModel(name);
|
|
1643
1692
|
});
|
|
1644
1693
|
const shows = await Promise.all(entries.map((m) => this.showModel(m.name)));
|
|
1645
1694
|
return entries.map((m, i) => {
|
|
@@ -1759,7 +1808,8 @@ var OpenAICompatibleProvider = class extends OpenAIProvider {
|
|
|
1759
1808
|
return typeof m === "string" ? m : void 0;
|
|
1760
1809
|
}).filter((x) => typeof x === "string" && x.length > 0);
|
|
1761
1810
|
if (ids.length === 0) return [this.model];
|
|
1762
|
-
|
|
1811
|
+
const chatIds = ids.filter((id) => isChatModel(id));
|
|
1812
|
+
return (chatIds.length ? chatIds : ids).map((id) => ({
|
|
1763
1813
|
id,
|
|
1764
1814
|
name: id,
|
|
1765
1815
|
provider: "openai-compatible",
|