diff --git a/google-calendar/package.json b/google-calendar/package.json index b8448e0d..92817c02 100644 --- a/google-calendar/package.json +++ b/google-calendar/package.json @@ -12,8 +12,8 @@ "check": "tsc --noEmit" }, "dependencies": { - "@decocms/runtime": "^1.0.3", - "zod": "^3.24.3" + "@decocms/runtime": "^1.1.0", + "zod": "^4.0.0" }, "devDependencies": { "@decocms/mcps-shared": "workspace:*", diff --git a/google-calendar/server/tools/events.ts b/google-calendar/server/tools/events.ts index 460148b2..da147326 100644 --- a/google-calendar/server/tools/events.ts +++ b/google-calendar/server/tools/events.ts @@ -32,7 +32,7 @@ const EventDateTimeSchema = z.object({ }); const AttendeeSchema = z.object({ - email: z.string().email().describe("Attendee email address"), + email: z.email().describe("Attendee email address"), displayName: z.string().optional().describe("Attendee display name"), optional: z.boolean().optional().describe("Whether attendance is optional"), responseStatus: z @@ -261,7 +261,7 @@ export const createCreateEventTool = (env: Env) => attendees: z .array( z.object({ - email: z.string().email().describe("Attendee email"), + email: z.email().describe("Attendee email"), displayName: z.string().optional().describe("Display name"), optional: z.boolean().optional().describe("Is attendance optional"), }), @@ -356,7 +356,7 @@ export const createUpdateEventTool = (env: Env) => attendees: z .array( z.object({ - email: z.string().email(), + email: z.email(), displayName: z.string().optional(), optional: z.boolean().optional(), }), diff --git a/meta-ads/package.json b/meta-ads/package.json index afe59847..b70dcdb5 100644 --- a/meta-ads/package.json +++ b/meta-ads/package.json @@ -13,8 +13,8 @@ "dev:tunnel": "deco link -p 3003 -- PORT=3003 bun run dev" }, "dependencies": { - "@decocms/runtime": "^1.0.3", - "zod": "^3.24.3" + "@decocms/runtime": "^1.1.0", + "zod": "^4.0.0" }, "devDependencies": { "@decocms/mcps-shared": "workspace:*", diff --git a/meta-ads/server/tools/accounts.ts b/meta-ads/server/tools/accounts.ts index 35985c90..2ff55374 100644 --- a/meta-ads/server/tools/accounts.ts +++ b/meta-ads/server/tools/accounts.ts @@ -26,12 +26,12 @@ export const createGetUserAdAccountsTool = (env: Env) => user_id: z .string() .optional() - .default("me") + .prefault("me") .describe("Meta user ID or 'me' for the current user"), limit: z.coerce .number() .optional() - .default(50) + .prefault(50) .describe("Maximum number of accounts to return (default: 50)"), }), outputSchema: z.object({ @@ -89,7 +89,7 @@ export const createGetPageAdAccountsTool = (env: Env) => limit: z.coerce .number() .optional() - .default(50) + .prefault(50) .describe("Maximum number of accounts to return (default: 50)"), }), outputSchema: z.object({ @@ -225,7 +225,7 @@ export const createGetUserAccountPagesTool = (env: Env) => limit: z.coerce .number() .optional() - .default(50) + .prefault(50) .describe("Maximum number of pages to return (default: 50)"), }), outputSchema: z.object({ diff --git a/meta-ads/server/tools/ads.ts b/meta-ads/server/tools/ads.ts index e7e2dfd4..db38c02b 100644 --- a/meta-ads/server/tools/ads.ts +++ b/meta-ads/server/tools/ads.ts @@ -28,7 +28,7 @@ export const createGetAdsTool = (env: Env) => limit: z.coerce .number() .optional() - .default(50) + .prefault(50) .describe("Maximum number of ads to return (default: 50)"), campaign_id: z.string().optional().describe("Filter ads by campaign ID"), adset_id: z.string().optional().describe("Filter ads by ad set ID"), @@ -97,8 +97,8 @@ export const createGetAdDetailsTool = (env: Env) => created_time: z.string(), updated_time: z.string(), creative_id: z.string().optional(), - tracking_specs: z.array(z.record(z.unknown())).optional(), - conversion_specs: z.array(z.record(z.unknown())).optional(), + tracking_specs: z.array(z.record(z.string(), z.unknown())).optional(), + conversion_specs: z.array(z.record(z.string(), z.unknown())).optional(), }), execute: async ({ context }) => { const accessToken = await getMetaAccessToken(env); diff --git a/meta-ads/server/tools/adsets.ts b/meta-ads/server/tools/adsets.ts index a11d0c01..1749a59b 100644 --- a/meta-ads/server/tools/adsets.ts +++ b/meta-ads/server/tools/adsets.ts @@ -38,7 +38,7 @@ export const createGetAdSetsTool = (env: Env) => limit: z.coerce .number() .optional() - .default(50) + .prefault(50) .describe("Maximum number of ad sets to return (default: 50)"), campaign_id: z .string() @@ -165,7 +165,7 @@ export const createGetAdSetDetailsTool = (env: Env) => device_platforms: z.array(z.string()).optional(), }) .optional(), - promoted_object: z.record(z.unknown()).optional(), + promoted_object: z.record(z.string(), z.unknown()).optional(), }), execute: async ({ context }) => { const accessToken = await getMetaAccessToken(env); diff --git a/meta-ads/server/tools/campaigns.ts b/meta-ads/server/tools/campaigns.ts index 039f6bbe..5c1975c0 100644 --- a/meta-ads/server/tools/campaigns.ts +++ b/meta-ads/server/tools/campaigns.ts @@ -27,7 +27,7 @@ export const createGetCampaignsTool = (env: Env) => limit: z.coerce .number() .optional() - .default(50) + .prefault(50) .describe("Maximum number of campaigns to return (default: 50)"), status_filter: z .enum(["ACTIVE", "PAUSED", "DELETED", "ARCHIVED"]) diff --git a/meta-ads/server/tools/insights.ts b/meta-ads/server/tools/insights.ts index 1b266793..cf459c8a 100644 --- a/meta-ads/server/tools/insights.ts +++ b/meta-ads/server/tools/insights.ts @@ -69,7 +69,7 @@ Use date_preset for common time ranges (last_7d, last_30d, etc) or time_range fo limit: z.coerce .number() .optional() - .default(100) + .prefault(100) .describe( "Maximum number of insight rows to return (default: 100, useful when using breakdowns)", ), diff --git a/openrouter/package.json b/openrouter/package.json index 1a891844..86da1f45 100644 --- a/openrouter/package.json +++ b/openrouter/package.json @@ -14,12 +14,12 @@ "dependencies": { "@ai-sdk/provider": "^3.0.0", "@ai-sdk/provider-utils": "^4.0.1", - "@decocms/bindings": "^1.0.3", - "@decocms/runtime": "^1.0.3", + "@decocms/bindings": "^1.0.4", + "@decocms/runtime": "^1.1.0", "@openrouter/ai-sdk-provider": "^1.2.0", "@openrouter/sdk": "^0.1.11", "ai": "^6.0.3", - "zod": "^3.24.3" + "zod": "^4.0.0" }, "devDependencies": { "@cloudflare/vite-plugin": "^1.13.4", diff --git a/openrouter/server/tools/models/compare.ts b/openrouter/server/tools/models/compare.ts index 943d5490..1ac810f8 100644 --- a/openrouter/server/tools/models/compare.ts +++ b/openrouter/server/tools/models/compare.ts @@ -39,7 +39,7 @@ export const createCompareModelsTool = (env: Env) => modelId: z.string(), name: z.string(), metrics: z - .record(z.any()) + .record(z.string(), z.any()) .describe("Model metrics based on selected criteria"), }), ), diff --git a/openrouter/server/tools/models/recommend.ts b/openrouter/server/tools/models/recommend.ts index 20f608e6..62862308 100644 --- a/openrouter/server/tools/models/recommend.ts +++ b/openrouter/server/tools/models/recommend.ts @@ -49,7 +49,7 @@ export const createRecommendModelTool = (env: Env) => ), prioritize: z .enum(["cost", "quality", "speed"]) - .default("quality") + .prefault("quality") .optional() .describe( "What to prioritize: 'cost' for cheapest models, 'quality' for best performance, 'speed' for fastest models", diff --git a/registry/package.json b/registry/package.json index cf59e119..d77cbba9 100644 --- a/registry/package.json +++ b/registry/package.json @@ -22,10 +22,10 @@ "enrich:ai:retry": "bun run scripts/enrich-with-ai.ts --limit=400" }, "dependencies": { - "@decocms/bindings": "^1.0.3", - "@decocms/runtime": "^1.0.3", + "@decocms/bindings": "^1.0.4", + "@decocms/runtime": "^1.1.0", "@supabase/supabase-js": "^2.89.0", - "zod": "^3.24.3" + "zod": "^4.0.0" }, "devDependencies": { "@decocms/mcps-shared": "workspace:*",