cascade-ai 0.52.0 → 0.53.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.js CHANGED
@@ -1740,7 +1740,7 @@ var CASCADE_VERSION, CASCADE_CONFIG_FILE, CASCADE_DB_FILE, CASCADE_DASHBOARD_SEC
1740
1740
  var init_constants = __esm({
1741
1741
  "src/constants.ts"() {
1742
1742
  init_pricing();
1743
- CASCADE_VERSION = "0.52.0";
1743
+ CASCADE_VERSION = "0.53.0";
1744
1744
  CASCADE_CONFIG_FILE = ".cascade/config.json";
1745
1745
  CASCADE_DB_FILE = ".cascade/memory.db";
1746
1746
  CASCADE_DASHBOARD_SECRET_FILE = ".cascade/dashboard-secret";
@@ -2739,26 +2739,14 @@ var init_openai = __esm({
2739
2739
  // src/providers/azure.ts
2740
2740
  var azure_exports = {};
2741
2741
  __export(azure_exports, {
2742
+ AZURE_BASE_MODELS: () => AZURE_BASE_MODELS,
2742
2743
  AzureOpenAIProvider: () => AzureOpenAIProvider,
2743
2744
  azureModelForDeployment: () => azureModelForDeployment,
2744
2745
  inferAzureBaseModel: () => inferAzureBaseModel
2745
2746
  });
2746
2747
  function inferAzureBaseModel(deploymentName) {
2747
2748
  const n = deploymentName.toLowerCase();
2748
- const rules = [
2749
- [/gpt-?5\.5/, "gpt-5.5"],
2750
- [/gpt-?5\.4.*mini/, "gpt-5.4-mini"],
2751
- [/gpt-?5\.4/, "gpt-5.4"],
2752
- [/gpt-?5.*nano/, "gpt-5-nano"],
2753
- [/gpt-?5.*mini/, "gpt-5-mini"],
2754
- [/gpt-?5/, "gpt-5"],
2755
- [/gpt-?4\.1-nano/, "gpt-4.1-nano"],
2756
- [/gpt-?4\.1-mini/, "gpt-4.1-mini"],
2757
- [/gpt-?4\.1/, "gpt-4.1"],
2758
- [/gpt-?4o-mini/, "gpt-4o-mini"],
2759
- [/gpt-?4o/, "gpt-4o"]
2760
- ];
2761
- for (const [re, base] of rules) if (re.test(n)) return base;
2749
+ for (const [re, base] of AZURE_BASE_MODEL_RULES) if (re.test(n)) return base;
2762
2750
  return null;
2763
2751
  }
2764
2752
  function azureModelForDeployment(cfg) {
@@ -2803,13 +2791,27 @@ function azureModelForDeployment(cfg) {
2803
2791
  supportsToolUse: true
2804
2792
  };
2805
2793
  }
2806
- var DEFAULT_AZURE_API_VERSION, AzureOpenAIProvider;
2794
+ var DEFAULT_AZURE_API_VERSION, AZURE_BASE_MODEL_RULES, AZURE_BASE_MODELS, AzureOpenAIProvider;
2807
2795
  var init_azure = __esm({
2808
2796
  "src/providers/azure.ts"() {
2809
2797
  init_constants();
2810
2798
  init_openai();
2811
2799
  init_pricing();
2812
2800
  DEFAULT_AZURE_API_VERSION = "2024-12-01-preview";
2801
+ AZURE_BASE_MODEL_RULES = [
2802
+ [/gpt-?5\.5/, "gpt-5.5"],
2803
+ [/gpt-?5\.4.*mini/, "gpt-5.4-mini"],
2804
+ [/gpt-?5\.4/, "gpt-5.4"],
2805
+ [/gpt-?5.*nano/, "gpt-5-nano"],
2806
+ [/gpt-?5.*mini/, "gpt-5-mini"],
2807
+ [/gpt-?5/, "gpt-5"],
2808
+ [/gpt-?4\.1-nano/, "gpt-4.1-nano"],
2809
+ [/gpt-?4\.1-mini/, "gpt-4.1-mini"],
2810
+ [/gpt-?4\.1/, "gpt-4.1"],
2811
+ [/gpt-?4o-mini/, "gpt-4o-mini"],
2812
+ [/gpt-?4o/, "gpt-4o"]
2813
+ ];
2814
+ AZURE_BASE_MODELS = AZURE_BASE_MODEL_RULES.map(([, id]) => id);
2813
2815
  AzureOpenAIProvider = class extends OpenAIProvider {
2814
2816
  constructor(config, model) {
2815
2817
  const rawUrl = config.baseUrl ?? AZURE_BASE_URL_TEMPLATE.replace("{resource}", "YOUR_RESOURCE");
@@ -5510,6 +5512,26 @@ var ConfigManager = class {
5510
5512
  }
5511
5513
  };
5512
5514
 
5515
+ // src/tools/tool-name.ts
5516
+ var MCP_TOOL_PREFIX = "mcp__";
5517
+ function sanitizeToolNameSegment(segment) {
5518
+ const cleaned = segment.replace(/[^a-zA-Z0-9-]+/g, "_");
5519
+ let start = 0;
5520
+ let end = cleaned.length;
5521
+ while (start < end && cleaned[start] === "_") start++;
5522
+ while (end > start && cleaned[end - 1] === "_") end--;
5523
+ return cleaned.slice(start, end) || "_";
5524
+ }
5525
+ function mcpToolName(serverName, toolName) {
5526
+ return `${MCP_TOOL_PREFIX}${sanitizeToolNameSegment(serverName)}__${sanitizeToolNameSegment(toolName)}`;
5527
+ }
5528
+ function isMcpToolName(name) {
5529
+ return name.startsWith(MCP_TOOL_PREFIX);
5530
+ }
5531
+ function mcpServerPrefix(serverName) {
5532
+ return `${MCP_TOOL_PREFIX}${sanitizeToolNameSegment(serverName)}__`;
5533
+ }
5534
+
5513
5535
  // src/cli/utils/terminal-input.ts
5514
5536
  var PASTE_START = "\x1B[200~";
5515
5537
  var PASTE_END = "\x1B[201~";
@@ -13144,7 +13166,7 @@ var McpToolWrapper = class extends BaseTool {
13144
13166
  this.mcpClient = mcpClient;
13145
13167
  this.serverName = serverName;
13146
13168
  this.toolName = toolName;
13147
- this.name = `mcp::${serverName}::${toolName}`;
13169
+ this.name = mcpToolName(serverName, toolName);
13148
13170
  this.description = `[MCP:${serverName}] ${description}`;
13149
13171
  this.inputSchema = inputSchema;
13150
13172
  }
@@ -19505,13 +19527,13 @@ ${msg.content}`).join("\n\n");
19505
19527
  const cascade = cascadeRef.current;
19506
19528
  if (!cascade) return "Cascade not initialized.";
19507
19529
  const toolRegistry = cascade.getToolRegistry();
19508
- const tools = toolRegistry.getToolDefinitions().filter((t) => t.name.startsWith("mcp::"));
19530
+ const tools = toolRegistry.getToolDefinitions().filter((t) => isMcpToolName(t.name));
19509
19531
  if (tools.length === 0) return "No MCP tools connected.";
19510
19532
  const servers = /* @__PURE__ */ new Set();
19511
19533
  tools.forEach((t) => servers.add(t.name.split("::")[1]));
19512
19534
  const lines = [`Connected MCP Servers (${servers.size}):`];
19513
19535
  for (const server of servers) {
19514
- const serverTools = tools.filter((t) => t.name.startsWith(`mcp::${server}::`));
19536
+ const serverTools = tools.filter((t) => t.name.startsWith(mcpServerPrefix(server)));
19515
19537
  lines.push(`
19516
19538
  \u25CF ${server} (${serverTools.length} tools)`);
19517
19539
  serverTools.forEach((t) => lines.push(` - ${t.name.split("::")[2]} \u2014 ${t.description.replace(`[MCP:${server}] `, "")}`));