cascade-ai 0.12.0 → 0.12.1

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/index.d.cts CHANGED
@@ -2024,6 +2024,8 @@ declare class DashboardSocket {
2024
2024
  autoBias?: string;
2025
2025
  };
2026
2026
  }) => void): void;
2027
+ emitToSocket(socketId: string, event: string, data: unknown): void;
2028
+ onCascadeRun(callback: (prompt: string, model: string, socketId: string) => void): void;
2027
2029
  close(): void;
2028
2030
  }
2029
2031
 
package/dist/index.d.ts CHANGED
@@ -2024,6 +2024,8 @@ declare class DashboardSocket {
2024
2024
  autoBias?: string;
2025
2025
  };
2026
2026
  }) => void): void;
2027
+ emitToSocket(socketId: string, event: string, data: unknown): void;
2028
+ onCascadeRun(callback: (prompt: string, model: string, socketId: string) => void): void;
2027
2029
  close(): void;
2028
2030
  }
2029
2031
 
package/dist/index.js CHANGED
@@ -10563,6 +10563,18 @@ var DashboardSocket = class {
10563
10563
  });
10564
10564
  });
10565
10565
  }
10566
+ emitToSocket(socketId, event, data) {
10567
+ this.io.sockets.sockets.get(socketId)?.emit(event, data);
10568
+ }
10569
+ onCascadeRun(callback) {
10570
+ this.io.on("connection", (socket) => {
10571
+ socket.on("cascade:run", (payload) => {
10572
+ if (typeof payload?.prompt === "string" && payload.prompt.trim()) {
10573
+ callback(payload.prompt.trim(), payload.model ?? "auto", socket.id);
10574
+ }
10575
+ });
10576
+ });
10577
+ }
10566
10578
  close() {
10567
10579
  this.io.close();
10568
10580
  }
@@ -10621,6 +10633,43 @@ var DashboardServer = class {
10621
10633
  }
10622
10634
  }
10623
10635
  });
10636
+ this.socket.onCascadeRun(async (prompt, model, socketId) => {
10637
+ const sessionId = randomUUID();
10638
+ const cfg = model !== "auto" ? { ...this.config, models: { ...this.config.models, t1: model } } : this.config;
10639
+ const cascade = new Cascade(cfg, this.workspacePath, this.store);
10640
+ this.activeSessions.set(sessionId, cascade);
10641
+ cascade.on("stream:token", (e) => {
10642
+ this.socket.emitToSocket(socketId, "stream:token", { sessionId, tierId: e.tierId, text: e.text });
10643
+ this.socket.broadcast("stream:token", { sessionId, tierId: e.tierId, text: e.text });
10644
+ });
10645
+ cascade.on("tier:status", (e) => {
10646
+ this.socket.emitToSocket(socketId, "tier:status", { sessionId, ...e });
10647
+ this.socket.broadcast("tier:status", { sessionId, ...e });
10648
+ });
10649
+ cascade.on("permission:user-required", (e) => {
10650
+ this.socket.emitToSocket(socketId, "permission:user-required", { sessionId, ...e });
10651
+ });
10652
+ cascade.on("peer:message", (e) => {
10653
+ this.socket.emitPeerMessage(e);
10654
+ });
10655
+ try {
10656
+ const result = await cascade.run({ prompt });
10657
+ this.socket.emitToSocket(socketId, "session:complete", { sessionId, result });
10658
+ this.socket.broadcast("cost:update", {
10659
+ sessionId,
10660
+ totalTokens: result.usage.totalTokens,
10661
+ totalCostUsd: result.usage.estimatedCostUsd
10662
+ });
10663
+ this.throttledBroadcast("workspace");
10664
+ } catch (err) {
10665
+ this.socket.emitToSocket(socketId, "session:error", {
10666
+ sessionId,
10667
+ error: err instanceof Error ? err.message : String(err)
10668
+ });
10669
+ } finally {
10670
+ this.activeSessions.delete(sessionId);
10671
+ }
10672
+ });
10624
10673
  }
10625
10674
  async start() {
10626
10675
  const isLoopback = this.host === "127.0.0.1" || this.host === "::1" || this.host === "localhost";