@credal/actions 0.2.215 → 0.2.217

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.
Files changed (31) hide show
  1. package/dist/actions/autogen/templates.js +39 -23
  2. package/dist/actions/autogen/types.d.ts +27 -26
  3. package/dist/actions/autogen/types.js +299 -242
  4. package/dist/actions/parse.js +10 -2
  5. package/dist/actions/providers/github/searchRepository.js +7 -7
  6. package/dist/actions/providers/google-oauth/appendRowsToSpreadsheet.js +8 -7
  7. package/dist/actions/providers/google-oauth/listFilesWithAssignedComments.d.ts +3 -0
  8. package/dist/actions/providers/google-oauth/listFilesWithAssignedComments.js +41 -0
  9. package/dist/actions/providers/google-oauth/updateRowsInSpreadsheet.js +18 -12
  10. package/dist/actions/providers/jira/getJiraDCIssuesByQuery.d.ts +4 -3
  11. package/dist/actions/providers/jira/getJiraDCIssuesByQuery.js +7 -3
  12. package/dist/actions/providers/jira/getJiraIssuesByQuery.js +8 -1
  13. package/dist/actions/providers/jira/updateServiceDeskRequest.d.ts +3 -0
  14. package/dist/actions/providers/jira/updateServiceDeskRequest.js +72 -0
  15. package/dist/actions/providers/microsoft/sendOutlookEmail.d.ts +3 -0
  16. package/dist/actions/providers/microsoft/sendOutlookEmail.js +48 -0
  17. package/package.json +1 -1
  18. package/dist/actions/groups.d.ts +0 -6
  19. package/dist/actions/groups.js +0 -248
  20. package/dist/actions/providers/credal/callCopilot.d.ts +0 -3
  21. package/dist/actions/providers/credal/callCopilot.js +0 -36
  22. package/dist/actions/providers/math/index.d.ts +0 -1
  23. package/dist/actions/providers/math/index.js +0 -37
  24. package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.d.ts +0 -3
  25. package/dist/actions/providers/salesforce/getSalesforceRecordByQuery.js +0 -43
  26. package/dist/actions/providers/slack/archiveChannel.d.ts +0 -3
  27. package/dist/actions/providers/slack/archiveChannel.js +0 -35
  28. package/dist/actions/providers/slack/index.d.ts +0 -1
  29. package/dist/actions/providers/slack/index.js +0 -37
  30. package/dist/actions/providers/slack/listConversations.d.ts +0 -3
  31. package/dist/actions/providers/slack/listConversations.js +0 -41
@@ -263,7 +263,7 @@ export const asanaListAsanaTasksByProjectOutputSchema = z.object({
263
263
  }))
264
264
  .nullable()
265
265
  .optional(),
266
- num_subtasks: z.number().optional(),
266
+ num_subtasks: z.coerce.number().optional(),
267
267
  }),
268
268
  subtasks: z
269
269
  .array(z.object({
@@ -281,7 +281,7 @@ export const asanaListAsanaTasksByProjectOutputSchema = z.object({
281
281
  }))
282
282
  .nullable()
283
283
  .optional(),
284
- num_subtasks: z.number().optional(),
284
+ num_subtasks: z.coerce.number().optional(),
285
285
  }))
286
286
  .nullable()
287
287
  .optional(),
@@ -443,7 +443,7 @@ export const slackGetChannelMessagesParamsSchema = z.object({
443
443
  .string()
444
444
  .describe("Only messages before this Unix timestamp will be included. Default is the current time. Use with oldest to create a time range.")
445
445
  .optional(),
446
- limit: z
446
+ limit: z.coerce
447
447
  .number()
448
448
  .describe("Maximum number of messages to return (1-999). Default is 100. Slack recommends no more than 200 results at a time for performance.")
449
449
  .optional(),
@@ -500,7 +500,7 @@ export const slackUserSearchSlackParamsSchema = z.object({
500
500
  .enum(["im", "group", "channel"])
501
501
  .describe("Optional filter for the type of messages to search for. If not specified, all message types will be searched.")
502
502
  .optional(),
503
- limit: z
503
+ limit: z.coerce
504
504
  .number()
505
505
  .gte(1)
506
506
  .lte(100)
@@ -581,7 +581,7 @@ export const slackUserSearchSlackRTSParamsSchema = z.object({
581
581
  .boolean()
582
582
  .describe("Whether to include contextual messages in search results.")
583
583
  .default(false),
584
- limit: z.number().gte(1).lte(20).describe("Maximum number of results per page (max 20).").default(20),
584
+ limit: z.coerce.number().gte(1).lte(20).describe("Maximum number of results per page (max 20).").default(20),
585
585
  before: z
586
586
  .string()
587
587
  .describe("Optional UNIX timestamp filter. If present, filters for results before this date. Use this field when you want to find messages in a specific date/time range.")
@@ -619,10 +619,10 @@ export const slackUserSearchSlackRTSOutputSchema = z.object({
619
619
  .describe("Search results containing messages and/or files."),
620
620
  });
621
621
  export const mathAddParamsSchema = z.object({
622
- a: z.number().describe("The first number to add"),
623
- b: z.number().describe("The second number to add"),
622
+ a: z.coerce.number().describe("The first number to add"),
623
+ b: z.coerce.number().describe("The second number to add"),
624
624
  });
625
- export const mathAddOutputSchema = z.object({ result: z.number().describe("The sum of the two numbers") });
625
+ export const mathAddOutputSchema = z.object({ result: z.coerce.number().describe("The sum of the two numbers") });
626
626
  export const confluenceOverwritePageParamsSchema = z.object({
627
627
  pageId: z.string().describe("The page id for the page to add content to"),
628
628
  title: z.string().describe("The title of the page that should be updated"),
@@ -821,7 +821,10 @@ export const jiraUpdateJiraTicketStatusOutputSchema = z.object({
821
821
  });
822
822
  export const jiraGetJiraIssuesByQueryParamsSchema = z.object({
823
823
  query: z.string().describe("The JQL query to execute"),
824
- limit: z.number().describe("The maximum number of records to retrieve").optional(),
824
+ limit: z.coerce
825
+ .number()
826
+ .describe("The maximum number of records to retrieve. Defaults to 100. For exhaustive queries where all matching issues are needed, set this to a value larger than the expected result count (e.g. 500 or 1000).")
827
+ .optional(),
825
828
  });
826
829
  export const jiraGetJiraIssuesByQueryOutputSchema = z.object({
827
830
  results: z
@@ -878,6 +881,14 @@ export const jiraGetJiraIssuesByQueryOutputSchema = z.object({
878
881
  }))
879
882
  .describe("The results of the Jira issues")
880
883
  .optional(),
884
+ total: z.coerce
885
+ .number()
886
+ .describe("The total number of Jira issues matching the query. When present and greater than the number of results returned, re-run with a higher limit to retrieve all issues.")
887
+ .optional(),
888
+ truncated: z
889
+ .boolean()
890
+ .describe("True when the result set was cut off at the requested limit and more issues exist. Re-run with a higher limit to retrieve all issues.")
891
+ .optional(),
881
892
  error: z.string().describe("The error that occurred if the records were not successfully retrieved").optional(),
882
893
  });
883
894
  export const jiraLinkJiraIssuesParamsSchema = z.object({
@@ -1073,7 +1084,10 @@ export const jiraOrgUpdateJiraTicketStatusOutputSchema = z.object({
1073
1084
  });
1074
1085
  export const jiraOrgGetJiraIssuesByQueryParamsSchema = z.object({
1075
1086
  query: z.string().describe("The JQL query to execute"),
1076
- limit: z.number().describe("The maximum number of records to retrieve").optional(),
1087
+ limit: z.coerce
1088
+ .number()
1089
+ .describe("The maximum number of records to retrieve. Defaults to 100. For exhaustive queries where all matching issues are needed, set this to a value larger than the expected result count (e.g. 500 or 1000).")
1090
+ .optional(),
1077
1091
  });
1078
1092
  export const jiraOrgGetJiraIssuesByQueryOutputSchema = z.object({
1079
1093
  results: z
@@ -1130,6 +1144,14 @@ export const jiraOrgGetJiraIssuesByQueryOutputSchema = z.object({
1130
1144
  }))
1131
1145
  .describe("The results of the Jira issues")
1132
1146
  .optional(),
1147
+ total: z.coerce
1148
+ .number()
1149
+ .describe("The total number of Jira issues matching the query. When present and greater than the number of results returned, re-run with a higher limit to retrieve all issues.")
1150
+ .optional(),
1151
+ truncated: z
1152
+ .boolean()
1153
+ .describe("True when the result set was cut off at the requested limit and more issues exist. Re-run with a higher limit to retrieve all issues.")
1154
+ .optional(),
1133
1155
  error: z.string().describe("The error that occurred if the records were not successfully retrieved").optional(),
1134
1156
  });
1135
1157
  export const jiraOrgLinkJiraIssuesParamsSchema = z.object({
@@ -1325,7 +1347,10 @@ export const jiraDataCenterUpdateJiraTicketStatusOutputSchema = z.object({
1325
1347
  });
1326
1348
  export const jiraDataCenterGetJiraIssuesByQueryParamsSchema = z.object({
1327
1349
  query: z.string().describe("The JQL query to execute"),
1328
- limit: z.number().describe("The maximum number of records to retrieve").optional(),
1350
+ limit: z.coerce
1351
+ .number()
1352
+ .describe("The maximum number of records to retrieve. Defaults to 100. For exhaustive queries where all matching issues are needed, set this to a value larger than the expected result count (e.g. 500 or 1000).")
1353
+ .optional(),
1329
1354
  });
1330
1355
  export const jiraDataCenterGetJiraIssuesByQueryOutputSchema = z.object({
1331
1356
  results: z
@@ -1382,6 +1407,14 @@ export const jiraDataCenterGetJiraIssuesByQueryOutputSchema = z.object({
1382
1407
  }))
1383
1408
  .describe("The results of the Jira issues")
1384
1409
  .optional(),
1410
+ total: z.coerce
1411
+ .number()
1412
+ .describe("The total number of Jira issues matching the query. When present and greater than the number of results returned, re-run with a higher limit to retrieve all issues.")
1413
+ .optional(),
1414
+ truncated: z
1415
+ .boolean()
1416
+ .describe("True when the result set was cut off at the requested limit and more issues exist. Re-run with a higher limit to retrieve all issues.")
1417
+ .optional(),
1385
1418
  error: z.string().describe("The error that occurred if the records were not successfully retrieved").optional(),
1386
1419
  });
1387
1420
  export const jiraDataCenterLinkJiraIssuesParamsSchema = z.object({
@@ -1457,8 +1490,8 @@ export const googlemapsValidateAddressOutputSchema = z.object({
1457
1490
  .object({
1458
1491
  location: z
1459
1492
  .object({
1460
- latitude: z.number().describe("The latitude of the address.").optional(),
1461
- longitude: z.number().describe("The longitude of the address.").optional(),
1493
+ latitude: z.coerce.number().describe("The latitude of the address.").optional(),
1494
+ longitude: z.coerce.number().describe("The longitude of the address.").optional(),
1462
1495
  })
1463
1496
  .optional(),
1464
1497
  plusCode: z
@@ -1470,8 +1503,12 @@ export const googlemapsValidateAddressOutputSchema = z.object({
1470
1503
  .optional(),
1471
1504
  bounds: z
1472
1505
  .object({
1473
- northeast: z.object({ latitude: z.number().optional(), longitude: z.number().optional() }).optional(),
1474
- southwest: z.object({ latitude: z.number().optional(), longitude: z.number().optional() }).optional(),
1506
+ northeast: z
1507
+ .object({ latitude: z.coerce.number().optional(), longitude: z.coerce.number().optional() })
1508
+ .optional(),
1509
+ southwest: z
1510
+ .object({ latitude: z.coerce.number().optional(), longitude: z.coerce.number().optional() })
1511
+ .optional(),
1475
1512
  })
1476
1513
  .describe("The viewport bounds for the address.")
1477
1514
  .optional(),
@@ -1488,15 +1525,15 @@ export const googlemapsValidateAddressOutputSchema = z.object({
1488
1525
  .optional(),
1489
1526
  });
1490
1527
  export const googlemapsNearbysearchRestaurantsParamsSchema = z.object({
1491
- latitude: z.number().describe("The latitude of the location to search nearby"),
1492
- longitude: z.number().describe("The longitude of the location to search nearby"),
1528
+ latitude: z.coerce.number().describe("The latitude of the location to search nearby"),
1529
+ longitude: z.coerce.number().describe("The longitude of the location to search nearby"),
1493
1530
  });
1494
1531
  export const googlemapsNearbysearchRestaurantsOutputSchema = z.object({
1495
1532
  results: z
1496
1533
  .array(z.object({
1497
1534
  name: z.string().describe("The name of the place").optional(),
1498
1535
  address: z.string().describe("The address of the place").optional(),
1499
- rating: z.number().describe("The rating of the place").optional(),
1536
+ rating: z.coerce.number().describe("The rating of the place").optional(),
1500
1537
  priceLevel: z.string().describe("The price level of the place").optional(),
1501
1538
  openingHours: z.string().describe("The opening hours of the place").optional(),
1502
1539
  primaryType: z.string().describe("The primary type of the place").optional(),
@@ -1507,7 +1544,7 @@ export const googlemapsNearbysearchRestaurantsOutputSchema = z.object({
1507
1544
  });
1508
1545
  export const bingGetTopNSearchResultUrlsParamsSchema = z.object({
1509
1546
  query: z.string().describe("The query to search for"),
1510
- count: z.number().describe("The number of results to return. Default is 5.").optional(),
1547
+ count: z.coerce.number().describe("The number of results to return. Default is 5.").optional(),
1511
1548
  site: z
1512
1549
  .string()
1513
1550
  .describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
@@ -1525,7 +1562,7 @@ export const zendeskCreateZendeskTicketParamsSchema = z.object({
1525
1562
  subject: z.string().describe("The subject of the ticket"),
1526
1563
  body: z.string().describe("The body of the ticket").optional(),
1527
1564
  subdomain: z.string().describe("The subdomain of the Zendesk account"),
1528
- groupId: z.number().describe("The ID of the group to assign the ticket to").optional(),
1565
+ groupId: z.coerce.number().describe("The ID of the group to assign the ticket to").optional(),
1529
1566
  });
1530
1567
  export const zendeskCreateZendeskTicketOutputSchema = z.object({
1531
1568
  ticketId: z.string().describe("The ID of the ticket created"),
@@ -1537,7 +1574,7 @@ export const zendeskListZendeskTicketsParamsSchema = z.object({
1537
1574
  });
1538
1575
  export const zendeskListZendeskTicketsOutputSchema = z.object({
1539
1576
  tickets: z.array(z.object({}).catchall(z.any())).describe("List of tickets"),
1540
- count: z.number().describe("Number of tickets found"),
1577
+ count: z.coerce.number().describe("Number of tickets found"),
1541
1578
  });
1542
1579
  export const zendeskGetTicketDetailsParamsSchema = z.object({
1543
1580
  ticketId: z.string().describe("The ID of the ticket"),
@@ -1579,11 +1616,11 @@ export const zendeskSearchZendeskByQueryParamsSchema = z.object({
1579
1616
  .enum(["ticket", "user", "organization", "group"])
1580
1617
  .describe("The type of Zendesk object to search (defaults to ticket)")
1581
1618
  .optional(),
1582
- limit: z.number().describe("Maximum number of objects to return (optional, defaults to 100)").optional(),
1619
+ limit: z.coerce.number().describe("Maximum number of objects to return (optional, defaults to 100)").optional(),
1583
1620
  });
1584
1621
  export const zendeskSearchZendeskByQueryOutputSchema = z.object({
1585
1622
  results: z.array(z.object({}).catchall(z.any())).describe("List of objects matching the query"),
1586
- count: z.number().describe("Number of objects found"),
1623
+ count: z.coerce.number().describe("Number of objects found"),
1587
1624
  });
1588
1625
  export const linkedinCreateShareLinkedinPostUrlParamsSchema = z.object({
1589
1626
  text: z.string().describe("The text for the linkedin post").optional(),
@@ -1634,12 +1671,12 @@ export const snowflakeRunSnowflakeQueryParamsSchema = z.object({
1634
1671
  accountName: z.string().describe("The name of the Snowflake account"),
1635
1672
  username: z.string().describe("The username of the Snowflake Credential (optional)").optional(),
1636
1673
  outputFormat: z.enum(["json", "csv"]).describe("The format of the output").optional(),
1637
- limit: z.number().describe("A limit on the number of rows to return").optional(),
1638
- codeInterpreterLimit: z
1674
+ limit: z.coerce.number().describe("A limit on the number of rows to return").optional(),
1675
+ codeInterpreterLimit: z.coerce
1639
1676
  .number()
1640
1677
  .describe("A minimum number of rows required to pass to code interpreter for analysis and image generation (if enabled)")
1641
1678
  .optional(),
1642
- codeInterpreterImageGenLimit: z
1679
+ codeInterpreterImageGenLimit: z.coerce
1643
1680
  .number()
1644
1681
  .describe("A minimum number of rows required to pass to code interpreter for image generation only (if enabled)")
1645
1682
  .optional(),
@@ -1647,7 +1684,7 @@ export const snowflakeRunSnowflakeQueryParamsSchema = z.object({
1647
1684
  export const snowflakeRunSnowflakeQueryOutputSchema = z.object({
1648
1685
  format: z.enum(["json", "csv"]).describe("The format of the output"),
1649
1686
  content: z.string().describe("The content of the query result (json)"),
1650
- rowCount: z.number().describe("The number of rows returned by the query"),
1687
+ rowCount: z.coerce.number().describe("The number of rows returned by the query"),
1651
1688
  error: z.string().describe("The error that occurred if the query results failed or were limited").optional(),
1652
1689
  });
1653
1690
  export const openstreetmapGetLatitudeLongitudeFromLocationParamsSchema = z.object({
@@ -1656,22 +1693,22 @@ export const openstreetmapGetLatitudeLongitudeFromLocationParamsSchema = z.objec
1656
1693
  export const openstreetmapGetLatitudeLongitudeFromLocationOutputSchema = z.object({
1657
1694
  results: z
1658
1695
  .array(z.object({
1659
- latitude: z.number().describe("The latitude of the location"),
1660
- longitude: z.number().describe("The longitude of the location"),
1696
+ latitude: z.coerce.number().describe("The latitude of the location"),
1697
+ longitude: z.coerce.number().describe("The longitude of the location"),
1661
1698
  display_name: z.string().describe("The display name of the location"),
1662
1699
  }))
1663
1700
  .describe("The results of the query")
1664
1701
  .optional(),
1665
1702
  });
1666
1703
  export const nwsGetForecastForLocationParamsSchema = z.object({
1667
- latitude: z.number().describe("The latitude of the location"),
1668
- longitude: z.number().describe("The longitude of the location"),
1704
+ latitude: z.coerce.number().describe("The latitude of the location"),
1705
+ longitude: z.coerce.number().describe("The longitude of the location"),
1669
1706
  isoDate: z.string().describe("The date to get the forecast for, in ISO datetime format"),
1670
1707
  });
1671
1708
  export const nwsGetForecastForLocationOutputSchema = z.object({
1672
1709
  result: z
1673
1710
  .object({
1674
- temperature: z.number().describe("The temperature at the location"),
1711
+ temperature: z.coerce.number().describe("The temperature at the location"),
1675
1712
  temperatureUnit: z.string().describe("The unit of temperature"),
1676
1713
  forecast: z.string().describe("The forecast for the location"),
1677
1714
  })
@@ -1679,9 +1716,9 @@ export const nwsGetForecastForLocationOutputSchema = z.object({
1679
1716
  });
1680
1717
  export const firecrawlDeepResearchParamsSchema = z.object({
1681
1718
  query: z.string().describe("The query to search for"),
1682
- maxDepth: z.number().describe("The maximum depth of the search").optional(),
1683
- timeLimit: z.number().describe("The time limit for the search in seconds").optional(),
1684
- maxUrls: z.number().describe("The maximum number of URLs to scrape").optional(),
1719
+ maxDepth: z.coerce.number().describe("The maximum depth of the search").optional(),
1720
+ timeLimit: z.coerce.number().describe("The time limit for the search in seconds").optional(),
1721
+ maxUrls: z.coerce.number().describe("The maximum number of URLs to scrape").optional(),
1685
1722
  });
1686
1723
  export const firecrawlDeepResearchOutputSchema = z.object({
1687
1724
  finalAnalysis: z.string().describe("The content of the research"),
@@ -1695,7 +1732,7 @@ export const firecrawlDeepResearchOutputSchema = z.object({
1695
1732
  });
1696
1733
  export const firecrawlScrapeUrlParamsSchema = z.object({
1697
1734
  url: z.string().describe("The URL to scrape"),
1698
- waitMs: z.number().gte(0).describe("Optional wait time in milliseconds before scraping the page").optional(),
1735
+ waitMs: z.coerce.number().gte(0).describe("Optional wait time in milliseconds before scraping the page").optional(),
1699
1736
  onlyMainContent: z
1700
1737
  .boolean()
1701
1738
  .describe("Extract only the main content of the page, excluding headers, footers, and navigation")
@@ -1719,7 +1756,7 @@ export const firecrawlScrapeUrlOutputSchema = z.object({
1719
1756
  });
1720
1757
  export const firecrawlSearchAndScrapeParamsSchema = z.object({
1721
1758
  query: z.string().describe("The query to search for"),
1722
- count: z.number().describe("The number of results to return. Default is 5.").optional(),
1759
+ count: z.coerce.number().describe("The number of results to return. Default is 5.").optional(),
1723
1760
  site: z
1724
1761
  .string()
1725
1762
  .describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
@@ -1736,7 +1773,7 @@ export const firecrawlSearchAndScrapeOutputSchema = z.object({
1736
1773
  });
1737
1774
  export const firecrawlGetTopNSearchResultUrlsParamsSchema = z.object({
1738
1775
  query: z.string().describe("The query to search for"),
1739
- count: z.number().describe("The number of results to return. Default is 5.").optional(),
1776
+ count: z.coerce.number().describe("The number of results to return. Default is 5.").optional(),
1740
1777
  site: z
1741
1778
  .string()
1742
1779
  .describe("The site to restrict the search to (by inserting site:<site.com> in the query). Examples include openai.com, github.com")
@@ -1831,7 +1868,9 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1831
1868
  text: z.string().describe("The text to insert"),
1832
1869
  location: z
1833
1870
  .object({
1834
- index: z.number().describe("The zero-based index in the document where to insert the text"),
1871
+ index: z.coerce
1872
+ .number()
1873
+ .describe("The zero-based index in the document where to insert the text"),
1835
1874
  })
1836
1875
  .describe("The location where the text will be inserted"),
1837
1876
  })
@@ -1854,7 +1893,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1854
1893
  bold: z.boolean().describe("Whether the text is bold").optional(),
1855
1894
  fontSize: z
1856
1895
  .object({
1857
- magnitude: z.number().describe("The font size in points").optional(),
1896
+ magnitude: z.coerce.number().describe("The font size in points").optional(),
1858
1897
  unit: z.string().describe("The units for the font size").optional(),
1859
1898
  })
1860
1899
  .describe("The size of the text's font")
@@ -1874,7 +1913,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1874
1913
  weightedFontFamily: z
1875
1914
  .object({
1876
1915
  fontFamily: z.string().describe("The font family of the text").optional(),
1877
- weight: z.number().describe("The weight of the font").optional(),
1916
+ weight: z.coerce.number().describe("The weight of the font").optional(),
1878
1917
  })
1879
1918
  .describe("The font family and weight of the text")
1880
1919
  .optional(),
@@ -1883,8 +1922,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1883
1922
  fields: z.string().describe("The fields that should be updated"),
1884
1923
  range: z
1885
1924
  .object({
1886
- startIndex: z.number().describe("The zero-based starting index of the range"),
1887
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
1925
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
1926
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
1888
1927
  })
1889
1928
  .describe("The range of text to style")
1890
1929
  .optional(),
@@ -1896,8 +1935,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1896
1935
  .object({
1897
1936
  range: z
1898
1937
  .object({
1899
- startIndex: z.number().describe("The zero-based starting index of the range"),
1900
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
1938
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
1939
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
1901
1940
  })
1902
1941
  .describe("The range of content to delete"),
1903
1942
  })
@@ -1909,10 +1948,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1909
1948
  tableCellLocation: z
1910
1949
  .object({
1911
1950
  tableStartLocation: z
1912
- .object({ index: z.number().describe("The zero-based index in the document") })
1951
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1913
1952
  .describe("The location where the table starts"),
1914
- rowIndex: z.number().describe("The zero-based row index").optional(),
1915
- columnIndex: z.number().describe("The zero-based column index").optional(),
1953
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
1954
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1916
1955
  })
1917
1956
  .describe("The location where the table row will be inserted"),
1918
1957
  insertBelow: z.boolean().describe("Whether to insert the row below the reference row"),
@@ -1925,10 +1964,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1925
1964
  tableCellLocation: z
1926
1965
  .object({
1927
1966
  tableStartLocation: z
1928
- .object({ index: z.number().describe("The zero-based index in the document") })
1967
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1929
1968
  .describe("The location where the table starts"),
1930
- rowIndex: z.number().describe("The zero-based row index").optional(),
1931
- columnIndex: z.number().describe("The zero-based column index").optional(),
1969
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
1970
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1932
1971
  })
1933
1972
  .describe("The location where the table column will be inserted"),
1934
1973
  insertRight: z
@@ -1943,10 +1982,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1943
1982
  tableCellLocation: z
1944
1983
  .object({
1945
1984
  tableStartLocation: z
1946
- .object({ index: z.number().describe("The zero-based index in the document") })
1985
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1947
1986
  .describe("The location where the table starts"),
1948
- rowIndex: z.number().describe("The zero-based row index").optional(),
1949
- columnIndex: z.number().describe("The zero-based column index").optional(),
1987
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
1988
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1950
1989
  })
1951
1990
  .describe("The location of the row to delete"),
1952
1991
  })
@@ -1958,10 +1997,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1958
1997
  tableCellLocation: z
1959
1998
  .object({
1960
1999
  tableStartLocation: z
1961
- .object({ index: z.number().describe("The zero-based index in the document") })
2000
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
1962
2001
  .describe("The location where the table starts"),
1963
- rowIndex: z.number().describe("The zero-based row index").optional(),
1964
- columnIndex: z.number().describe("The zero-based column index").optional(),
2002
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2003
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
1965
2004
  })
1966
2005
  .describe("The location of the column to delete"),
1967
2006
  })
@@ -1972,8 +2011,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1972
2011
  .object({
1973
2012
  range: z
1974
2013
  .object({
1975
- startIndex: z.number().describe("The zero-based starting index of the range"),
1976
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2014
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2015
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
1977
2016
  })
1978
2017
  .describe("The range of paragraphs to update"),
1979
2018
  paragraphStyle: z
@@ -1988,7 +2027,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
1988
2027
  .optional(),
1989
2028
  indentStart: z
1990
2029
  .object({
1991
- magnitude: z.number().describe("The magnitude of indentation").optional(),
2030
+ magnitude: z.coerce.number().describe("The magnitude of indentation").optional(),
1992
2031
  unit: z.string().describe("The units of indentation").optional(),
1993
2032
  })
1994
2033
  .describe("The amount of indentation for the paragraph")
@@ -2008,7 +2047,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2008
2047
  .describe("Whether to keep all lines on the same page")
2009
2048
  .optional(),
2010
2049
  keepWithNext: z.boolean().describe("Whether to keep with the next paragraph").optional(),
2011
- lineSpacing: z.number().describe("The amount of space between lines").optional(),
2050
+ lineSpacing: z.coerce.number().describe("The amount of space between lines").optional(),
2012
2051
  spaceAbove: z
2013
2052
  .object({})
2014
2053
  .catchall(z.any())
@@ -2041,8 +2080,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2041
2080
  .object({
2042
2081
  range: z
2043
2082
  .object({
2044
- startIndex: z.number().describe("The zero-based starting index of the range"),
2045
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2083
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2084
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2046
2085
  })
2047
2086
  .describe("The range of paragraphs to bullet"),
2048
2087
  bulletPreset: z
@@ -2074,8 +2113,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2074
2113
  .object({
2075
2114
  range: z
2076
2115
  .object({
2077
- startIndex: z.number().describe("The zero-based starting index of the range"),
2078
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2116
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2117
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2079
2118
  })
2080
2119
  .describe("The range of paragraphs to remove bullets from"),
2081
2120
  })
@@ -2085,7 +2124,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2085
2124
  insertPageBreak: z
2086
2125
  .object({
2087
2126
  location: z
2088
- .object({ index: z.number().describe("The zero-based index in the document") })
2127
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2089
2128
  .describe("The location at which to insert the page break"),
2090
2129
  })
2091
2130
  .describe("Inserts a page break"),
@@ -2116,7 +2155,10 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2116
2155
  marginBottom: z.object({}).catchall(z.any()).describe("The bottom page margin").optional(),
2117
2156
  marginRight: z.object({}).catchall(z.any()).describe("The right page margin").optional(),
2118
2157
  marginLeft: z.object({}).catchall(z.any()).describe("The left page margin").optional(),
2119
- pageNumberStart: z.number().describe("The page number from which to start counting").optional(),
2158
+ pageNumberStart: z.coerce
2159
+ .number()
2160
+ .describe("The page number from which to start counting")
2161
+ .optional(),
2120
2162
  pageSize: z
2121
2163
  .object({
2122
2164
  width: z.object({}).catchall(z.any()).describe("The width of the page").optional(),
@@ -2174,7 +2216,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2174
2216
  .describe("The right border of the cells")
2175
2217
  .optional(),
2176
2218
  borderTop: z.object({}).catchall(z.any()).describe("The top border of the cells").optional(),
2177
- columnSpan: z.number().describe("The number of columns that the cell spans").optional(),
2219
+ columnSpan: z.coerce.number().describe("The number of columns that the cell spans").optional(),
2178
2220
  contentAlignment: z
2179
2221
  .string()
2180
2222
  .describe("The alignment of the content within the cells")
@@ -2195,7 +2237,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2195
2237
  .describe("The right padding of the cells")
2196
2238
  .optional(),
2197
2239
  paddingTop: z.object({}).catchall(z.any()).describe("The top padding of the cells").optional(),
2198
- rowSpan: z.number().describe("The number of rows that the cell spans").optional(),
2240
+ rowSpan: z.coerce.number().describe("The number of rows that the cell spans").optional(),
2199
2241
  })
2200
2242
  .describe("The style to apply to the cells"),
2201
2243
  fields: z.string().describe("The fields that should be updated"),
@@ -2204,14 +2246,14 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2204
2246
  tableCellLocation: z
2205
2247
  .object({
2206
2248
  tableStartLocation: z
2207
- .object({ index: z.number().describe("The zero-based index in the document") })
2249
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2208
2250
  .describe("The location where the table starts"),
2209
- rowIndex: z.number().describe("The zero-based row index").optional(),
2210
- columnIndex: z.number().describe("The zero-based column index").optional(),
2251
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2252
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
2211
2253
  })
2212
2254
  .describe("The location of the table cell"),
2213
- rowSpan: z.number().describe("The number of rows that the range should span"),
2214
- columnSpan: z.number().describe("The number of columns that the range should span"),
2255
+ rowSpan: z.coerce.number().describe("The number of rows that the range should span"),
2256
+ columnSpan: z.coerce.number().describe("The number of columns that the range should span"),
2215
2257
  })
2216
2258
  .describe("The table range to apply the style to"),
2217
2259
  })
@@ -2225,14 +2267,14 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2225
2267
  tableCellLocation: z
2226
2268
  .object({
2227
2269
  tableStartLocation: z
2228
- .object({ index: z.number().describe("The zero-based index in the document") })
2270
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2229
2271
  .describe("The location where the table starts"),
2230
- rowIndex: z.number().describe("The zero-based row index").optional(),
2231
- columnIndex: z.number().describe("The zero-based column index").optional(),
2272
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2273
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
2232
2274
  })
2233
2275
  .describe("The location of the table cell"),
2234
- rowSpan: z.number().describe("The number of rows that the range should span"),
2235
- columnSpan: z.number().describe("The number of columns that the range should span"),
2276
+ rowSpan: z.coerce.number().describe("The number of rows that the range should span"),
2277
+ columnSpan: z.coerce.number().describe("The number of columns that the range should span"),
2236
2278
  })
2237
2279
  .describe("The table range to merge"),
2238
2280
  })
@@ -2246,14 +2288,14 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2246
2288
  tableCellLocation: z
2247
2289
  .object({
2248
2290
  tableStartLocation: z
2249
- .object({ index: z.number().describe("The zero-based index in the document") })
2291
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2250
2292
  .describe("The location where the table starts"),
2251
- rowIndex: z.number().describe("The zero-based row index").optional(),
2252
- columnIndex: z.number().describe("The zero-based column index").optional(),
2293
+ rowIndex: z.coerce.number().describe("The zero-based row index").optional(),
2294
+ columnIndex: z.coerce.number().describe("The zero-based column index").optional(),
2253
2295
  })
2254
2296
  .describe("The location of the table cell"),
2255
- rowSpan: z.number().describe("The number of rows that the range should span"),
2256
- columnSpan: z.number().describe("The number of columns that the range should span"),
2297
+ rowSpan: z.coerce.number().describe("The number of rows that the range should span"),
2298
+ columnSpan: z.coerce.number().describe("The number of columns that the range should span"),
2257
2299
  })
2258
2300
  .describe("The table range to unmerge"),
2259
2301
  })
@@ -2265,8 +2307,8 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2265
2307
  name: z.string().describe("The name of the range"),
2266
2308
  range: z
2267
2309
  .object({
2268
- startIndex: z.number().describe("The zero-based starting index of the range"),
2269
- endIndex: z.number().describe("The zero-based ending index of the range (exclusive)"),
2310
+ startIndex: z.coerce.number().describe("The zero-based starting index of the range"),
2311
+ endIndex: z.coerce.number().describe("The zero-based ending index of the range (exclusive)"),
2270
2312
  })
2271
2313
  .describe("The range to name"),
2272
2314
  })
@@ -2289,7 +2331,7 @@ export const googleOauthUpdateDocParamsSchema = z.object({
2289
2331
  insertInlineImage: z
2290
2332
  .object({
2291
2333
  location: z
2292
- .object({ index: z.number().describe("The zero-based index in the document") })
2334
+ .object({ index: z.coerce.number().describe("The zero-based index in the document") })
2293
2335
  .describe("The location at which to insert the image"),
2294
2336
  uri: z.string().describe("The image URI"),
2295
2337
  objectSize: z
@@ -2350,15 +2392,15 @@ export const googleOauthScheduleCalendarMeetingParamsSchema = z.object({
2350
2392
  recurrence: z
2351
2393
  .object({
2352
2394
  frequency: z.enum(["DAILY", "WEEKLY", "MONTHLY", "YEARLY"]).describe("How often the meeting repeats").optional(),
2353
- interval: z.number().gte(1).describe("The interval between recurrences (e.g., every 2 weeks)").optional(),
2354
- count: z.number().gte(1).describe("Number of occurrences after which to stop the recurrence").optional(),
2395
+ interval: z.coerce.number().gte(1).describe("The interval between recurrences (e.g., every 2 weeks)").optional(),
2396
+ count: z.coerce.number().gte(1).describe("Number of occurrences after which to stop the recurrence").optional(),
2355
2397
  until: z.string().describe("End date for the recurrence in RFC3339 format (YYYY-MM-DD)").optional(),
2356
2398
  byDay: z
2357
2399
  .array(z.enum(["MO", "TU", "WE", "TH", "FR", "SA", "SU"]))
2358
2400
  .describe("Days of the week when the meeting occurs (for WEEKLY frequency)")
2359
2401
  .optional(),
2360
2402
  byMonthDay: z
2361
- .array(z.number().gte(1).lte(31))
2403
+ .array(z.coerce.number().gte(1).lte(31))
2362
2404
  .describe("Days of the month when the meeting occurs (for MONTHLY frequency)")
2363
2405
  .optional(),
2364
2406
  })
@@ -2376,7 +2418,7 @@ export const googleOauthScheduleCalendarMeetingOutputSchema = z.object({
2376
2418
  error: z.string().describe("The error that occurred if the meeting was not scheduled successfully").optional(),
2377
2419
  });
2378
2420
  export const googleOauthListCalendarsParamsSchema = z.object({
2379
- maxResults: z.number().describe("Maximum number of calendars to return, defaults to 250").optional(),
2421
+ maxResults: z.coerce.number().describe("Maximum number of calendars to return, defaults to 250").optional(),
2380
2422
  });
2381
2423
  export const googleOauthListCalendarsOutputSchema = z.object({
2382
2424
  success: z.boolean().describe("Whether the calendars were listed successfully"),
@@ -2388,7 +2430,7 @@ export const googleOauthListCalendarsOutputSchema = z.object({
2388
2430
  export const googleOauthListCalendarEventsParamsSchema = z.object({
2389
2431
  calendarId: z.string().describe("The ID of the calendar to list events from"),
2390
2432
  query: z.string().describe("Optional free-text search query to filter events").optional(),
2391
- maxResults: z.number().describe("Maximum number of events to return, defaults to 250").optional(),
2433
+ maxResults: z.coerce.number().describe("Maximum number of events to return, defaults to 250").optional(),
2392
2434
  timeMin: z
2393
2435
  .string()
2394
2436
  .describe("Optional lower bound (exclusive) for an event's end time to filter by. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z.")
@@ -2552,10 +2594,10 @@ export const googleOauthCreateSpreadsheetParamsSchema = z.object({
2552
2594
  title: z.string().describe("The title of the sheet").optional(),
2553
2595
  gridProperties: z
2554
2596
  .object({
2555
- rowCount: z.number().describe("The number of rows in the sheet").optional(),
2556
- columnCount: z.number().describe("The number of columns in the sheet").optional(),
2557
- frozenRowCount: z.number().describe("The number of frozen rows").optional(),
2558
- frozenColumnCount: z.number().describe("The number of frozen columns").optional(),
2597
+ rowCount: z.coerce.number().describe("The number of rows in the sheet").optional(),
2598
+ columnCount: z.coerce.number().describe("The number of columns in the sheet").optional(),
2599
+ frozenRowCount: z.coerce.number().describe("The number of frozen rows").optional(),
2600
+ frozenColumnCount: z.coerce.number().describe("The number of frozen columns").optional(),
2559
2601
  })
2560
2602
  .optional(),
2561
2603
  }))
@@ -2576,9 +2618,9 @@ export const googleOauthCreateSpreadsheetOutputSchema = z.object({
2576
2618
  spreadsheetUrl: z.string().describe("The URL to access the created spreadsheet").optional(),
2577
2619
  sheets: z
2578
2620
  .array(z.object({
2579
- sheetId: z.number().describe("The ID of the sheet").optional(),
2621
+ sheetId: z.coerce.number().describe("The ID of the sheet").optional(),
2580
2622
  title: z.string().describe("The title of the sheet").optional(),
2581
- index: z.number().describe("The index of the sheet").optional(),
2623
+ index: z.coerce.number().describe("The index of the sheet").optional(),
2582
2624
  }))
2583
2625
  .describe("Information about the created sheets")
2584
2626
  .optional(),
@@ -2593,10 +2635,10 @@ export const googleOauthGetSpreadsheetMetadataOutputSchema = z.object({
2593
2635
  spreadsheetTitle: z.string().describe("The spreadsheet title").optional(),
2594
2636
  sheets: z
2595
2637
  .array(z.object({
2596
- sheetId: z.number().describe("The ID of the sheet").optional(),
2638
+ sheetId: z.coerce.number().describe("The ID of the sheet").optional(),
2597
2639
  title: z.string().describe("The sheet title").optional(),
2598
- index: z.number().describe("The sheet index").optional(),
2599
- gid: z.number().describe("The gid used in Google Sheets URLs (same value as sheetId)").optional(),
2640
+ index: z.coerce.number().describe("The sheet index").optional(),
2641
+ gid: z.coerce.number().describe("The gid used in Google Sheets URLs (same value as sheetId)").optional(),
2600
2642
  }))
2601
2643
  .describe("The list of sheets in the spreadsheet")
2602
2644
  .optional(),
@@ -2618,8 +2660,8 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2618
2660
  title: z.string().describe("The title of the new sheet").optional(),
2619
2661
  gridProperties: z
2620
2662
  .object({
2621
- rowCount: z.number().describe("The number of rows in the sheet").optional(),
2622
- columnCount: z.number().describe("The number of columns in the sheet").optional(),
2663
+ rowCount: z.coerce.number().describe("The number of rows in the sheet").optional(),
2664
+ columnCount: z.coerce.number().describe("The number of columns in the sheet").optional(),
2623
2665
  })
2624
2666
  .optional(),
2625
2667
  })
@@ -2629,7 +2671,9 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2629
2671
  .describe("Add or update a sheet"),
2630
2672
  z
2631
2673
  .object({
2632
- deleteSheet: z.object({ sheetId: z.number().describe("The ID of the sheet to delete").optional() }),
2674
+ deleteSheet: z.object({
2675
+ sheetId: z.coerce.number().describe("The ID of the sheet to delete").optional(),
2676
+ }),
2633
2677
  })
2634
2678
  .describe("Delete a sheet"),
2635
2679
  z
@@ -2637,11 +2681,14 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2637
2681
  updateCells: z.object({
2638
2682
  range: z
2639
2683
  .object({
2640
- sheetId: z.number().describe("The ID of the sheet").optional(),
2641
- startRowIndex: z.number().describe("The start row (0-based, inclusive)").optional(),
2642
- endRowIndex: z.number().describe("The end row (0-based, exclusive)").optional(),
2643
- startColumnIndex: z.number().describe("The start column (0-based, inclusive)").optional(),
2644
- endColumnIndex: z.number().describe("The end column (0-based, exclusive)").optional(),
2684
+ sheetId: z.coerce.number().describe("The ID of the sheet").optional(),
2685
+ startRowIndex: z.coerce.number().describe("The start row (0-based, inclusive)").optional(),
2686
+ endRowIndex: z.coerce.number().describe("The end row (0-based, exclusive)").optional(),
2687
+ startColumnIndex: z.coerce
2688
+ .number()
2689
+ .describe("The start column (0-based, inclusive)")
2690
+ .optional(),
2691
+ endColumnIndex: z.coerce.number().describe("The end column (0-based, exclusive)").optional(),
2645
2692
  })
2646
2693
  .optional(),
2647
2694
  rows: z
@@ -2651,7 +2698,7 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2651
2698
  userEnteredValue: z
2652
2699
  .object({
2653
2700
  stringValue: z.string().optional(),
2654
- numberValue: z.number().optional(),
2701
+ numberValue: z.coerce.number().optional(),
2655
2702
  boolValue: z.boolean().optional(),
2656
2703
  formulaValue: z.string().optional(),
2657
2704
  })
@@ -2668,14 +2715,14 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2668
2715
  updateSheetProperties: z.object({
2669
2716
  properties: z
2670
2717
  .object({
2671
- sheetId: z.number().describe("The ID of the sheet to update").optional(),
2718
+ sheetId: z.coerce.number().describe("The ID of the sheet to update").optional(),
2672
2719
  title: z.string().describe("The new title of the sheet").optional(),
2673
2720
  gridProperties: z
2674
2721
  .object({
2675
- rowCount: z.number().describe("The new number of rows").optional(),
2676
- columnCount: z.number().describe("The new number of columns").optional(),
2677
- frozenRowCount: z.number().describe("The number of frozen rows").optional(),
2678
- frozenColumnCount: z.number().describe("The number of frozen columns").optional(),
2722
+ rowCount: z.coerce.number().describe("The new number of rows").optional(),
2723
+ columnCount: z.coerce.number().describe("The new number of columns").optional(),
2724
+ frozenRowCount: z.coerce.number().describe("The number of frozen rows").optional(),
2725
+ frozenColumnCount: z.coerce.number().describe("The number of frozen columns").optional(),
2679
2726
  })
2680
2727
  .optional(),
2681
2728
  })
@@ -2706,10 +2753,10 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2706
2753
  .object({
2707
2754
  backgroundColor: z
2708
2755
  .object({
2709
- red: z.number().describe("The red component [0.0, 1.0]").optional(),
2710
- green: z.number().describe("The green component [0.0, 1.0]").optional(),
2711
- blue: z.number().describe("The blue component [0.0, 1.0]").optional(),
2712
- alpha: z.number().describe("The alpha component [0.0, 1.0]").optional(),
2756
+ red: z.coerce.number().describe("The red component [0.0, 1.0]").optional(),
2757
+ green: z.coerce.number().describe("The green component [0.0, 1.0]").optional(),
2758
+ blue: z.coerce.number().describe("The blue component [0.0, 1.0]").optional(),
2759
+ alpha: z.coerce.number().describe("The alpha component [0.0, 1.0]").optional(),
2713
2760
  })
2714
2761
  .optional(),
2715
2762
  numberFormat: z
@@ -2734,14 +2781,14 @@ export const googleOauthUpdateSpreadsheetParamsSchema = z.object({
2734
2781
  .object({
2735
2782
  foregroundColor: z
2736
2783
  .object({
2737
- red: z.number().describe("The red component [0.0, 1.0]").optional(),
2738
- green: z.number().describe("The green component [0.0, 1.0]").optional(),
2739
- blue: z.number().describe("The blue component [0.0, 1.0]").optional(),
2740
- alpha: z.number().describe("The alpha component [0.0, 1.0]").optional(),
2784
+ red: z.coerce.number().describe("The red component [0.0, 1.0]").optional(),
2785
+ green: z.coerce.number().describe("The green component [0.0, 1.0]").optional(),
2786
+ blue: z.coerce.number().describe("The blue component [0.0, 1.0]").optional(),
2787
+ alpha: z.coerce.number().describe("The alpha component [0.0, 1.0]").optional(),
2741
2788
  })
2742
2789
  .optional(),
2743
2790
  fontFamily: z.string().describe("The font family").optional(),
2744
- fontSize: z.number().describe("The size of the font in points").optional(),
2791
+ fontSize: z.coerce.number().describe("The size of the font in points").optional(),
2745
2792
  bold: z.boolean().describe("Whether the text is bold").optional(),
2746
2793
  italic: z.boolean().describe("Whether the text is italic").optional(),
2747
2794
  strikethrough: z.boolean().describe("Whether the text has a strikethrough").optional(),
@@ -2785,9 +2832,9 @@ export const googleOauthUpdateSpreadsheetOutputSchema = z.object({
2785
2832
  .object({
2786
2833
  properties: z
2787
2834
  .object({
2788
- sheetId: z.number().describe("The ID of the newly created sheet").optional(),
2835
+ sheetId: z.coerce.number().describe("The ID of the newly created sheet").optional(),
2789
2836
  title: z.string().describe("The title of the new sheet").optional(),
2790
- index: z.number().describe("The index of the new sheet").optional(),
2837
+ index: z.coerce.number().describe("The index of the new sheet").optional(),
2791
2838
  })
2792
2839
  .optional(),
2793
2840
  })
@@ -2809,9 +2856,9 @@ export const googleOauthAppendRowsToSpreadsheetParamsSchema = z.object({
2809
2856
  .optional(),
2810
2857
  rows: z
2811
2858
  .array(z
2812
- .array(z.object({ stringValue: z.string().describe("The value of the cell") }))
2813
- .describe("A list of cells to append to the spreadsheet"))
2814
- .describe("Rows of cells to append to the spreadsheet"),
2859
+ .array(z.string().describe("The string value of the cell"))
2860
+ .describe("A list of cell values for this row, each as a plain string"))
2861
+ .describe('Rows of cells to append to the spreadsheet. Each row is an array of string cell values. For example, [["Alice", "30"], ["Bob", "25"]].'),
2815
2862
  });
2816
2863
  export const googleOauthAppendRowsToSpreadsheetOutputSchema = z.object({
2817
2864
  success: z.boolean().describe("Whether the spreadsheet was updated successfully"),
@@ -2822,11 +2869,11 @@ export const googleOauthDeleteRowFromSpreadsheetParamsSchema = z.object({
2822
2869
  spreadsheetId: z
2823
2870
  .string()
2824
2871
  .describe('The ID of the Google Spreadsheet. This should be provided by the user. Can be found in the URL of the spreadsheet. For example, "1bWp1w2OVwH19mkXEiLIaP8As7N-9c_3EXF_Eo5d5Nm0".'),
2825
- sheetId: z
2872
+ sheetId: z.coerce
2826
2873
  .number()
2827
2874
  .int()
2828
2875
  .describe('The ID of the specific sheet within the spreadsheet (not the sheet name). Sheet ID is 0 for the first sheet. Can be found in the URL after "gid=". For example, if the URL is "...#gid=123456789", the sheetId is 123456789.'),
2829
- rowIndex: z
2876
+ rowIndex: z.coerce
2830
2877
  .number()
2831
2878
  .int()
2832
2879
  .describe("The 0-based index of the row to delete. For example, to delete the first row (excluding headers if row 0 is headers), use rowIndex 1. To delete the header row, use rowIndex 0."),
@@ -2845,23 +2892,27 @@ export const googleOauthUpdateRowsInSpreadsheetParamsSchema = z.object({
2845
2892
  .string()
2846
2893
  .describe('The name of the SHEET to update. This should be provided by the user. For example, "Sheet1". Defaults to "Sheet1" if not provided.')
2847
2894
  .optional(),
2848
- startRow: z
2895
+ startRow: z.coerce
2849
2896
  .number()
2850
2897
  .int()
2851
2898
  .describe("The row number to start updating from (1-based). For example, to update starting from the first row, use 1. To start from the second row, use 2."),
2899
+ startColumn: z
2900
+ .string()
2901
+ .describe('The column letter(s) to start writing from (default: "A"). For example, use "A" to start from the first column, "C" to start from column C, or "BE" to start from column BE. This allows targeting a specific column range in the spreadsheet.')
2902
+ .optional(),
2852
2903
  rows: z
2853
2904
  .array(z
2854
- .array(z.object({ stringValue: z.string().describe("The value of the cell") }))
2855
- .describe("A list of cells for this row"))
2856
- .describe("Rows of cells to update in the spreadsheet. Each row will be written sequentially starting from startRow."),
2905
+ .array(z.string().describe("The string value of the cell"))
2906
+ .describe("A list of cell values for this row, each as a plain string"))
2907
+ .describe('Rows of cells to update in the spreadsheet. Each row is an array of string cell values written sequentially starting from startRow/startColumn. For example, [["Alice", "30"], ["Bob", "25"]].'),
2857
2908
  });
2858
2909
  export const googleOauthUpdateRowsInSpreadsheetOutputSchema = z.object({
2859
2910
  success: z.boolean().describe("Whether the rows were updated successfully"),
2860
2911
  spreadsheetUrl: z.string().describe("The URL of the updated spreadsheet").optional(),
2861
2912
  updatedRange: z.string().describe("The range that was updated in A1 notation").optional(),
2862
- updatedRows: z.number().int().describe("The number of rows that were updated").optional(),
2863
- updatedColumns: z.number().int().describe("The number of columns that were updated").optional(),
2864
- updatedCells: z.number().int().describe("The total number of cells that were updated").optional(),
2913
+ updatedRows: z.coerce.number().int().describe("The number of rows that were updated").optional(),
2914
+ updatedColumns: z.coerce.number().int().describe("The number of columns that were updated").optional(),
2915
+ updatedCells: z.coerce.number().int().describe("The total number of cells that were updated").optional(),
2865
2916
  error: z.string().describe("The error that occurred if the rows were not updated successfully").optional(),
2866
2917
  });
2867
2918
  export const googleOauthCreatePresentationParamsSchema = z.object({
@@ -2871,14 +2922,14 @@ export const googleOauthCreatePresentationParamsSchema = z.object({
2871
2922
  width: z
2872
2923
  .object({
2873
2924
  unit: z.enum(["EMU", "PT"]).describe("The unit of the width").optional(),
2874
- magnitude: z.number().describe("The width of the presentation").optional(),
2925
+ magnitude: z.coerce.number().describe("The width of the presentation").optional(),
2875
2926
  })
2876
2927
  .describe("The width object of the presentation")
2877
2928
  .optional(),
2878
2929
  height: z
2879
2930
  .object({
2880
2931
  unit: z.enum(["EMU", "PT"]).describe("The unit of the height").optional(),
2881
- magnitude: z.number().describe("The height of the presentation").optional(),
2932
+ magnitude: z.coerce.number().describe("The height of the presentation").optional(),
2882
2933
  })
2883
2934
  .describe("The height object of the presentation")
2884
2935
  .optional(),
@@ -2903,7 +2954,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2903
2954
  createSlide: z
2904
2955
  .object({
2905
2956
  objectId: z.string().describe("The object ID for the created slide").optional(),
2906
- insertionIndex: z
2957
+ insertionIndex: z.coerce
2907
2958
  .number()
2908
2959
  .describe("The 0-based index where the new slide should be inserted")
2909
2960
  .optional(),
@@ -2931,8 +2982,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2931
2982
  createTable: z
2932
2983
  .object({
2933
2984
  objectId: z.string().describe("The object ID for the created table").optional(),
2934
- rows: z.number().describe("Number of rows in the table"),
2935
- columns: z.number().describe("Number of columns in the table"),
2985
+ rows: z.coerce.number().describe("Number of rows in the table"),
2986
+ columns: z.coerce.number().describe("Number of columns in the table"),
2936
2987
  elementProperties: z
2937
2988
  .object({})
2938
2989
  .catchall(z.any())
@@ -2946,7 +2997,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2946
2997
  .object({
2947
2998
  objectId: z.string().describe("The object ID of the shape or table cell"),
2948
2999
  text: z.string().describe("The text to be inserted"),
2949
- insertionIndex: z.number().describe("The index where the text will be inserted").optional(),
3000
+ insertionIndex: z.coerce.number().describe("The index where the text will be inserted").optional(),
2950
3001
  })
2951
3002
  .describe("Inserts text into a shape or table cell"),
2952
3003
  }),
@@ -2955,7 +3006,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2955
3006
  .object({
2956
3007
  tableObjectId: z.string().describe("The table to insert rows into"),
2957
3008
  insertBelow: z.boolean().describe("Whether to insert the rows below the reference cell"),
2958
- number: z.number().describe("The number of rows to insert").optional(),
3009
+ number: z.coerce.number().describe("The number of rows to insert").optional(),
2959
3010
  cellLocation: z
2960
3011
  .object({})
2961
3012
  .catchall(z.any())
@@ -2971,7 +3022,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
2971
3022
  insertRight: z
2972
3023
  .boolean()
2973
3024
  .describe("Whether to insert the columns to the right of the reference cell"),
2974
- number: z.number().describe("The number of columns to insert").optional(),
3025
+ number: z.coerce.number().describe("The number of columns to insert").optional(),
2975
3026
  cellLocation: z
2976
3027
  .object({})
2977
3028
  .catchall(z.any())
@@ -3020,10 +3071,10 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3020
3071
  objectId: z.string().describe("The object ID of the element to update"),
3021
3072
  transform: z
3022
3073
  .object({
3023
- scaleX: z.number().describe("The horizontal scale factor").optional(),
3024
- scaleY: z.number().describe("The vertical scale factor").optional(),
3025
- translateX: z.number().describe("The horizontal translation").optional(),
3026
- translateY: z.number().describe("The vertical translation").optional(),
3074
+ scaleX: z.coerce.number().describe("The horizontal scale factor").optional(),
3075
+ scaleY: z.coerce.number().describe("The vertical scale factor").optional(),
3076
+ translateX: z.coerce.number().describe("The horizontal translation").optional(),
3077
+ translateY: z.coerce.number().describe("The vertical translation").optional(),
3027
3078
  unit: z.string().describe("The unit for translate values").optional(),
3028
3079
  })
3029
3080
  .describe("The transform to apply"),
@@ -3034,7 +3085,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3034
3085
  updateSlidesPosition: z
3035
3086
  .object({
3036
3087
  slideObjectIds: z.array(z.string()).describe("The IDs of the slides to reorder"),
3037
- insertionIndex: z
3088
+ insertionIndex: z.coerce
3038
3089
  .number()
3039
3090
  .describe("The 0-based index where the slides should be moved to")
3040
3091
  .optional(),
@@ -3047,8 +3098,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3047
3098
  objectId: z.string().describe("The object ID of the shape or table cell"),
3048
3099
  textRange: z
3049
3100
  .object({
3050
- startIndex: z.number().describe("The starting index of the range (0-based)").optional(),
3051
- endIndex: z.number().describe("The ending index of the range (0-based)").optional(),
3101
+ startIndex: z.coerce.number().describe("The starting index of the range (0-based)").optional(),
3102
+ endIndex: z.coerce.number().describe("The ending index of the range (0-based)").optional(),
3052
3103
  })
3053
3104
  .describe("The range of text to delete")
3054
3105
  .optional(),
@@ -3086,7 +3137,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3086
3137
  .object({
3087
3138
  objectId: z.string().describe("The object ID for the created chart").optional(),
3088
3139
  spreadsheetId: z.string().describe("The ID of the Google Sheets spreadsheet containing the chart"),
3089
- chartId: z.number().describe("The ID of the specific chart in the spreadsheet"),
3140
+ chartId: z.coerce.number().describe("The ID of the specific chart in the spreadsheet"),
3090
3141
  elementProperties: z
3091
3142
  .object({})
3092
3143
  .catchall(z.any())
@@ -3241,11 +3292,11 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3241
3292
  .enum(["ALL", "FROM_START_INDEX", "FIXED_RANGE"])
3242
3293
  .describe("The type of range")
3243
3294
  .optional(),
3244
- startIndex: z
3295
+ startIndex: z.coerce
3245
3296
  .number()
3246
3297
  .describe("The start index for FROM_START_INDEX or FIXED_RANGE")
3247
3298
  .optional(),
3248
- endIndex: z.number().describe("The end index for FIXED_RANGE").optional(),
3299
+ endIndex: z.coerce.number().describe("The end index for FIXED_RANGE").optional(),
3249
3300
  })
3250
3301
  .describe("The range of text to style (defaults to all text if unspecified)")
3251
3302
  .optional(),
@@ -3256,7 +3307,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3256
3307
  replaceAllShapesWithSheetsChart: z
3257
3308
  .object({
3258
3309
  spreadsheetId: z.string().describe("The ID of the Google Sheets spreadsheet containing the chart"),
3259
- chartId: z.number().describe("The ID of the chart within the spreadsheet"),
3310
+ chartId: z.coerce.number().describe("The ID of the chart within the spreadsheet"),
3260
3311
  containsText: z
3261
3312
  .object({
3262
3313
  text: z.string().describe("The text the shape must contain to be replaced"),
@@ -3284,11 +3335,11 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3284
3335
  .enum(["ALL", "FROM_START_INDEX", "FIXED_RANGE"])
3285
3336
  .describe("The type of range")
3286
3337
  .optional(),
3287
- startIndex: z
3338
+ startIndex: z.coerce
3288
3339
  .number()
3289
3340
  .describe("The start index for FROM_START_INDEX or FIXED_RANGE")
3290
3341
  .optional(),
3291
- endIndex: z.number().describe("The end index for FIXED_RANGE").optional(),
3342
+ endIndex: z.coerce.number().describe("The end index for FIXED_RANGE").optional(),
3292
3343
  })
3293
3344
  .describe("The range of text to delete bullets from (defaults to all text if unspecified)")
3294
3345
  .optional(),
@@ -3312,11 +3363,11 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3312
3363
  .enum(["ALL", "FROM_START_INDEX", "FIXED_RANGE"])
3313
3364
  .describe("The type of range")
3314
3365
  .optional(),
3315
- startIndex: z
3366
+ startIndex: z.coerce
3316
3367
  .number()
3317
3368
  .describe("The start index for FROM_START_INDEX or FIXED_RANGE")
3318
3369
  .optional(),
3319
- endIndex: z.number().describe("The end index for FIXED_RANGE").optional(),
3370
+ endIndex: z.coerce.number().describe("The end index for FIXED_RANGE").optional(),
3320
3371
  })
3321
3372
  .describe("The range of text to apply the style to (defaults to all paragraphs if unspecified)")
3322
3373
  .optional(),
@@ -3342,8 +3393,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3342
3393
  tableRange: z
3343
3394
  .object({
3344
3395
  location: z.object({}).catchall(z.any()).describe("The starting cell location").optional(),
3345
- rowSpan: z.number().describe("The number of rows in the range").optional(),
3346
- columnSpan: z.number().describe("The number of columns in the range").optional(),
3396
+ rowSpan: z.coerce.number().describe("The number of rows in the range").optional(),
3397
+ columnSpan: z.coerce.number().describe("The number of columns in the range").optional(),
3347
3398
  })
3348
3399
  .describe("The range of cells whose border should be updated (defaults to the entire table if unspecified)")
3349
3400
  .optional(),
@@ -3354,7 +3405,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3354
3405
  updateTableColumnProperties: z
3355
3406
  .object({
3356
3407
  objectId: z.string().describe("The object ID of the table"),
3357
- columnIndices: z.array(z.number()).describe("The 0-based indices of the columns to update"),
3408
+ columnIndices: z.array(z.coerce.number()).describe("The 0-based indices of the columns to update"),
3358
3409
  tableColumnProperties: z
3359
3410
  .object({})
3360
3411
  .catchall(z.any())
@@ -3369,7 +3420,7 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3369
3420
  updateTableRowProperties: z
3370
3421
  .object({
3371
3422
  objectId: z.string().describe("The object ID of the table"),
3372
- rowIndices: z.array(z.number()).describe("The 0-based indices of the rows to update"),
3423
+ rowIndices: z.array(z.coerce.number()).describe("The 0-based indices of the rows to update"),
3373
3424
  tableRowProperties: z
3374
3425
  .object({})
3375
3426
  .catchall(z.any())
@@ -3387,8 +3438,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3387
3438
  tableRange: z
3388
3439
  .object({
3389
3440
  location: z.object({}).catchall(z.any()).describe("The starting cell location").optional(),
3390
- rowSpan: z.number().describe("The number of rows in the range").optional(),
3391
- columnSpan: z.number().describe("The number of columns in the range").optional(),
3441
+ rowSpan: z.coerce.number().describe("The number of rows in the range").optional(),
3442
+ columnSpan: z.coerce.number().describe("The number of columns in the range").optional(),
3392
3443
  })
3393
3444
  .describe("The range of cells to merge"),
3394
3445
  })
@@ -3401,8 +3452,8 @@ export const googleOauthUpdatePresentationParamsSchema = z.object({
3401
3452
  tableRange: z
3402
3453
  .object({
3403
3454
  location: z.object({}).catchall(z.any()).describe("The starting cell location").optional(),
3404
- rowSpan: z.number().describe("The number of rows in the range").optional(),
3405
- columnSpan: z.number().describe("The number of columns in the range").optional(),
3455
+ rowSpan: z.coerce.number().describe("The number of rows in the range").optional(),
3456
+ columnSpan: z.coerce.number().describe("The number of columns in the range").optional(),
3406
3457
  })
3407
3458
  .describe("The range of cells to unmerge"),
3408
3459
  })
@@ -3507,7 +3558,7 @@ export const googleOauthGetPresentationOutputSchema = z.object({
3507
3558
  });
3508
3559
  export const googleOauthSearchDriveByKeywordsParamsSchema = z.object({
3509
3560
  keywords: z.array(z.string()).describe("List of keywords to search for in file contents."),
3510
- limit: z.number().describe("The maximum number of files to return").optional(),
3561
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3511
3562
  includeTrashed: z
3512
3563
  .boolean()
3513
3564
  .describe("Whether to include trashed files in the search results. Usually false unless otherwise noted by the user.")
@@ -3528,7 +3579,7 @@ export const googleOauthSearchDriveByKeywordsOutputSchema = z.object({
3528
3579
  });
3529
3580
  export const googleOauthSearchDriveByQueryParamsSchema = z.object({
3530
3581
  query: z.string().describe("The query to search for in file contents."),
3531
- limit: z.number().describe("The maximum number of files to return").optional(),
3582
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3532
3583
  searchDriveByDrive: z
3533
3584
  .boolean()
3534
3585
  .describe("Whether we should search drive by drive or run a general search. Usually false unless otherwise noted by the user."),
@@ -3556,8 +3607,8 @@ export const googleOauthSearchDriveByQueryOutputSchema = z.object({
3556
3607
  });
3557
3608
  export const googleOauthSearchDriveByKeywordsAndGetFileContentParamsSchema = z.object({
3558
3609
  searchQuery: z.string().describe("The query input to Google Drive search"),
3559
- limit: z.number().describe("The maximum number of files to return").optional(),
3560
- fileSizeLimit: z.number().describe("The maximum length of a file in characters").optional(),
3610
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3611
+ fileSizeLimit: z.coerce.number().describe("The maximum length of a file in characters").optional(),
3561
3612
  searchDriveByDrive: z
3562
3613
  .boolean()
3563
3614
  .describe("Search drive by drive or run a general search. Usually false unless otherwise noted by the user."),
@@ -3592,8 +3643,8 @@ export const googleOauthSearchDriveByKeywordsAndGetFileContentOutputSchema = z.o
3592
3643
  });
3593
3644
  export const googleOauthSearchDriveByQueryAndGetFileContentParamsSchema = z.object({
3594
3645
  query: z.string().describe("Google Drive API search syntax, eg \"fullText contains 'Valentine\\'s Day'\""),
3595
- limit: z.number().describe("The maximum number of files to return").optional(),
3596
- fileSizeLimit: z.number().describe("The maximum length of a file in characters").optional(),
3646
+ limit: z.coerce.number().describe("The maximum number of files to return").optional(),
3647
+ fileSizeLimit: z.coerce.number().describe("The maximum length of a file in characters").optional(),
3597
3648
  searchDriveByDrive: z
3598
3649
  .boolean()
3599
3650
  .describe("Search drive by drive or run a general search. Usually false unless otherwise noted by the user."),
@@ -3622,12 +3673,15 @@ export const googleOauthSearchDriveByQueryAndGetFileContentOutputSchema = z.obje
3622
3673
  });
3623
3674
  export const googleOauthGetDriveFileContentByIdParamsSchema = z.object({
3624
3675
  fileId: z.string().describe("The ID of the file to get content from"),
3625
- limit: z.number().describe("The character limit for the file content").optional(),
3626
- timeoutLimit: z
3676
+ limit: z.coerce.number().describe("The character limit for the file content").optional(),
3677
+ timeoutLimit: z.coerce
3627
3678
  .number()
3628
3679
  .describe("The timeout limit for the file content retrieval (default of 15 seconds)")
3629
3680
  .optional(),
3630
- fileSizeLimit: z.number().describe("Max file size (in MB) to retrieve content from (default of 30MB)").optional(),
3681
+ fileSizeLimit: z.coerce
3682
+ .number()
3683
+ .describe("Max file size (in MB) to retrieve content from (default of 30MB)")
3684
+ .optional(),
3631
3685
  });
3632
3686
  export const googleOauthGetDriveFileContentByIdOutputSchema = z.object({
3633
3687
  success: z.boolean().describe("Whether the file content was retrieved successfully"),
@@ -3639,7 +3693,7 @@ export const googleOauthGetDriveFileContentByIdOutputSchema = z.object({
3639
3693
  .object({
3640
3694
  content: z.string().describe("The content of the file").optional(),
3641
3695
  fileName: z.string().describe("The name of the file").optional(),
3642
- fileLength: z.number().describe("The length of the file content prior to truncating").optional(),
3696
+ fileLength: z.coerce.number().describe("The length of the file content prior to truncating").optional(),
3643
3697
  })
3644
3698
  .describe("The contents of the file"),
3645
3699
  }))
@@ -3648,7 +3702,7 @@ export const googleOauthGetDriveFileContentByIdOutputSchema = z.object({
3648
3702
  error: z.string().describe("Error message if file content retrieval failed").optional(),
3649
3703
  });
3650
3704
  export const googleOauthListGroupsParamsSchema = z.object({
3651
- maxResults: z.number().describe("The maximum number of groups to return (max allowed is 200)").optional(),
3705
+ maxResults: z.coerce.number().describe("The maximum number of groups to return (max allowed is 200)").optional(),
3652
3706
  });
3653
3707
  export const googleOauthListGroupsOutputSchema = z.object({
3654
3708
  success: z.boolean().describe("Whether the groups were listed successfully"),
@@ -3677,7 +3731,7 @@ export const googleOauthGetGroupOutputSchema = z.object({
3677
3731
  });
3678
3732
  export const googleOauthListGroupMembersParamsSchema = z.object({
3679
3733
  groupKey: z.string().describe("The group's email address or unique group ID"),
3680
- maxResults: z.number().describe("The maximum number of members to return (max allowed is 200)").optional(),
3734
+ maxResults: z.coerce.number().describe("The maximum number of members to return (max allowed is 200)").optional(),
3681
3735
  });
3682
3736
  export const googleOauthListGroupMembersOutputSchema = z.object({
3683
3737
  success: z.boolean().describe("Whether the members were listed successfully"),
@@ -3720,8 +3774,8 @@ export const googleOauthDeleteGroupMemberOutputSchema = z.object({
3720
3774
  export const googleOauthQueryGoogleBigQueryParamsSchema = z.object({
3721
3775
  query: z.string().describe("The SQL query to execute in BigQuery"),
3722
3776
  projectId: z.string().describe("The Google Cloud Project ID. If not provided, will use the default project"),
3723
- maxResults: z.number().describe("Maximum number of results to return. Defaults to 1000").optional(),
3724
- timeoutMs: z.number().describe("Timeout for the query in milliseconds. Defaults to 30000").optional(),
3777
+ maxResults: z.coerce.number().describe("Maximum number of results to return. Defaults to 1000").optional(),
3778
+ timeoutMs: z.coerce.number().describe("Timeout for the query in milliseconds. Defaults to 30000").optional(),
3725
3779
  maximumBytesProcessed: z
3726
3780
  .string()
3727
3781
  .describe("Maximum bytes to process for the query. Defaults to 500000000 (500MB). Use -1 for no limit")
@@ -3746,8 +3800,8 @@ export const googleOauthQueryGoogleBigQueryOutputSchema = z.object({
3746
3800
  });
3747
3801
  export const googlemailSearchGmailMessagesParamsSchema = z.object({
3748
3802
  query: z.string().describe('Gmail search query (e.g. "from:alice subject:urgent")'),
3749
- maxResults: z.number().describe("Maximum number of messages to return (optional)").optional(),
3750
- timeout: z.number().describe("Timeout for the query in seconds (optional)").optional(),
3803
+ maxResults: z.coerce.number().describe("Maximum number of messages to return (optional)").optional(),
3804
+ timeout: z.coerce.number().describe("Timeout for the query in seconds (optional)").optional(),
3751
3805
  });
3752
3806
  export const googlemailSearchGmailMessagesOutputSchema = z.object({
3753
3807
  success: z.boolean(),
@@ -3776,7 +3830,7 @@ export const googlemailSearchGmailMessagesOutputSchema = z.object({
3776
3830
  });
3777
3831
  export const googlemailListGmailThreadsParamsSchema = z.object({
3778
3832
  query: z.string().describe('Gmail search query (e.g. "from:alice subject:project")'),
3779
- maxResults: z.number().describe("Maximum number of threads to return").optional(),
3833
+ maxResults: z.coerce.number().describe("Maximum number of threads to return").optional(),
3780
3834
  });
3781
3835
  export const googlemailListGmailThreadsOutputSchema = z.object({
3782
3836
  success: z.boolean(),
@@ -3842,7 +3896,7 @@ export const googleSearchCustomSearchParamsSchema = z.object({
3842
3896
  .string()
3843
3897
  .describe("Identifies a word or phrase that should not appear in any documents in the search results")
3844
3898
  .optional(),
3845
- num: z.number().int().gte(1).lte(10).describe("Number of search results to return (1-10)").optional(),
3899
+ num: z.coerce.number().int().gte(1).lte(10).describe("Number of search results to return (1-10)").optional(),
3846
3900
  siteSearch: z
3847
3901
  .string()
3848
3902
  .describe("Specifies a given site which should always be included or excluded from results")
@@ -3851,7 +3905,7 @@ export const googleSearchCustomSearchParamsSchema = z.object({
3851
3905
  .enum(["e", "i"])
3852
3906
  .describe("Controls whether to include or exclude results from the site named in siteSearch (e=exclude, i=include)")
3853
3907
  .optional(),
3854
- start: z.number().int().gte(1).lte(100).describe("The index of the first result to return").optional(),
3908
+ start: z.coerce.number().int().gte(1).lte(100).describe("The index of the first result to return").optional(),
3855
3909
  });
3856
3910
  export const googleSearchCustomSearchOutputSchema = z.object({
3857
3911
  success: z.boolean().describe("Whether the search was successful"),
@@ -3866,7 +3920,7 @@ export const googleSearchCustomSearchOutputSchema = z.object({
3866
3920
  .optional(),
3867
3921
  searchInformation: z
3868
3922
  .object({
3869
- searchTime: z.number().describe("Time taken to perform the search").optional(),
3923
+ searchTime: z.coerce.number().describe("Time taken to perform the search").optional(),
3870
3924
  totalResults: z.string().describe("Total number of search results available").optional(),
3871
3925
  })
3872
3926
  .describe("Metadata about the search")
@@ -3917,7 +3971,7 @@ export const finnhubGetBasicFinancialsOutputSchema = z.object({
3917
3971
  .array(z
3918
3972
  .object({
3919
3973
  period: z.string().describe("The period of the financial metric in YYYY-MM-DD format").optional(),
3920
- v: z.number().describe("The value of the financial metric").optional(),
3974
+ v: z.coerce.number().describe("The value of the financial metric").optional(),
3921
3975
  })
3922
3976
  .describe("The value of the financial metric"))
3923
3977
  .describe("The series of values for the financial metric")
@@ -3934,7 +3988,7 @@ export const finnhubGetBasicFinancialsOutputSchema = z.object({
3934
3988
  .array(z
3935
3989
  .object({
3936
3990
  period: z.string().describe("The period of the financial metric in YYYY-MM-DD format").optional(),
3937
- v: z.number().describe("The value of the financial metric").optional(),
3991
+ v: z.coerce.number().describe("The value of the financial metric").optional(),
3938
3992
  })
3939
3993
  .describe("The value of the financial metric"))
3940
3994
  .describe("The series of values for the financial metric")
@@ -4018,8 +4072,8 @@ export const salesforceSearchAllSalesforceRecordsParamsSchema = z.object({
4018
4072
  .boolean()
4019
4073
  .describe('Whether your Salesforce instance uses lightning knowledge articles ("true" or "false"). Ask the user if unsure.')
4020
4074
  .optional(),
4021
- limit: z.number().describe("The maximum number of records to return").optional(),
4022
- maxLimit: z.number().describe("The absolute maximum limit for records that can be returned").optional(),
4075
+ limit: z.coerce.number().describe("The maximum number of records to return").optional(),
4076
+ maxLimit: z.coerce.number().describe("The absolute maximum limit for records that can be returned").optional(),
4023
4077
  });
4024
4078
  export const salesforceSearchAllSalesforceRecordsOutputSchema = z.object({
4025
4079
  success: z.boolean().describe("Whether the records were successfully retrieved"),
@@ -4081,8 +4135,8 @@ export const salesforceSearchSalesforceRecordsParamsSchema = z.object({
4081
4135
  keyword: z.string().describe("The keyword to search for"),
4082
4136
  recordType: z.string().describe("The type of record to search for"),
4083
4137
  fieldsToSearch: z.array(z.string()).describe("The fields to search for the keyword"),
4084
- limit: z.number().describe("The maximum number of records to return").optional(),
4085
- maxLimit: z.number().describe("The absolute maximum limit for records that can be returned").optional(),
4138
+ limit: z.coerce.number().describe("The maximum number of records to return").optional(),
4139
+ maxLimit: z.coerce.number().describe("The absolute maximum limit for records that can be returned").optional(),
4086
4140
  });
4087
4141
  export const salesforceSearchSalesforceRecordsOutputSchema = z.object({
4088
4142
  success: z.boolean().describe("Whether the records were successfully retrieved"),
@@ -4114,7 +4168,7 @@ export const salesforceSearchSalesforceRecordsOutputSchema = z.object({
4114
4168
  });
4115
4169
  export const salesforceGetSalesforceRecordsByQueryParamsSchema = z.object({
4116
4170
  query: z.string().describe("The SOQL query to execute"),
4117
- limit: z.number().describe("The maximum number of records to retrieve").optional(),
4171
+ limit: z.coerce.number().describe("The maximum number of records to retrieve").optional(),
4118
4172
  });
4119
4173
  export const salesforceGetSalesforceRecordsByQueryOutputSchema = z.object({
4120
4174
  success: z.boolean().describe("Whether the records were successfully retrieved"),
@@ -4260,7 +4314,7 @@ export const githubCreatePullRequestOutputSchema = z.object({
4260
4314
  success: z.boolean().describe("Whether the pull request was created successfully"),
4261
4315
  error: z.string().describe("The error that occurred if the pull request was not created successfully").optional(),
4262
4316
  pullRequestUrl: z.string().describe("The URL of the created pull request").optional(),
4263
- pullRequestNumber: z.number().describe("The number of the created pull request").optional(),
4317
+ pullRequestNumber: z.coerce.number().describe("The number of the created pull request").optional(),
4264
4318
  });
4265
4319
  export const githubListPullRequestsParamsSchema = z.object({
4266
4320
  repositoryOwner: z.string().describe("The owner of the repository, this is a GitHub username"),
@@ -4276,7 +4330,7 @@ export const githubListPullRequestsOutputSchema = z.object({
4276
4330
  url: z.string().describe("The URL of the pull request").optional(),
4277
4331
  contents: z
4278
4332
  .object({
4279
- number: z.number().describe("The number of the pull request").optional(),
4333
+ number: z.coerce.number().describe("The number of the pull request").optional(),
4280
4334
  title: z.string().describe("The title of the pull request").optional(),
4281
4335
  state: z.string().describe("The state of the pull request (e.g., open, closed)").optional(),
4282
4336
  url: z.string().describe("The URL of the pull request").optional(),
@@ -4297,14 +4351,14 @@ export const githubListPullRequestsOutputSchema = z.object({
4297
4351
  export const githubGetPullRequestDetailsParamsSchema = z.object({
4298
4352
  repositoryOwner: z.string().describe("The owner of the repository, this is a GitHub username"),
4299
4353
  repositoryName: z.string().describe("The name of the repository"),
4300
- pullRequestNumber: z.number().describe("The number of the pull request to get details for"),
4354
+ pullRequestNumber: z.coerce.number().describe("The number of the pull request to get details for"),
4301
4355
  });
4302
4356
  export const githubGetPullRequestDetailsOutputSchema = z.object({
4303
4357
  success: z.boolean().describe("Whether the operation was successful"),
4304
4358
  error: z.string().describe("The error that occurred if the operation was not successful").optional(),
4305
4359
  pullRequest: z
4306
4360
  .object({
4307
- number: z.number().describe("The number of the pull request").optional(),
4361
+ number: z.coerce.number().describe("The number of the pull request").optional(),
4308
4362
  title: z.string().describe("The title of the pull request").optional(),
4309
4363
  description: z.string().nullable().describe("The body/description of the pull request").optional(),
4310
4364
  state: z.enum(["open", "closed", "merged"]).describe("The state of the pull request").optional(),
@@ -4370,10 +4424,10 @@ export const githubGetPullRequestDetailsOutputSchema = z.object({
4370
4424
  mergeable: z.boolean().nullable().describe("Whether the pull request can be merged").optional(),
4371
4425
  mergeableState: z.string().nullable().describe("The mergeable state of the pull request").optional(),
4372
4426
  merged: z.boolean().describe("Whether the pull request has been merged").optional(),
4373
- commits: z.number().describe("The number of commits in the pull request").optional(),
4374
- additions: z.number().describe("The number of additions in the pull request").optional(),
4375
- deletions: z.number().describe("The number of deletions in the pull request").optional(),
4376
- changedFiles: z.number().describe("The number of files changed in the pull request").optional(),
4427
+ commits: z.coerce.number().describe("The number of commits in the pull request").optional(),
4428
+ additions: z.coerce.number().describe("The number of additions in the pull request").optional(),
4429
+ deletions: z.coerce.number().describe("The number of deletions in the pull request").optional(),
4430
+ changedFiles: z.coerce.number().describe("The number of files changed in the pull request").optional(),
4377
4431
  milestone: z
4378
4432
  .object({
4379
4433
  title: z.string().describe("The title of the milestone").optional(),
@@ -4403,7 +4457,7 @@ export const githubGetFileContentOutputSchema = z.object({
4403
4457
  contents: z
4404
4458
  .object({
4405
4459
  content: z.string().describe("The decoded file content as a string").optional(),
4406
- size: z.number().describe("The size of the file in bytes").optional(),
4460
+ size: z.coerce.number().describe("The size of the file in bytes").optional(),
4407
4461
  name: z.string().describe("The name of the file").optional(),
4408
4462
  htmlUrl: z.string().describe("The URL of the file in the Github UI").optional(),
4409
4463
  })
@@ -4428,7 +4482,7 @@ export const githubListDirectoryOutputSchema = z.object({
4428
4482
  .object({
4429
4483
  path: z.string().describe("The path of the file"),
4430
4484
  type: z.string().describe("The type of the file"),
4431
- size: z.number().describe("The size of the file in bytes"),
4485
+ size: z.coerce.number().describe("The size of the file in bytes"),
4432
4486
  })
4433
4487
  .describe("The contents of the file"),
4434
4488
  }))
@@ -4458,7 +4512,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4458
4512
  path: z.string().describe("The path of the file that had a match."),
4459
4513
  sha: z.string().describe("The short SHA of the commit containing the match."),
4460
4514
  url: z.string().describe("The API URL of the file that had a match."),
4461
- score: z.number().describe("The similarity score of the match."),
4515
+ score: z.coerce.number().describe("The similarity score of the match."),
4462
4516
  textMatches: z
4463
4517
  .array(z.object({
4464
4518
  object_url: z.string().describe("The API URL of the matched object.").optional(),
@@ -4467,7 +4521,10 @@ export const githubSearchOrganizationOutputSchema = z.object({
4467
4521
  matches: z
4468
4522
  .array(z.object({
4469
4523
  text: z.string().describe("The text that matched.").optional(),
4470
- indices: z.array(z.number()).describe("Start and end indices of the match.").optional(),
4524
+ indices: z
4525
+ .array(z.coerce.number())
4526
+ .describe("Start and end indices of the match.")
4527
+ .optional(),
4471
4528
  }))
4472
4529
  .describe("List of matches found in the fragment."),
4473
4530
  }))
@@ -4493,7 +4550,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4493
4550
  })
4494
4551
  .describe("The GitHub user who authored the commit.")
4495
4552
  .optional(),
4496
- score: z.number().describe("The commit search relevance score."),
4553
+ score: z.coerce.number().describe("The commit search relevance score."),
4497
4554
  files: z
4498
4555
  .array(z.object({
4499
4556
  filename: z.string().describe("The filename of the changed file."),
@@ -4506,7 +4563,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4506
4563
  .describe("Commit search result content."),
4507
4564
  z
4508
4565
  .object({
4509
- number: z.number().describe("The issue or pull request number."),
4566
+ number: z.coerce.number().describe("The issue or pull request number."),
4510
4567
  title: z.string().describe("The title of the issue or pull request."),
4511
4568
  html_url: z.string().describe("The URL of the issue or pull request."),
4512
4569
  state: z.enum(["open", "closed"]).describe("The state of the issue or pull request."),
@@ -4518,7 +4575,7 @@ export const githubSearchOrganizationOutputSchema = z.object({
4518
4575
  email: z.string().describe("The user’s email address, if available.").optional(),
4519
4576
  })
4520
4577
  .describe("The user who created the issue or pull request."),
4521
- score: z.number().describe("The search result relevance score."),
4578
+ score: z.coerce.number().describe("The search result relevance score."),
4522
4579
  files: z
4523
4580
  .array(z.object({
4524
4581
  filename: z.string().describe("File name in the PR diff."),
@@ -4581,14 +4638,14 @@ export const githubGetBranchOutputSchema = z.object({
4581
4638
  .describe("The commit tree")
4582
4639
  .optional(),
4583
4640
  url: z.string().describe("The commit URL").optional(),
4584
- comment_count: z.number().describe("Number of comments on the commit").optional(),
4641
+ comment_count: z.coerce.number().describe("Number of comments on the commit").optional(),
4585
4642
  })
4586
4643
  .describe("The git commit object")
4587
4644
  .optional(),
4588
4645
  author: z
4589
4646
  .object({
4590
4647
  login: z.string().optional(),
4591
- id: z.number().optional(),
4648
+ id: z.coerce.number().optional(),
4592
4649
  node_id: z.string().optional(),
4593
4650
  avatar_url: z.string().optional(),
4594
4651
  html_url: z.string().optional(),
@@ -4600,7 +4657,7 @@ export const githubGetBranchOutputSchema = z.object({
4600
4657
  committer: z
4601
4658
  .object({
4602
4659
  login: z.string().optional(),
4603
- id: z.number().optional(),
4660
+ id: z.coerce.number().optional(),
4604
4661
  node_id: z.string().optional(),
4605
4662
  avatar_url: z.string().optional(),
4606
4663
  html_url: z.string().optional(),
@@ -4658,8 +4715,8 @@ export const githubListCommitsParamsSchema = z.object({
4658
4715
  .describe("Only show commits before this date (ISO 8601 format, e.g., 2023-12-31T23:59:59Z)")
4659
4716
  .optional(),
4660
4717
  author: z.string().describe("Filter commits by author (GitHub username or email)").optional(),
4661
- perPage: z.number().describe("Number of commits to return per page (default 30, max 100)").optional(),
4662
- page: z.number().describe("Page number for pagination (default 1)").optional(),
4718
+ perPage: z.coerce.number().describe("Number of commits to return per page (default 30, max 100)").optional(),
4719
+ page: z.coerce.number().describe("Page number for pagination (default 1)").optional(),
4663
4720
  });
4664
4721
  export const githubListCommitsOutputSchema = z.object({
4665
4722
  success: z.boolean().describe("Whether the operation was successful"),
@@ -4685,7 +4742,7 @@ export const githubListCommitsOutputSchema = z.object({
4685
4742
  sha: z.string().describe("The SHA of the tree object"),
4686
4743
  url: z.string().describe("The API URL of the tree object"),
4687
4744
  }),
4688
- commentCount: z.number().describe("The number of comments on the commit").optional(),
4745
+ commentCount: z.coerce.number().describe("The number of comments on the commit").optional(),
4689
4746
  }),
4690
4747
  author: z
4691
4748
  .object({ login: z.string().describe("The GitHub username of the commit author").optional() })
@@ -4701,7 +4758,7 @@ export const githubListCommitsOutputSchema = z.object({
4701
4758
  }))
4702
4759
  .describe("List of commits in the repository")
4703
4760
  .optional(),
4704
- totalCount: z.number().describe("Total number of commits (if available)").optional(),
4761
+ totalCount: z.coerce.number().describe("Total number of commits (if available)").optional(),
4705
4762
  hasMore: z.boolean().describe("Whether there are more commits available on subsequent pages").optional(),
4706
4763
  });
4707
4764
  export const notionSearchByTitleParamsSchema = z.object({
@@ -4738,9 +4795,9 @@ export const gitlabSearchGroupOutputSchema = z.object({
4738
4795
  .object({
4739
4796
  metadata: z
4740
4797
  .object({
4741
- id: z.number().describe("The ID of the merge request"),
4742
- iid: z.number().describe("The internal ID of the merge request"),
4743
- project_id: z.number().describe("The ID of the project the merge request belongs to"),
4798
+ id: z.coerce.number().describe("The ID of the merge request"),
4799
+ iid: z.coerce.number().describe("The internal ID of the merge request"),
4800
+ project_id: z.coerce.number().describe("The ID of the project the merge request belongs to"),
4744
4801
  title: z.string().describe("The title of the merge request"),
4745
4802
  web_url: z.string().describe("The URL of the merge request"),
4746
4803
  description: z.string().describe("The description of the merge request").optional(),
@@ -4770,9 +4827,9 @@ export const gitlabSearchGroupOutputSchema = z.object({
4770
4827
  path: z.string().describe("The path of the blob"),
4771
4828
  basename: z.string().describe("The basename of the blob"),
4772
4829
  data: z.string().describe("The data of the blob"),
4773
- project_id: z.number().describe("The ID of the project the blob belongs to"),
4830
+ project_id: z.coerce.number().describe("The ID of the project the blob belongs to"),
4774
4831
  ref: z.string().describe("The ref of the blob"),
4775
- startline: z.number().describe("The start line of the blob"),
4832
+ startline: z.coerce.number().describe("The start line of the blob"),
4776
4833
  filename: z.string().describe("The filename of the blob"),
4777
4834
  web_url: z.string().describe("The URL of the blob"),
4778
4835
  }),
@@ -4821,7 +4878,7 @@ export const gitlabSearchGroupOutputSchema = z.object({
4821
4878
  .optional(),
4822
4879
  });
4823
4880
  export const gitlabGetFileContentParamsSchema = z.object({
4824
- project_id: z.number().describe("Numeric project ID in GitLab (unique per project)"),
4881
+ project_id: z.coerce.number().describe("Numeric project ID in GitLab (unique per project)"),
4825
4882
  path: z.string().describe("The file path to get content from (e.g., src/index.js)"),
4826
4883
  ref: z
4827
4884
  .string()
@@ -4837,7 +4894,7 @@ export const gitlabGetFileContentOutputSchema = z.object({
4837
4894
  url: z.string().describe("The url of the file"),
4838
4895
  contents: z.object({
4839
4896
  content: z.string().describe("The decoded file content as a string"),
4840
- size: z.number().describe("The size of the file in bytes"),
4897
+ size: z.coerce.number().describe("The size of the file in bytes"),
4841
4898
  name: z.string().describe("The name of the file"),
4842
4899
  htmlUrl: z.string().describe("The URL of the file in the GitLab UI"),
4843
4900
  }),
@@ -4846,7 +4903,7 @@ export const gitlabGetFileContentOutputSchema = z.object({
4846
4903
  .optional(),
4847
4904
  });
4848
4905
  export const gitlabGetMergeRequestParamsSchema = z.object({
4849
- project_id: z
4906
+ project_id: z.coerce
4850
4907
  .number()
4851
4908
  .describe("Numeric project ID in GitLab (unique per project). Either this or the project path is required.")
4852
4909
  .optional(),
@@ -4862,9 +4919,9 @@ export const gitlabGetMergeRequestOutputSchema = z.object({
4862
4919
  results: z
4863
4920
  .array(z.object({
4864
4921
  metadata: z.object({
4865
- iid: z.number().describe("The internal ID of the merge request"),
4866
- id: z.number().describe("The ID of the merge request"),
4867
- project_id: z.number().describe("The ID of the project the merge request belongs to"),
4922
+ iid: z.coerce.number().describe("The internal ID of the merge request"),
4923
+ id: z.coerce.number().describe("The ID of the merge request"),
4924
+ project_id: z.coerce.number().describe("The ID of the project the merge request belongs to"),
4868
4925
  title: z.string().describe("The title of the merge request"),
4869
4926
  description: z.string().describe("The description of the merge request"),
4870
4927
  state: z.string().describe("The state of the merge request"),
@@ -4880,7 +4937,7 @@ export const gitlabGetMergeRequestOutputSchema = z.object({
4880
4937
  head_sha: z.string().describe("The head SHA of the merge request"),
4881
4938
  }),
4882
4939
  author: z.object({
4883
- id: z.number().describe("The ID of the author"),
4940
+ id: z.coerce.number().describe("The ID of the author"),
4884
4941
  name: z.string().describe("The name of the author"),
4885
4942
  username: z.string().describe("The username of the author"),
4886
4943
  }),
@@ -4927,7 +4984,7 @@ export const gitlabListDirectoryOutputSchema = z.object({
4927
4984
  name: z.string().describe("The name of the file or directory"),
4928
4985
  path: z.string().describe("The path of the file or directory"),
4929
4986
  type: z.string().describe('The type of the entry (either "blob" for file or "tree" for directory)'),
4930
- size: z
4987
+ size: z.coerce
4931
4988
  .number()
4932
4989
  .describe("The size of the file in bytes (only for blobs; omitted or 0 for trees)")
4933
4990
  .optional(),
@@ -4940,7 +4997,7 @@ export const gitlabListDirectoryOutputSchema = z.object({
4940
4997
  });
4941
4998
  export const linearGetIssuesParamsSchema = z.object({
4942
4999
  query: z.string().describe("Optional query string to filter issues").optional(),
4943
- maxResults: z.number().describe("Optional limit to number of results").optional(),
5000
+ maxResults: z.coerce.number().describe("Optional limit to number of results").optional(),
4944
5001
  });
4945
5002
  export const linearGetIssuesOutputSchema = z.object({
4946
5003
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5025,8 +5082,8 @@ export const linearGetIssueDetailsOutputSchema = z.object({
5025
5082
  })
5026
5083
  .describe("The project the issue belongs to")
5027
5084
  .optional(),
5028
- priority: z.number().describe("The issue priority (0-4)").optional(),
5029
- estimate: z.number().describe("The issue estimate in story points").optional(),
5085
+ priority: z.coerce.number().describe("The issue priority (0-4)").optional(),
5086
+ estimate: z.coerce.number().describe("The issue estimate in story points").optional(),
5030
5087
  dueDate: z.string().describe("The issue due date").optional(),
5031
5088
  createdAt: z.string().describe("When the issue was created").optional(),
5032
5089
  updatedAt: z.string().describe("When the issue was last updated").optional(),
@@ -5070,7 +5127,7 @@ export const linearGetProjectsOutputSchema = z.object({
5070
5127
  })
5071
5128
  .describe("The project lead")
5072
5129
  .optional(),
5073
- progress: z.number().describe("The project progress percentage").optional(),
5130
+ progress: z.coerce.number().describe("The project progress percentage").optional(),
5074
5131
  url: z.string().describe("The project URL").optional(),
5075
5132
  }))
5076
5133
  .describe("List of all projects")
@@ -5088,7 +5145,7 @@ export const linearGetProjectDetailsOutputSchema = z.object({
5088
5145
  name: z.string().describe("The project name").optional(),
5089
5146
  description: z.string().describe("The project description").optional(),
5090
5147
  state: z.string().describe("The project state").optional(),
5091
- progress: z.number().describe("The project progress percentage").optional(),
5148
+ progress: z.coerce.number().describe("The project progress percentage").optional(),
5092
5149
  targetDate: z.string().describe("The project target date").optional(),
5093
5150
  createdAt: z.string().describe("When the project was created").optional(),
5094
5151
  updatedAt: z.string().describe("When the project was last updated").optional(),
@@ -5164,14 +5221,14 @@ export const linearCreateIssueParamsSchema = z.object({
5164
5221
  description: z.string().describe("The description of the issue in markdown format").optional(),
5165
5222
  teamId: z.string().describe("The ID of the team to create the issue for"),
5166
5223
  assigneeId: z.string().describe("The ID of the user to assign the issue to").optional(),
5167
- priority: z
5224
+ priority: z.coerce
5168
5225
  .number()
5169
5226
  .describe("The priority of the issue: 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low")
5170
5227
  .optional(),
5171
5228
  projectId: z.string().describe("The ID of the project to associate the issue with").optional(),
5172
5229
  dueDate: z.string().describe("The due date of the issue in ISO 8601 format (e.g. 2024-12-31)").optional(),
5173
5230
  labelIds: z.array(z.string()).describe("Array of label IDs to apply to the issue").optional(),
5174
- estimate: z.number().describe("The estimate in story points for the issue").optional(),
5231
+ estimate: z.coerce.number().describe("The estimate in story points for the issue").optional(),
5175
5232
  });
5176
5233
  export const linearCreateIssueOutputSchema = z.object({
5177
5234
  success: z.boolean().describe("Whether the issue was created successfully"),
@@ -5191,7 +5248,7 @@ export const hubspotGetContactsParamsSchema = z.object({
5191
5248
  .string()
5192
5249
  .describe("Optional keyword search query to filter contacts by name, email, or other properties")
5193
5250
  .optional(),
5194
- limit: z.number().describe("Maximum number of contacts to return (default 100, max 100)").optional(),
5251
+ limit: z.coerce.number().describe("Maximum number of contacts to return (default 100, max 100)").optional(),
5195
5252
  });
5196
5253
  export const hubspotGetContactsOutputSchema = z.object({
5197
5254
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5242,7 +5299,7 @@ export const hubspotGetCompaniesParamsSchema = z.object({
5242
5299
  .string()
5243
5300
  .describe("Optional keyword search query to filter companies by name, domain, or other properties")
5244
5301
  .optional(),
5245
- limit: z.number().describe("Maximum number of companies to return (default 100, max 100)").optional(),
5302
+ limit: z.coerce.number().describe("Maximum number of companies to return (default 100, max 100)").optional(),
5246
5303
  });
5247
5304
  export const hubspotGetCompaniesOutputSchema = z.object({
5248
5305
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5287,7 +5344,7 @@ export const hubspotGetCompanyDetailsOutputSchema = z.object({
5287
5344
  });
5288
5345
  export const hubspotGetDealsParamsSchema = z.object({
5289
5346
  query: z.string().describe("Optional search query to filter deals by name, stage, or other properties").optional(),
5290
- limit: z.number().describe("Maximum number of deals to return (default 100, max 100)").optional(),
5347
+ limit: z.coerce.number().describe("Maximum number of deals to return (default 100, max 100)").optional(),
5291
5348
  });
5292
5349
  export const hubspotGetDealsOutputSchema = z.object({
5293
5350
  success: z.boolean().describe("Whether the operation was successful"),
@@ -5334,7 +5391,7 @@ export const hubspotGetTicketsParamsSchema = z.object({
5334
5391
  .string()
5335
5392
  .describe("Optional search query to filter tickets by subject, status, or other properties")
5336
5393
  .optional(),
5337
- limit: z.number().describe("Maximum number of tickets to return (default 100, max 100)").optional(),
5394
+ limit: z.coerce.number().describe("Maximum number of tickets to return (default 100, max 100)").optional(),
5338
5395
  });
5339
5396
  export const hubspotGetTicketsOutputSchema = z.object({
5340
5397
  success: z.boolean().describe("Whether the operation was successful"),