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.cjs CHANGED
@@ -1793,7 +1793,7 @@ var CASCADE_VERSION, CASCADE_CONFIG_FILE, CASCADE_DB_FILE, CASCADE_DASHBOARD_SEC
1793
1793
  var init_constants = __esm({
1794
1794
  "src/constants.ts"() {
1795
1795
  init_pricing();
1796
- CASCADE_VERSION = "0.52.0";
1796
+ CASCADE_VERSION = "0.53.0";
1797
1797
  CASCADE_CONFIG_FILE = ".cascade/config.json";
1798
1798
  CASCADE_DB_FILE = ".cascade/memory.db";
1799
1799
  CASCADE_DASHBOARD_SECRET_FILE = ".cascade/dashboard-secret";
@@ -2792,26 +2792,14 @@ var init_openai = __esm({
2792
2792
  // src/providers/azure.ts
2793
2793
  var azure_exports = {};
2794
2794
  __export(azure_exports, {
2795
+ AZURE_BASE_MODELS: () => AZURE_BASE_MODELS,
2795
2796
  AzureOpenAIProvider: () => AzureOpenAIProvider,
2796
2797
  azureModelForDeployment: () => azureModelForDeployment,
2797
2798
  inferAzureBaseModel: () => inferAzureBaseModel
2798
2799
  });
2799
2800
  function inferAzureBaseModel(deploymentName) {
2800
2801
  const n = deploymentName.toLowerCase();
2801
- const 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
- for (const [re, base] of rules) if (re.test(n)) return base;
2802
+ for (const [re, base] of AZURE_BASE_MODEL_RULES) if (re.test(n)) return base;
2815
2803
  return null;
2816
2804
  }
2817
2805
  function azureModelForDeployment(cfg) {
@@ -2856,13 +2844,27 @@ function azureModelForDeployment(cfg) {
2856
2844
  supportsToolUse: true
2857
2845
  };
2858
2846
  }
2859
- var DEFAULT_AZURE_API_VERSION, AzureOpenAIProvider;
2847
+ var DEFAULT_AZURE_API_VERSION, AZURE_BASE_MODEL_RULES, AZURE_BASE_MODELS, AzureOpenAIProvider;
2860
2848
  var init_azure = __esm({
2861
2849
  "src/providers/azure.ts"() {
2862
2850
  init_constants();
2863
2851
  init_openai();
2864
2852
  init_pricing();
2865
2853
  DEFAULT_AZURE_API_VERSION = "2024-12-01-preview";
2854
+ AZURE_BASE_MODEL_RULES = [
2855
+ [/gpt-?5\.5/, "gpt-5.5"],
2856
+ [/gpt-?5\.4.*mini/, "gpt-5.4-mini"],
2857
+ [/gpt-?5\.4/, "gpt-5.4"],
2858
+ [/gpt-?5.*nano/, "gpt-5-nano"],
2859
+ [/gpt-?5.*mini/, "gpt-5-mini"],
2860
+ [/gpt-?5/, "gpt-5"],
2861
+ [/gpt-?4\.1-nano/, "gpt-4.1-nano"],
2862
+ [/gpt-?4\.1-mini/, "gpt-4.1-mini"],
2863
+ [/gpt-?4\.1/, "gpt-4.1"],
2864
+ [/gpt-?4o-mini/, "gpt-4o-mini"],
2865
+ [/gpt-?4o/, "gpt-4o"]
2866
+ ];
2867
+ AZURE_BASE_MODELS = AZURE_BASE_MODEL_RULES.map(([, id]) => id);
2866
2868
  AzureOpenAIProvider = class extends OpenAIProvider {
2867
2869
  constructor(config, model) {
2868
2870
  const rawUrl = config.baseUrl ?? AZURE_BASE_URL_TEMPLATE.replace("{resource}", "YOUR_RESOURCE");
@@ -5563,6 +5565,26 @@ var ConfigManager = class {
5563
5565
  }
5564
5566
  };
5565
5567
 
5568
+ // src/tools/tool-name.ts
5569
+ var MCP_TOOL_PREFIX = "mcp__";
5570
+ function sanitizeToolNameSegment(segment) {
5571
+ const cleaned = segment.replace(/[^a-zA-Z0-9-]+/g, "_");
5572
+ let start = 0;
5573
+ let end = cleaned.length;
5574
+ while (start < end && cleaned[start] === "_") start++;
5575
+ while (end > start && cleaned[end - 1] === "_") end--;
5576
+ return cleaned.slice(start, end) || "_";
5577
+ }
5578
+ function mcpToolName(serverName, toolName) {
5579
+ return `${MCP_TOOL_PREFIX}${sanitizeToolNameSegment(serverName)}__${sanitizeToolNameSegment(toolName)}`;
5580
+ }
5581
+ function isMcpToolName(name) {
5582
+ return name.startsWith(MCP_TOOL_PREFIX);
5583
+ }
5584
+ function mcpServerPrefix(serverName) {
5585
+ return `${MCP_TOOL_PREFIX}${sanitizeToolNameSegment(serverName)}__`;
5586
+ }
5587
+
5566
5588
  // src/cli/utils/terminal-input.ts
5567
5589
  var PASTE_START = "\x1B[200~";
5568
5590
  var PASTE_END = "\x1B[201~";
@@ -13197,7 +13219,7 @@ var McpToolWrapper = class extends BaseTool {
13197
13219
  this.mcpClient = mcpClient;
13198
13220
  this.serverName = serverName;
13199
13221
  this.toolName = toolName;
13200
- this.name = `mcp::${serverName}::${toolName}`;
13222
+ this.name = mcpToolName(serverName, toolName);
13201
13223
  this.description = `[MCP:${serverName}] ${description}`;
13202
13224
  this.inputSchema = inputSchema;
13203
13225
  }
@@ -19558,13 +19580,13 @@ ${msg.content}`).join("\n\n");
19558
19580
  const cascade = cascadeRef.current;
19559
19581
  if (!cascade) return "Cascade not initialized.";
19560
19582
  const toolRegistry = cascade.getToolRegistry();
19561
- const tools = toolRegistry.getToolDefinitions().filter((t) => t.name.startsWith("mcp::"));
19583
+ const tools = toolRegistry.getToolDefinitions().filter((t) => isMcpToolName(t.name));
19562
19584
  if (tools.length === 0) return "No MCP tools connected.";
19563
19585
  const servers = /* @__PURE__ */ new Set();
19564
19586
  tools.forEach((t) => servers.add(t.name.split("::")[1]));
19565
19587
  const lines = [`Connected MCP Servers (${servers.size}):`];
19566
19588
  for (const server of servers) {
19567
- const serverTools = tools.filter((t) => t.name.startsWith(`mcp::${server}::`));
19589
+ const serverTools = tools.filter((t) => t.name.startsWith(mcpServerPrefix(server)));
19568
19590
  lines.push(`
19569
19591
  \u25CF ${server} (${serverTools.length} tools)`);
19570
19592
  serverTools.forEach((t) => lines.push(` - ${t.name.split("::")[2]} \u2014 ${t.description.replace(`[MCP:${server}] `, "")}`));