diff --git a/blog-post-generator/package.json b/blog-post-generator/package.json index 0f316dfc..2cd45ecb 100644 --- a/blog-post-generator/package.json +++ b/blog-post-generator/package.json @@ -14,7 +14,7 @@ "build": "bun run build:server" }, "dependencies": { - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "zod": "^4.0.0" }, "devDependencies": { diff --git a/bun.lock b/bun.lock index c00f5ff1..cf5d5592 100644 --- a/bun.lock +++ b/bun.lock @@ -196,7 +196,7 @@ "version": "1.0.0", "dependencies": { "@decocms/bindings": "1.0.7", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.6", "@octokit/rest": "^21.0.0", "hono": "^4.7.4", "zod": "^4.0.0", @@ -3186,6 +3186,8 @@ "gemini-pro-vision/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "github/@decocms/runtime": ["@decocms/runtime@1.2.6", "", { "dependencies": { "@ai-sdk/provider": "^3.0.0", "@cloudflare/workers-types": "^4.20250617.0", "@decocms/bindings": "^1.0.7", "@modelcontextprotocol/sdk": "1.25.3", "hono": "^4.10.7", "jose": "^6.0.11", "zod": "^4.0.0" } }, "sha512-Eyp9pWkhlFLU3iQl/dQEULcUnirwcggKo3TEH0l5fLpkYoIDY48lW360T9iNm2Cd2ic1jRO13+rpo5eUTYU39w=="], + "github/@types/node": ["@types/node@22.19.7", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw=="], "google-apps-script/@decocms/runtime": ["@decocms/runtime@1.2.5", "", { "dependencies": { "@ai-sdk/provider": "^3.0.0", "@cloudflare/workers-types": "^4.20250617.0", "@decocms/bindings": "^1.1.1", "@modelcontextprotocol/sdk": "1.25.2", "hono": "^4.10.7", "jose": "^6.0.11", "zod": "^4.0.0" } }, "sha512-0s02lfj/O7nTAc7FTmFsA+lZpUDnapjQHnRYrQXItLKrbJvjSnfoq5V8HA1Npv5HelBvsVk7QQHaW8pSN/l37w=="], @@ -3560,6 +3562,10 @@ "gemini-pro-vision/@modelcontextprotocol/sdk/ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + "github/@decocms/runtime/@decocms/bindings": ["@decocms/bindings@1.2.0", "", { "dependencies": { "@modelcontextprotocol/sdk": "1.25.3", "@tanstack/react-router": "1.139.7", "react": "^19.2.0", "zod": "^4.0.0", "zod-from-json-schema": "^0.5.2" } }, "sha512-+4/VOOVERB8UixGKmN0VkLazxeMAahbG0A9xOYTPL+MJIAM30htrLG2aHI2Dm5ASgccAD4bW5RuLqv2PDFZZPA=="], + + "github/@decocms/runtime/@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.25.3", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.0.1", "express-rate-limit": "^7.5.0", "jose": "^6.1.1", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.0" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-vsAMBMERybvYgKbg/l4L1rhS7VXV1c0CtyJg72vwxONVX0l4ZfKVAnZEWTQixJGTzKnELjQ59e4NbdFDALRiAQ=="], + "github/@types/node/undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], "google-apps-script/@decocms/runtime/@decocms/bindings": ["@decocms/bindings@1.2.0", "", { "dependencies": { "@modelcontextprotocol/sdk": "1.25.3", "@tanstack/react-router": "1.139.7", "react": "^19.2.0", "zod": "^4.0.0", "zod-from-json-schema": "^0.5.2" } }, "sha512-+4/VOOVERB8UixGKmN0VkLazxeMAahbG0A9xOYTPL+MJIAM30htrLG2aHI2Dm5ASgccAD4bW5RuLqv2PDFZZPA=="], diff --git a/deco-llm/package.json b/deco-llm/package.json index 82ddfe0b..a3471a84 100644 --- a/deco-llm/package.json +++ b/deco-llm/package.json @@ -15,7 +15,7 @@ "@ai-sdk/provider": "^3.0.2", "@ai-sdk/provider-utils": "^4.0.4", "@decocms/bindings": "^1.1.1", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@openrouter/ai-sdk-provider": "^1.5.4", "@openrouter/sdk": "^0.3.11", "ai": "^6.0.3", diff --git a/deco-llm/server/main.ts b/deco-llm/server/main.ts index 180e5fb5..1d6abd46 100644 --- a/deco-llm/server/main.ts +++ b/deco-llm/server/main.ts @@ -57,7 +57,6 @@ const runtime = withRuntime< Registry >({ tools: (env) => { - // @ts-expect-error: TODO: fix this later return tools(env, { start: async (modelInfo, params) => { const amount = calculatePreAuthAmount(modelInfo, params); diff --git a/deco-news-weekly-digest/package.json b/deco-news-weekly-digest/package.json index d4aa1c4d..66cb87fe 100644 --- a/deco-news-weekly-digest/package.json +++ b/deco-news-weekly-digest/package.json @@ -14,7 +14,7 @@ "build": "bun run build:server" }, "dependencies": { - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@supabase/supabase-js": "^2.49.0", "zod": "^4.0.0" }, diff --git a/github/package.json b/github/package.json index 50cb7e85..f00f6510 100644 --- a/github/package.json +++ b/github/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@decocms/bindings": "1.0.7", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.6", "@octokit/rest": "^21.0.0", "hono": "^4.7.4", "zod": "^4.0.0" diff --git a/hyperdx/package.json b/hyperdx/package.json index ccb445f3..ae4af013 100644 --- a/hyperdx/package.json +++ b/hyperdx/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@decocms/bindings": "^1.0.8", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@modelcontextprotocol/sdk": "^1.20.0", "zod": "^3.24.3" }, diff --git a/mcp-studio/package.json b/mcp-studio/package.json index b1cea83b..d2141205 100644 --- a/mcp-studio/package.json +++ b/mcp-studio/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@decocms/bindings": "^1.1.3", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@jitl/quickjs-singlefile-cjs-release-sync": "^0.31.0", "@modelcontextprotocol/sdk": "^1.25.1", "@types/prettier": "^3.0.0", diff --git a/meta-ads/package.json b/meta-ads/package.json index c993d984..94564436 100644 --- a/meta-ads/package.json +++ b/meta-ads/package.json @@ -13,7 +13,7 @@ "dev:tunnel": "deco link -p 3003 -- PORT=3003 bun run dev" }, "dependencies": { - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "zod": "^4.0.0" }, "devDependencies": { diff --git a/meta-ads/server/lib/types.ts b/meta-ads/server/lib/types.ts index 3b83c494..c4c4ff17 100644 --- a/meta-ads/server/lib/types.ts +++ b/meta-ads/server/lib/types.ts @@ -73,13 +73,15 @@ export interface AdSet { } export interface Targeting { + [x: string]: unknown; age_min?: number; age_max?: number; genders?: number[]; geo_locations?: { + [x: string]: unknown; countries?: string[]; - regions?: Array<{ key: string; name: string }>; - cities?: Array<{ key: string; name: string }>; + regions?: Array<{ [x: string]: unknown; key: string; name: string }>; + cities?: Array<{ [x: string]: unknown; key: string; name: string }>; }; interests?: Array<{ id: string; name: string }>; behaviors?: Array<{ id: string; name: string }>; diff --git a/object-storage/package.json b/object-storage/package.json index e7d9c162..a60785fc 100644 --- a/object-storage/package.json +++ b/object-storage/package.json @@ -13,7 +13,7 @@ "dependencies": { "@aws-sdk/client-s3": "^3.716.0", "@aws-sdk/s3-request-presigner": "^3.716.0", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "zod": "^4.0.0" }, "devDependencies": { diff --git a/openrouter/package.json b/openrouter/package.json index 75270f2e..90cc1cc9 100644 --- a/openrouter/package.json +++ b/openrouter/package.json @@ -20,7 +20,7 @@ "@ai-sdk/provider": "^3.0.2", "@ai-sdk/provider-utils": "^4.0.4", "@decocms/bindings": "^1.1.1", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@openrouter/ai-sdk-provider": "^1.5.4", "@openrouter/sdk": "^0.3.11", "ai": "^6.0.3", diff --git a/openrouter/server/tools/hooks.ts b/openrouter/server/tools/hooks.ts index d2bacd69..5822c075 100644 --- a/openrouter/server/tools/hooks.ts +++ b/openrouter/server/tools/hooks.ts @@ -1,6 +1,6 @@ import type { LanguageModelV2Usage } from "@ai-sdk/provider"; import type { LanguageModelInputSchema } from "@decocms/bindings/llm"; -import type { ModelInfo } from "server/lib/types"; +import type { ModelInfo } from "../lib/types.ts"; import type { z } from "zod"; export interface UsageHooks { diff --git a/openrouter/server/tools/llm-binding.ts b/openrouter/server/tools/llm-binding.ts index 5f4cadf2..ccb110fe 100644 --- a/openrouter/server/tools/llm-binding.ts +++ b/openrouter/server/tools/llm-binding.ts @@ -20,7 +20,7 @@ import { createStreamableTool, } from "@decocms/runtime/tools"; import { createOpenRouter } from "@openrouter/ai-sdk-provider"; -import { getOpenRouterApiKey } from "server/lib/env.ts"; +import { getOpenRouterApiKey } from "../lib/env.ts"; import type { z } from "zod"; import { OpenRouterClient } from "../lib/openrouter-client.ts"; import type { Env } from "../main.ts"; diff --git a/openrouter/server/tools/models/compare.ts b/openrouter/server/tools/models/compare.ts index 1ac810f8..00d2aa9f 100644 --- a/openrouter/server/tools/models/compare.ts +++ b/openrouter/server/tools/models/compare.ts @@ -4,7 +4,7 @@ */ import { createPrivateTool } from "@decocms/runtime/tools"; -import { getOpenRouterApiKey } from "server/lib/env.ts"; +import { getOpenRouterApiKey } from "../../lib/env.ts"; import { z } from "zod"; import { OpenRouterClient } from "../../lib/openrouter-client.ts"; import type { Env } from "../../main.ts"; diff --git a/openrouter/server/tools/models/recommend.ts b/openrouter/server/tools/models/recommend.ts index 62862308..cb997053 100644 --- a/openrouter/server/tools/models/recommend.ts +++ b/openrouter/server/tools/models/recommend.ts @@ -4,7 +4,7 @@ */ import { createPrivateTool } from "@decocms/runtime/tools"; -import { getOpenRouterApiKey } from "server/lib/env.ts"; +import { getOpenRouterApiKey } from "../../lib/env.ts"; import { z } from "zod"; import { OpenRouterClient } from "../../lib/openrouter-client.ts"; import type { Env } from "../../main.ts"; diff --git a/package.json b/package.json index 2a8acfb0..c3795ae5 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ "new": "bun scripts/new.ts", "fmt": "oxfmt", "lint": "oxlint", - "check": "bun run --filter=* check", + "check": "bun scripts/check-parallel.ts", + "check:changed": "bun scripts/check-parallel.ts --changed", + "check:all": "bun run --filter=* check", "clean": "rm -rf node_modules */node_modules */dist */.vite */.wrangler */.deco", "prepare": "sh scripts/setup-hooks.sh", "build": "bun run ./scripts/build-mcp.ts" diff --git a/registry/package.json b/registry/package.json index 5525c08f..9bf622fd 100644 --- a/registry/package.json +++ b/registry/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@decocms/bindings": "^1.0.4", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@supabase/supabase-js": "^2.89.0", "zod": "^4.0.0" }, diff --git a/registry/server/main.ts b/registry/server/main.ts index ce46edf5..0521c60b 100644 --- a/registry/server/main.ts +++ b/registry/server/main.ts @@ -59,7 +59,6 @@ const runtime = withRuntime({ state: StateSchema, }, tools: (env: Env) => tools.map((createTool) => createTool(env)), - bindings: [], cors: { origin: (origin) => { // Allow localhost and configured origins diff --git a/scripts/check-parallel.ts b/scripts/check-parallel.ts new file mode 100755 index 00000000..3496a64d --- /dev/null +++ b/scripts/check-parallel.ts @@ -0,0 +1,137 @@ +#!/usr/bin/env bun +/** + * Optimized TypeScript check script + * Runs checks in parallel with concurrency limit to avoid overwhelming the system + */ + +import { $ } from "bun"; +import { join } from "node:path"; + +const MAX_CONCURRENT = 8; // Run 4 checks at a time +const ROOT_DIR = import.meta.dir.replace("/scripts", ""); + +async function getWorkspaces(): Promise { + const pkg = await Bun.file(join(ROOT_DIR, "package.json")).json(); + return pkg.workspaces || []; +} + +async function hasTypeScriptConfig(dir: string): Promise { + const tsConfigPath = join(ROOT_DIR, dir, "tsconfig.json"); + const file = Bun.file(tsConfigPath); + return await file.exists(); +} + +async function runCheck(workspace: string): Promise<{ + workspace: string; + success: boolean; + error?: string; +}> { + try { + const cwd = join(ROOT_DIR, workspace); + await $`cd ${cwd} && bun run check`.quiet(); + return { workspace, success: true }; + } catch (error) { + return { + workspace, + success: false, + error: error instanceof Error ? error.message : String(error), + }; + } +} + +async function runChecksInBatches( + workspaces: string[], + concurrency: number, +): Promise { + const results: Array<{ + workspace: string; + success: boolean; + error?: string; + }> = []; + let completed = 0; + + console.log( + `šŸ” Running TypeScript checks on ${workspaces.length} workspaces (${concurrency} concurrent)...\n`, + ); + + // Process workspaces in batches + for (let i = 0; i < workspaces.length; i += concurrency) { + const batch = workspaces.slice(i, i + concurrency); + const batchPromises = batch.map((ws) => runCheck(ws)); + + const batchResults = await Promise.all(batchPromises); + results.push(...batchResults); + + completed += batch.length; + const progress = Math.round((completed / workspaces.length) * 100); + console.log(`Progress: ${completed}/${workspaces.length} (${progress}%)`); + } + + // Print results + console.log("\n" + "=".repeat(60)); + const failed = results.filter((r) => !r.success); + const passed = results.filter((r) => r.success); + + console.log(`āœ… Passed: ${passed.length}`); + console.log(`āŒ Failed: ${failed.length}`); + + if (failed.length > 0) { + console.log("\nFailed workspaces:"); + for (const result of failed) { + console.log(` - ${result.workspace}`); + } + process.exit(1); + } else { + console.log("\nšŸŽ‰ All checks passed!"); + } +} + +// Main +async function main() { + const args = process.argv.slice(2); + const changedOnly = args.includes("--changed"); + + let workspaces = await getWorkspaces(); + + // Filter to only workspaces with tsconfig.json + const workspacesWithTS = []; + for (const ws of workspaces) { + if (await hasTypeScriptConfig(ws)) { + workspacesWithTS.push(ws); + } + } + + if (changedOnly) { + // Get changed files + try { + const output = await $`git diff --name-only origin/main...HEAD`.text(); + const changedFiles = output.trim().split("\n"); + const changedWorkspaces = new Set(); + + for (const file of changedFiles) { + const ws = workspacesWithTS.find((w) => file.startsWith(`${w}/`)); + if (ws) { + changedWorkspaces.add(ws); + } + } + + if (changedWorkspaces.size === 0) { + console.log("No changed workspaces found. Checking all..."); + } else { + workspacesWithTS.length = 0; + workspacesWithTS.push(...changedWorkspaces); + console.log( + `Checking ${changedWorkspaces.size} changed workspaces only\n`, + ); + } + } catch (error) { + console.log( + "Could not detect changed files. Checking all workspaces...\n", + ); + } + } + + await runChecksInBatches(workspacesWithTS, MAX_CONCURRENT); +} + +main(); diff --git a/shared/audio-transcribers/base.ts b/shared/audio-transcribers/base.ts index e278c98c..36fdc777 100644 --- a/shared/audio-transcribers/base.ts +++ b/shared/audio-transcribers/base.ts @@ -1,4 +1,4 @@ -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { applyMiddlewares, Contract, diff --git a/shared/image-analyzers/base.ts b/shared/image-analyzers/base.ts index eda34833..08555969 100644 --- a/shared/image-analyzers/base.ts +++ b/shared/image-analyzers/base.ts @@ -1,4 +1,4 @@ -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { applyMiddlewares, withLogging, diff --git a/shared/image-generators/README.md b/shared/image-generators/README.md index b2b2e839..cc70c2ae 100644 --- a/shared/image-generators/README.md +++ b/shared/image-generators/README.md @@ -96,7 +96,7 @@ const { mimeType, imageData } = extractImageData(inlineData); ```typescript import { S3Client } from "@aws-sdk/client-s3"; -import { createTool } from "@decocms/runtime/mastra"; +import { createTool } from "@decocms/runtime/tools"; import { S3StorageAdapter, saveImage, diff --git a/shared/image-generators/base.ts b/shared/image-generators/base.ts index 99b6d6c1..c634b97b 100644 --- a/shared/image-generators/base.ts +++ b/shared/image-generators/base.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { saveImage } from "./storage"; import { ObjectStorage } from "../storage"; import { diff --git a/shared/package.json b/shared/package.json index 93738f16..6613d837 100644 --- a/shared/package.json +++ b/shared/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@decocms/bindings": "1.0.7", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@types/bun": "^1.2.14", "vite": "7.2.0", "zod": "^4.0.0" diff --git a/shared/search-ai/base.ts b/shared/search-ai/base.ts index 643fad58..9eb0f829 100644 --- a/shared/search-ai/base.ts +++ b/shared/search-ai/base.ts @@ -5,7 +5,7 @@ * search AI providers like Perplexity, ChatGPT Search, Google Gemini, etc. */ -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { AskInputSchema, ChatInputSchema, diff --git a/shared/storage/README.md b/shared/storage/README.md index 1285adbb..57ba27f1 100644 --- a/shared/storage/README.md +++ b/shared/storage/README.md @@ -1,6 +1,6 @@ # Storage - Shared Module -Unified storage module for all MCPs. Provides a consistent interface for working with different object storage providers. +Unified storage module for all MCPs. Provides a consistent interface for working with different object storage providers. ## šŸš€ Quick Start @@ -177,7 +177,7 @@ const { url } = await saveImage(storage, { ### Example 3: New MCP with Storage ```typescript -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { createStorageFromEnv } from "@decocms/mcps-shared/storage"; import { z } from "zod"; diff --git a/shared/tools/file-management/base.ts b/shared/tools/file-management/base.ts index a04d0e45..ba1025f2 100644 --- a/shared/tools/file-management/base.ts +++ b/shared/tools/file-management/base.ts @@ -6,7 +6,7 @@ * It standardizes the creation of file upload, list, get, delete, and search tools. */ -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { fileUploadInputSchema, fileUploadOutputSchema, diff --git a/shared/tools/user.ts b/shared/tools/user.ts index b4cef258..2ab34150 100644 --- a/shared/tools/user.ts +++ b/shared/tools/user.ts @@ -5,7 +5,7 @@ * - Getting current user information * - User authentication checks */ -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { z } from "zod"; /** diff --git a/shared/video-generators/base.ts b/shared/video-generators/base.ts index 1075a5c8..cc149e84 100644 --- a/shared/video-generators/base.ts +++ b/shared/video-generators/base.ts @@ -1,4 +1,4 @@ -import { createPrivateTool } from "@decocms/runtime/mastra"; +import { createPrivateTool } from "@decocms/runtime/tools"; import { saveVideo } from "./storage"; import { ObjectStorage } from "../storage"; import { diff --git a/tiktok-ads/package.json b/tiktok-ads/package.json index f62463da..d9d025de 100644 --- a/tiktok-ads/package.json +++ b/tiktok-ads/package.json @@ -12,7 +12,7 @@ "check": "tsc --noEmit" }, "dependencies": { - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "zod": "^4.0.0" }, "devDependencies": { diff --git a/vtex-docs/package.json b/vtex-docs/package.json index 10b61eab..dd028d31 100644 --- a/vtex-docs/package.json +++ b/vtex-docs/package.json @@ -17,7 +17,7 @@ "dependencies": { "@ai-sdk/openai": "^1.3.22", "@ai-sdk/openai-compatible": "^0.2.14", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@supabase/supabase-js": "^2.49.1", "ai": "^4.3.16", "zod": "^4.0.0" diff --git a/whatsapp-management/package.json b/whatsapp-management/package.json index 9a08146b..1008a152 100644 --- a/whatsapp-management/package.json +++ b/whatsapp-management/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@decocms/bindings": "^1.1.3", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "hono": "^4.11.3", "zod": "^4.0.0" }, diff --git a/whatsapp/package.json b/whatsapp/package.json index 2167a26d..a4d43401 100644 --- a/whatsapp/package.json +++ b/whatsapp/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@decocms/bindings": "^1.1.3", - "@decocms/runtime": "1.1.3", + "@decocms/runtime": "1.2.7", "@upstash/redis": "^1.36.1", "ai": "^6.0.50", "hono": "^4.11.3",