universal-mcp-applications 0.1.17__tar.gz → 0.1.18__tar.gz

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.

Potentially problematic release.


This version of universal-mcp-applications might be problematic. Click here for more details.

Files changed (283) hide show
  1. universal_mcp_applications-0.1.18/.gitignore +60 -0
  2. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/PKG-INFO +1 -1
  3. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/pyproject.toml +1 -1
  4. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/docgen.py +10 -10
  5. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/prompts.py +2 -4
  6. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/scripts/run_docgen.py +1 -27
  7. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/falai/app.py +6 -6
  8. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/firecrawl/app.py +10 -10
  9. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/github/app.py +9 -9
  10. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_calendar/app.py +10 -10
  11. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_docs/app.py +12 -12
  12. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_drive/app.py +38 -38
  13. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_gemini/app.py +13 -12
  14. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_mail/app.py +19 -19
  15. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_searchconsole/app.py +8 -8
  16. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/app.py +19 -19
  17. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/linkedin/app.py +4 -4
  18. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ms_teams/app.py +28 -28
  19. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/outlook/app.py +9 -9
  20. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/reddit/app.py +90 -89
  21. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/scraper/app.py +31 -31
  22. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sharepoint/app.py +7 -7
  23. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/unipile/app.py +14 -14
  24. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/uv.lock +202 -200
  25. universal_mcp_applications-0.1.17/.gitignore +0 -40
  26. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/GEMINI.md +0 -0
  27. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/LICENSE +0 -0
  28. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/README.md +0 -0
  29. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/bump_and_release.sh +0 -0
  30. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/examples/children_story_builder.py +0 -0
  31. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/tests/test_applications.py +0 -0
  32. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ahrefs/README.md +0 -0
  33. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ahrefs/__init__.py +0 -0
  34. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ahrefs/app.py +0 -0
  35. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/airtable/README.md +0 -0
  36. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/airtable/__init__.py +0 -0
  37. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/airtable/app.py +0 -0
  38. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/apollo/README.md +0 -0
  39. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/apollo/__init__.py +0 -0
  40. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/apollo/app.py +0 -0
  41. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/asana/README.md +0 -0
  42. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/asana/__init__.py +0 -0
  43. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/asana/app.py +0 -0
  44. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/aws_s3/README.md +0 -0
  45. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/aws_s3/__init__.py +0 -0
  46. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/aws_s3/app.py +0 -0
  47. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/bill/README.md +0 -0
  48. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/bill/__init__.py +0 -0
  49. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/bill/app.py +0 -0
  50. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/box/README.md +0 -0
  51. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/box/__init__.py +0 -0
  52. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/box/app.py +0 -0
  53. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/braze/README.md +0 -0
  54. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/braze/__init__.py +0 -0
  55. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/braze/app.py +0 -0
  56. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/cal_com_v2/README.md +0 -0
  57. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/cal_com_v2/__init__.py +0 -0
  58. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/cal_com_v2/app.py +0 -0
  59. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/calendly/README.md +0 -0
  60. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/calendly/__init__.py +0 -0
  61. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/calendly/app.py +0 -0
  62. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/canva/README.md +0 -0
  63. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/canva/__init__.py +0 -0
  64. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/canva/app.py +0 -0
  65. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/clickup/README.md +0 -0
  66. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/clickup/__init__.py +0 -0
  67. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/clickup/app.py +0 -0
  68. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/coda/README.md +0 -0
  69. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/coda/__init__.py +0 -0
  70. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/coda/app.py +0 -0
  71. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/confluence/README.md +0 -0
  72. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/confluence/__init__.py +0 -0
  73. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/confluence/app.py +0 -0
  74. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/contentful/README.md +0 -0
  75. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/contentful/__init__.py +0 -0
  76. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/contentful/app.py +0 -0
  77. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/crustdata/README.md +0 -0
  78. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/crustdata/__init__.py +0 -0
  79. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/crustdata/app.py +0 -0
  80. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/dialpad/README.md +0 -0
  81. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/dialpad/__init__.py +0 -0
  82. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/dialpad/app.py +0 -0
  83. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/digitalocean/README.md +0 -0
  84. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/digitalocean/__init__.py +0 -0
  85. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/digitalocean/app.py +0 -0
  86. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/domain_checker/README.md +0 -0
  87. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/domain_checker/__init__.py +0 -0
  88. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/domain_checker/app.py +0 -0
  89. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/e2b/README.md +0 -0
  90. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/e2b/__init__.py +0 -0
  91. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/e2b/app.py +0 -0
  92. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/elevenlabs/README.md +0 -0
  93. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/elevenlabs/__init__.py +0 -0
  94. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/elevenlabs/app.py +0 -0
  95. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/exa/README.md +0 -0
  96. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/exa/__init__.py +0 -0
  97. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/exa/app.py +0 -0
  98. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/falai/README.md +0 -0
  99. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/falai/__init__.py +0 -0
  100. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/figma/README.md +0 -0
  101. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/figma/__init__.py +0 -0
  102. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/figma/app.py +0 -0
  103. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/file_system/__init__.py +0 -0
  104. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/file_system/app.py +0 -0
  105. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/firecrawl/README.md +0 -0
  106. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/firecrawl/__init__.py +0 -0
  107. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fireflies/README.md +0 -0
  108. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fireflies/__init__.py +0 -0
  109. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fireflies/app.py +0 -0
  110. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/README.md +0 -0
  111. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/__init__.py +0 -0
  112. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/app.py +0 -0
  113. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/api.py +0 -0
  114. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/fixtures.py +0 -0
  115. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/helper.py +0 -0
  116. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/league_utils.py +0 -0
  117. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/fpl/utils/position_utils.py +0 -0
  118. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ghost_content/README.md +0 -0
  119. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ghost_content/__init__.py +0 -0
  120. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ghost_content/app.py +0 -0
  121. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/github/README.md +0 -0
  122. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/github/__init__.py +0 -0
  123. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/gong/README.md +0 -0
  124. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/gong/__init__.py +0 -0
  125. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/gong/app.py +0 -0
  126. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_calendar/README.md +0 -0
  127. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_calendar/__init__.py +0 -0
  128. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_docs/README.md +0 -0
  129. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_docs/__init__.py +0 -0
  130. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_drive/README.md +0 -0
  131. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_drive/__init__.py +0 -0
  132. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_gemini/README.md +0 -0
  133. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_gemini/__init__.py +0 -0
  134. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_mail/README.md +0 -0
  135. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_mail/__init__.py +0 -0
  136. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_searchconsole/README.md +0 -0
  137. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_searchconsole/__init__.py +0 -0
  138. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/README.md +0 -0
  139. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/__init__.py +0 -0
  140. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/google_sheet/helper.py +0 -0
  141. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hashnode/README.md +0 -0
  142. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hashnode/__init__.py +0 -0
  143. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hashnode/app.py +0 -0
  144. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/heygen/README.md +0 -0
  145. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/heygen/__init__.py +0 -0
  146. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/heygen/app.py +0 -0
  147. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/http_tools/README.md +0 -0
  148. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/http_tools/__init__.py +0 -0
  149. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/http_tools/app.py +0 -0
  150. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hubspot/README.md +0 -0
  151. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hubspot/__init__.py +0 -0
  152. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/hubspot/app.py +0 -0
  153. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/jira/README.md +0 -0
  154. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/jira/__init__.py +0 -0
  155. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/jira/app.py +0 -0
  156. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/klaviyo/README.md +0 -0
  157. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/klaviyo/__init__.py +0 -0
  158. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/klaviyo/app.py +0 -0
  159. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/linkedin/README.md +0 -0
  160. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/linkedin/__init__.py +0 -0
  161. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/mailchimp/README.md +0 -0
  162. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/mailchimp/__init__.py +0 -0
  163. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/mailchimp/app.py +0 -0
  164. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/markitdown/README.md +0 -0
  165. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/markitdown/__init__.py +0 -0
  166. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/markitdown/app.py +0 -0
  167. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/miro/README.md +0 -0
  168. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/miro/__init__.py +0 -0
  169. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/miro/app.py +0 -0
  170. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ms_teams/README.md +0 -0
  171. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/ms_teams/__init__.py +0 -0
  172. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/neon/README.md +0 -0
  173. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/neon/__init__.py +0 -0
  174. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/neon/app.py +0 -0
  175. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/notion/README.md +0 -0
  176. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/notion/__init__.py +0 -0
  177. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/notion/app.py +0 -0
  178. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/openai/README.md +0 -0
  179. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/openai/__init__.py +0 -0
  180. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/openai/app.py +0 -0
  181. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/outlook/README.md +0 -0
  182. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/outlook/__init__.py +0 -0
  183. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/perplexity/README.md +0 -0
  184. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/perplexity/__init__.py +0 -0
  185. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/perplexity/app.py +0 -0
  186. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/pipedrive/README.md +0 -0
  187. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/pipedrive/__init__.py +0 -0
  188. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/pipedrive/app.py +0 -0
  189. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/posthog/README.md +0 -0
  190. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/posthog/__init__.py +0 -0
  191. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/posthog/app.py +0 -0
  192. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/reddit/README.md +0 -0
  193. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/reddit/__init__.py +0 -0
  194. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/replicate/README.md +0 -0
  195. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/replicate/__init__.py +0 -0
  196. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/replicate/app.py +0 -0
  197. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/resend/README.md +0 -0
  198. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/resend/__init__.py +0 -0
  199. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/resend/app.py +0 -0
  200. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/retell/README.md +0 -0
  201. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/retell/__init__.py +0 -0
  202. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/retell/app.py +0 -0
  203. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/rocketlane/README.md +0 -0
  204. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/rocketlane/__init__.py +0 -0
  205. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/rocketlane/app.py +0 -0
  206. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/scraper/README.md +0 -0
  207. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/scraper/__init__.py +0 -0
  208. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semanticscholar/README.md +0 -0
  209. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semanticscholar/__init__.py +0 -0
  210. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semanticscholar/app.py +0 -0
  211. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semrush/README.md +0 -0
  212. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semrush/__init__.py +0 -0
  213. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/semrush/app.py +0 -0
  214. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sendgrid/README.md +0 -0
  215. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sendgrid/__init__.py +0 -0
  216. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sendgrid/app.py +0 -0
  217. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sentry/README.md +0 -0
  218. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sentry/__init__.py +0 -0
  219. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sentry/app.py +0 -0
  220. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/serpapi/README.md +0 -0
  221. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/serpapi/__init__.py +0 -0
  222. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/serpapi/app.py +0 -0
  223. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sharepoint/README.md +0 -0
  224. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/sharepoint/__init__.py +0 -0
  225. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shopify/README.md +0 -0
  226. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shopify/__init__.py +0 -0
  227. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shopify/app.py +0 -0
  228. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shortcut/README.md +0 -0
  229. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shortcut/__init__.py +0 -0
  230. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/shortcut/app.py +0 -0
  231. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/slack/README.md +0 -0
  232. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/slack/__init__.py +0 -0
  233. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/slack/app.py +0 -0
  234. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/spotify/README.md +0 -0
  235. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/spotify/__init__.py +0 -0
  236. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/spotify/app.py +0 -0
  237. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/supabase/README.md +0 -0
  238. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/supabase/__init__.py +0 -0
  239. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/supabase/app.py +0 -0
  240. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/tavily/README.md +0 -0
  241. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/tavily/__init__.py +0 -0
  242. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/tavily/app.py +0 -0
  243. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/trello/README.md +0 -0
  244. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/trello/__init__.py +0 -0
  245. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/trello/app.py +0 -0
  246. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twilio/README.md +0 -0
  247. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twilio/__init__.py +0 -0
  248. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twilio/app.py +0 -0
  249. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/README.md +0 -0
  250. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/__init__.py +0 -0
  251. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/__init__.py +0 -0
  252. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/api_segment_base.py +0 -0
  253. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/compliance_api.py +0 -0
  254. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +0 -0
  255. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/dm_events_api.py +0 -0
  256. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/likes_api.py +0 -0
  257. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/lists_api.py +0 -0
  258. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/openapi_json_api.py +0 -0
  259. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/spaces_api.py +0 -0
  260. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/trends_api.py +0 -0
  261. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/tweets_api.py +0 -0
  262. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/usage_api.py +0 -0
  263. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/api_segments/users_api.py +0 -0
  264. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/twitter/app.py +0 -0
  265. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/unipile/README.md +0 -0
  266. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/unipile/__init__.py +0 -0
  267. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/README.md +0 -0
  268. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/__init__.py +0 -0
  269. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/app.py +0 -0
  270. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/audio.py +0 -0
  271. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp/whatsapp.py +0 -0
  272. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp_business/README.md +0 -0
  273. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp_business/__init__.py +0 -0
  274. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/whatsapp_business/app.py +0 -0
  275. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/wrike/README.md +0 -0
  276. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/wrike/__init__.py +0 -0
  277. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/wrike/app.py +0 -0
  278. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/youtube/README.md +0 -0
  279. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/youtube/__init__.py +0 -0
  280. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/youtube/app.py +0 -0
  281. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/zenquotes/README.md +0 -0
  282. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/zenquotes/__init__.py +0 -0
  283. {universal_mcp_applications-0.1.17 → universal_mcp_applications-0.1.18}/src/universal_mcp/applications/zenquotes/app.py +0 -0
@@ -0,0 +1,60 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ # Environment variables
13
+ .env
14
+ .env.local
15
+
16
+
17
+ dump/
18
+
19
+
20
+ # SQLite database
21
+ *.db
22
+ *.sqlite
23
+ *.sqlite3
24
+ *.db-shm
25
+ *.db-wal
26
+
27
+
28
+ # Pyright
29
+ .pyright
30
+
31
+ # Ruff
32
+ .ruff_cache
33
+
34
+ # Pytest
35
+ .pytest_cache
36
+
37
+
38
+ # Local config
39
+ local_config.json
40
+
41
+
42
+ # Test Artifacts
43
+ test_artifacts/
44
+ src/universal_mcp/applications/complex/
45
+ src/universal_mcp/applications/test/
46
+ src/universal_mcp/applications/test_with_docs/
47
+ src/universal_mcp/applications/test_without_docs/
48
+
49
+ # Temporary files
50
+ tmp/
51
+
52
+
53
+ # Docs
54
+ site/
55
+ .cache/
56
+
57
+ # langgraph temporary files
58
+ .langgraph_api/
59
+ langgraph.json
60
+ agentr-1-6c4ebd5cc914.json
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: universal-mcp-applications
3
- Version: 0.1.17
3
+ Version: 0.1.18
4
4
  Summary: A Universal MCP Application: universal_mcp_applications
5
5
  Project-URL: Homepage, https://github.com/universal-mcp/applications
6
6
  Project-URL: Repository, https://github.com/universal-mcp/applications
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "universal-mcp-applications"
9
- version = "0.1.17"
9
+ version = "0.1.18"
10
10
  description = "A Universal MCP Application: universal_mcp_applications"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -30,7 +30,7 @@ class DescriptionOutput(BaseModel):
30
30
  """Structure for the generated description output."""
31
31
 
32
32
  description: str = Field(description="A clear, detailed description of what the function does")
33
- suggested_name: Optional[str] = Field(None, description="A better name for the function, if applicable")
33
+ # suggested_name: Optional[str] = Field(None, description="A better name for the function, if applicable")
34
34
 
35
35
 
36
36
  class FunctionExtractor(ast.NodeVisitor):
@@ -244,7 +244,7 @@ def generate_description(
244
244
  parsed_data = extract_json_from_text(response_text)
245
245
  return DescriptionOutput(
246
246
  description=parsed_data.get("description", "No description available."),
247
- suggested_name=parsed_data.get("suggested_name"),
247
+ # suggested_name=parsed_data.get("suggested_name"),
248
248
  )
249
249
  except ValueError as e:
250
250
  print(f" - JSON extraction failed: {e}")
@@ -442,7 +442,7 @@ def process_file(file_path: str, model: str = "perplexity/sonar") -> int:
442
442
  # 1. Generate new description and check for suggested name
443
443
  output = generate_description(function_code, original_content, model)
444
444
  new_description = output.description.strip()
445
- suggested_name = output.suggested_name
445
+ # suggested_name = output.suggested_name
446
446
 
447
447
  if not new_description or "Error generating description" in new_description:
448
448
  print(f" - Failed to generate description for '{function_name}', skipping.")
@@ -456,10 +456,10 @@ def process_file(file_path: str, model: str = "perplexity/sonar") -> int:
456
456
  # 3. Handle function renaming if suggested
457
457
  code_to_update = function_code
458
458
  is_renamed = False
459
- if suggested_name and suggested_name != function_name:
460
- print(f" - Renaming function '{function_name}' to '{suggested_name}'")
461
- code_to_update = rename_function_in_code(code_to_update, function_name, suggested_name)
462
- is_renamed = True
459
+ # if suggested_name and suggested_name != function_name:
460
+ # print(f" - Renaming function '{function_name}' to '{suggested_name}'")
461
+ # code_to_update = rename_function_in_code(code_to_update, function_name, suggested_name)
462
+ # is_renamed = True
463
463
 
464
464
  # 4. Insert the new docstring back into the (potentially renamed) function code
465
465
  updated_function_block = insert_docstring_into_function(code_to_update, reconstructed_docstring)
@@ -468,11 +468,11 @@ def process_file(file_path: str, model: str = "perplexity/sonar") -> int:
468
468
  if updated_function_block != function_code:
469
469
  updated_content = updated_content.replace(function_code, updated_function_block)
470
470
  count += 1
471
- print(f" - Updated function block for '{suggested_name or function_name}'.")
471
+ print(f" - Updated function block for '{function_name}'.")
472
472
 
473
473
  # 6. If the function was renamed, also update the list_tools method
474
- if is_renamed:
475
- updated_content = update_list_tools_method(updated_content, function_name, suggested_name)
474
+ # if is_renamed:
475
+ # updated_content = update_list_tools_method(updated_content, function_name, suggested_name)
476
476
 
477
477
  if updated_content != original_content:
478
478
  with open(file_path, "w", encoding="utf-8") as f:
@@ -6,7 +6,6 @@ You will be given the full context of a Python script, followed by a request to
6
6
 
7
7
  Your tasks are:
8
8
  1. **Write a High-Quality Description:** The description should be comprehensive, clear, and accurately reflect the function's purpose.
9
- 2. **Suggest a Better Name (If Necessary):** Analyze the function's original name. If you believe a different name would be more descriptive or intuitive based on what the function does, suggest a new one. If the current name is good, you can omit this suggestion.
10
9
  3. **Differentiate Similar Functions:** Use the full script context to clarify the unique role of this function, especially if other functions have similar names or functionality.
11
10
 
12
11
  The full script content is:
@@ -15,14 +14,13 @@ The full script content is:
15
14
  --- SCRIPT END ---
16
15
  """
17
16
 
18
- USER_PROMPT_TEMPLATE = """Based on the full script provided, analyze the following Python function. Generate a high-quality description and, if you think it's necessary, suggest a better name for it.
17
+ USER_PROMPT_TEMPLATE = """Based on the full script provided, analyze the following Python function. Generate a high-quality description.
19
18
 
20
19
  Function to analyze:
21
20
  ```python
22
21
  {function_code}
23
- Respond ONLY in the following JSON format. If you do not want to suggest a new name, you can omit the "suggested_name" key.
22
+ Respond ONLY in the following JSON format.
24
23
  {{
25
24
  "description": "A clear and detailed description of what the function does, taking into account the full script context.",
26
- "suggested_name": "A more descriptive and clear name for the function (optional)"
27
25
  }}
28
26
  """
@@ -3,41 +3,15 @@ import os
3
3
  import subprocess
4
4
 
5
5
  APPS = [
6
- "aws_s3",
7
- "calendly",
8
- "canva",
9
- "domain_checker",
10
- "e2b",
11
- "elevenlabs",
12
- "exa",
13
- "falai",
14
- "file_system",
15
- "firecrawl",
16
- "fireflies",
17
- "fpl",
6
+ "google_mail",
18
7
  "google_calendar",
19
8
  "google_docs",
20
9
  "google_drive",
21
10
  "google_searchconsole",
22
11
  "google_sheet",
23
- "http_tools",
24
12
  "linkedin",
25
13
  "ms_teams",
26
- "openai",
27
14
  "outlook",
28
- "replicate",
29
- "resend",
30
- "scraper",
31
- "serpapi",
32
- "sharepoint",
33
- "slack",
34
- "tavily",
35
- "twitter",
36
- "unipile",
37
- "whatsapp",
38
- "whatsapp_business",
39
- "youtube",
40
- "zenquotes",
41
15
  ]
42
16
 
43
17
  def main():
@@ -29,7 +29,7 @@ class FalaiApp(APIApplication):
29
29
  @property
30
30
  def fal_client(self) -> AsyncClient:
31
31
  """
32
- A cached property that lazily initializes an `AsyncClient` instance for API communication. It retrieves the API key from the configured integration, centralizing authentication for all Fal AI operations. Raises `NotAuthorizedError` if the key is missing.
32
+ A cached property that lazily initializes an `AsyncClient` instance. It retrieves the API key from the configured integration, providing a single, centralized authentication point for all methods that interact with the Fal AI API. Raises `NotAuthorizedError` if credentials are not found.
33
33
  """
34
34
  if self._fal_client is None:
35
35
  credentials = self.integration.get_credentials()
@@ -101,7 +101,7 @@ class FalaiApp(APIApplication):
101
101
  priority: Priority | None = None,
102
102
  ) -> str:
103
103
  """
104
- Submits a job to the Fal AI queue for asynchronous processing. It immediately returns a unique request ID for tracking the job's lifecycle with the `status`, `result`, and `cancel` methods. Unlike the synchronous `run` method, this function does not wait for the job's completion.
104
+ Submits a job to the Fal AI queue for asynchronous processing, immediately returning a request ID. This contrasts with the `run` method, which waits for completion. The returned ID is used by `check_status`, `get_result`, and `cancel` to manage the job's lifecycle.
105
105
 
106
106
  Args:
107
107
  arguments: A dictionary of arguments for the application
@@ -181,7 +181,7 @@ class FalaiApp(APIApplication):
181
181
  self, request_id: str, application: str = "fal-ai/flux/dev"
182
182
  ) -> Any:
183
183
  """
184
- Fetches the final output for an asynchronous job, identified by its request_id. This function blocks execution, waiting for the job initiated by `submit` to complete before returning the result. It complements the non-blocking `status` check by providing a synchronous way to get a completed job's data.
184
+ Retrieves the final result of an asynchronous job, identified by its `request_id`. This function waits for the job, initiated via `submit`, to complete. Unlike the non-blocking `check_status`, this method blocks execution to fetch and return the job's actual output upon completion.
185
185
 
186
186
  Args:
187
187
  request_id: The unique identifier of the submitted request
@@ -215,7 +215,7 @@ class FalaiApp(APIApplication):
215
215
  self, request_id: str, application: str = "fal-ai/flux/dev"
216
216
  ) -> None:
217
217
  """
218
- Asynchronously cancels a running or queued Fal AI job identified by its `request_id`. This function complements the `submit` method, providing a way to terminate asynchronous tasks before completion. API errors during the cancellation process are wrapped in a `ToolError`.
218
+ Asynchronously cancels a running or queued Fal AI job using its `request_id`. This function complements the `submit` method, providing a way to terminate asynchronous tasks before completion. It raises a `ToolError` if the cancellation request fails.
219
219
 
220
220
  Args:
221
221
  request_id: The unique identifier of the submitted Fal AI request to cancel
@@ -244,7 +244,7 @@ class FalaiApp(APIApplication):
244
244
 
245
245
  async def upload_file(self, path: str) -> str:
246
246
  """
247
- Asynchronously uploads a local file from a specified path to the Fal Content Delivery Network (CDN). Upon success, it returns a public URL for the file, making it accessible for use as input in other Fal AI application requests. A `ToolError` is raised on failure.
247
+ Asynchronously uploads a local file to the Fal Content Delivery Network (CDN), returning a public URL. This URL makes the file accessible for use as input in other Fal AI job execution methods like `run` or `submit`. A `ToolError` is raised if the upload fails.
248
248
 
249
249
  Args:
250
250
  path: The absolute or relative path to the local file
@@ -280,7 +280,7 @@ class FalaiApp(APIApplication):
280
280
  hint: str | None = None,
281
281
  ) -> Any:
282
282
  """
283
- A specialized wrapper for the `run` method that synchronously generates images using the 'fal-ai/flux/dev' model. It simplifies image creation with common parameters like `prompt` and `seed`, waits for the task to complete, and returns the result containing image URLs and metadata.
283
+ A specialized wrapper for the `run` method that synchronously generates images using the 'fal-ai/flux/dev' model. It simplifies image creation with common parameters like `prompt` and `seed`, waits for the task to complete, and directly returns the result containing image URLs and metadata.
284
284
 
285
285
  Args:
286
286
  prompt: The text prompt used to guide the image generation
@@ -38,7 +38,7 @@ class FirecrawlApp(APIApplication):
38
38
  @property
39
39
  def firecrawl_api_key(self) -> str:
40
40
  """
41
- A property that lazily retrieves and caches the Firecrawl API key from the configured integration. On first access, it fetches credentials and raises a `NotAuthorizedError` if the key is unobtainable, ensuring all subsequent API calls are properly authenticated.
41
+ A property that lazily retrieves and caches the Firecrawl API key from the configured integration. On first access, it fetches credentials and raises a `NotAuthorizedError` if the key is unobtainable, ensuring all subsequent API calls within the application are properly authenticated before execution.
42
42
  """
43
43
  if self._firecrawl_api_key is None:
44
44
  if not self.integration:
@@ -166,7 +166,7 @@ class FirecrawlApp(APIApplication):
166
166
 
167
167
  def scrape_url(self, url: str) -> Any:
168
168
  """
169
- Synchronously scrapes a single web page's content using the Firecrawl service. This function executes immediately and returns the extracted data, unlike the asynchronous `start_batch_scrape` or `start_crawl` jobs which require status checks. Returns an error message on failure.
169
+ Synchronously scrapes a single URL, immediately returning its content. This provides a direct method for single-page scraping, contrasting with asynchronous, job-based functions like `start_crawl` (for entire sites) and `start_batch_scrape` (for multiple URLs).
170
170
 
171
171
  Args:
172
172
  url: The URL of the web page to scrape.
@@ -198,7 +198,7 @@ class FirecrawlApp(APIApplication):
198
198
 
199
199
  def search(self, query: str) -> dict[str, Any] | str:
200
200
  """
201
- Executes a web search using the Firecrawl service for a specified query. It returns a dictionary of results on success or an error string on failure, raising specific exceptions for authorization or SDK installation issues. This provides a direct, synchronous method for information retrieval.
201
+ Executes a synchronous web search using the Firecrawl service for a given query. Unlike scrape_url which fetches a single page, this function discovers web content. It returns a dictionary of results on success or an error string on failure, raising exceptions for authorization or SDK issues.
202
202
 
203
203
  Args:
204
204
  query: The search query string.
@@ -232,7 +232,7 @@ class FirecrawlApp(APIApplication):
232
232
  url: str,
233
233
  ) -> dict[str, Any] | str:
234
234
  """
235
- Initiates an asynchronous Firecrawl job to crawl a website starting from a given URL. It returns immediately with a job ID, which can be used with `check_crawl_status` to monitor progress. This differs from `scrape_url`, which performs a synchronous scrape of a single page.
235
+ Starts an asynchronous Firecrawl job to crawl a website from a given URL, returning a job ID. Unlike the synchronous `scrape_url` for single pages, this function initiates a comprehensive, link-following crawl. Progress can be monitored using the `check_crawl_status` function with the returned ID.
236
236
 
237
237
  Args:
238
238
  url: The starting URL for the crawl.
@@ -268,7 +268,7 @@ class FirecrawlApp(APIApplication):
268
268
 
269
269
  def check_crawl_status(self, job_id: str) -> dict[str, Any] | str:
270
270
  """
271
- Retrieves the status of an asynchronous Firecrawl crawl job using its unique ID. Returns a dictionary with the job's details on success or an error message on failure. This function specifically handles jobs initiated by `start_crawl`, distinct from checkers for batch scrapes or extractions.
271
+ Retrieves the status of an asynchronous Firecrawl job using its unique ID. As the counterpart to `start_crawl`, this function exclusively monitors website crawl progress, distinct from status checkers for batch scraping or data extraction jobs. Returns job details on success or an error message on failure.
272
272
 
273
273
  Args:
274
274
  job_id: The ID of the crawl job to check.
@@ -303,7 +303,7 @@ class FirecrawlApp(APIApplication):
303
303
 
304
304
  def cancel_crawl(self, job_id: str) -> dict[str, Any] | str:
305
305
  """
306
- Cancels a running asynchronous Firecrawl crawl job identified by its unique ID. As part of the crawl job lifecycle, this function terminates a process initiated by `start_crawl`, returning a confirmation status upon success or an error message if the cancellation fails or is not supported.
306
+ Cancels a running asynchronous Firecrawl crawl job using its unique ID. As a lifecycle management tool for jobs initiated by `start_crawl`, it returns a confirmation status upon success or an error message on failure, distinguishing it from controls for other job types.
307
307
 
308
308
  Args:
309
309
  job_id: The ID of the crawl job to cancel.
@@ -342,7 +342,7 @@ class FirecrawlApp(APIApplication):
342
342
  urls: list[str],
343
343
  ) -> dict[str, Any] | str:
344
344
  """
345
- Initiates an asynchronous batch job to scrape a list of URLs using Firecrawl. It returns a response containing a job ID, which can be tracked with `check_batch_scrape_status`. This differs from the synchronous `scrape_url` which handles a single URL and returns data directly.
345
+ Initiates an asynchronous Firecrawl job to scrape a list of URLs. It returns a job ID for tracking with `check_batch_scrape_status`. Unlike the synchronous `scrape_url` which processes a single URL, this function handles bulk scraping and doesn't wait for completion.
346
346
 
347
347
  Args:
348
348
  urls: A list of URLs to scrape.
@@ -377,7 +377,7 @@ class FirecrawlApp(APIApplication):
377
377
 
378
378
  def check_batch_scrape_status(self, job_id: str) -> dict[str, Any] | str:
379
379
  """
380
- Checks the status of a previously initiated asynchronous Firecrawl batch scrape job using its job ID. It returns detailed progress information or an error message. This function is the counterpart to `start_batch_scrape` for monitoring multi-URL scraping tasks.
380
+ Checks the status of an asynchronous batch scrape job using its job ID. As the counterpart to `start_batch_scrape`, it specifically monitors multi-URL scraping tasks, distinct from checkers for site-wide crawls (`check_crawl_status`) or AI-driven extractions (`check_extract_status`). Returns detailed progress or an error message.
381
381
 
382
382
  Args:
383
383
  job_id: The ID of the batch scrape job to check.
@@ -421,7 +421,7 @@ class FirecrawlApp(APIApplication):
421
421
  allow_external_links: bool | None = False,
422
422
  ) -> dict[str, Any]:
423
423
  """
424
- Performs synchronous, AI-driven data extraction from URLs using an optional prompt or schema. Unlike asynchronous job functions (e.g., `start_crawl`), it returns the structured data directly. This function raises `NotAuthorizedError` or `ToolError` on failure, contrasting with others that return an error string.
424
+ Performs synchronous, AI-driven data extraction from URLs using an optional prompt or schema. Unlike asynchronous jobs like `start_crawl`, it returns structured data directly. This function raises an exception on failure, contrasting with other methods in the class that return an error string upon failure.
425
425
 
426
426
  Args:
427
427
  urls: A list of URLs to extract data from.
@@ -476,7 +476,7 @@ class FirecrawlApp(APIApplication):
476
476
 
477
477
  def check_extract_status(self, job_id: str) -> dict[str, Any] | str:
478
478
  """
479
- Checks the status of a specific asynchronous, AI-powered data extraction job on Firecrawl using its job ID. This is distinct from `check_crawl_status` for web crawling and `check_batch_scrape_status` for bulk scraping, as it specifically monitors AI-driven extractions.
479
+ Checks the status of an asynchronous, AI-powered Firecrawl data extraction job using its ID. Unlike `check_crawl_status` or `check_batch_scrape_status`, this function specifically monitors structured data extraction tasks, returning the job's progress or an error message on failure.
480
480
 
481
481
  Args:
482
482
  job_id: The ID of the extraction job to check.
@@ -25,7 +25,7 @@ class GithubApp(APIApplication):
25
25
 
26
26
  def star_repository(self, repo_full_name: str) -> str:
27
27
  """
28
- Stars a GitHub repository for the authenticated user via an API request. It uses the repository's full name ('owner/repo') and returns a string message indicating whether the operation was successful, the repository was not found, or an error occurred.
28
+ Stars a GitHub repository for the authenticated user. This user-centric action takes the full repository name ('owner/repo') and returns a simple string message confirming the outcome, unlike other functions that list or create repository content like issues or pull requests.
29
29
 
30
30
  Args:
31
31
  repo_full_name: The full name of the repository in 'owner/repo' format (e.g., 'octocat/Hello-World')
@@ -52,7 +52,7 @@ class GithubApp(APIApplication):
52
52
 
53
53
  def list_recent_commits(self, repo_full_name: str) -> str:
54
54
  """
55
- Fetches and formats the 12 most recent commits from a GitHub repository. It returns a human-readable string summarizing each commit's hash, author, and message, providing a quick overview of recent code changes, distinct from functions that list branches, issues, or pull requests.
55
+ Fetches and formats the 12 most recent commits from a repository. It returns a human-readable string summarizing each commit's hash, author, and message, providing a focused overview of recent code changes, unlike functions that list branches, issues, or pull requests.
56
56
 
57
57
  Args:
58
58
  repo_full_name: The full name of the repository in 'owner/repo' format
@@ -85,7 +85,7 @@ class GithubApp(APIApplication):
85
85
 
86
86
  def list_branches(self, repo_full_name: str) -> str:
87
87
  """
88
- Retrieves all branches for a specified GitHub repository via the API. It formats the results into a human-readable string listing each branch name, suitable for direct user display. This contrasts with functions like `list_issues`, which return raw API data.
88
+ Fetches all branches for a specified GitHub repository and formats them into a human-readable string. This method is distinct from others like `search_issues`, as it returns a formatted list for display rather than raw JSON data for programmatic use.
89
89
 
90
90
  Args:
91
91
  repo_full_name: The full name of the repository in 'owner/repo' format (e.g., 'octocat/Hello-World')
@@ -115,7 +115,7 @@ class GithubApp(APIApplication):
115
115
 
116
116
  def list_pull_requests(self, repo_full_name: str, state: str = "open") -> str:
117
117
  """
118
- Fetches pull requests for a repository, filtered by state (e.g., 'open'). It returns a formatted string summarizing each PR's details. This differs from `get_pull_request`, which fetches a single PR, and `list_issues`, which returns raw JSON data for a different entity.
118
+ Fetches pull requests for a repository, filtered by state (e.g., 'open'). It returns a formatted string summarizing each PR's details, distinguishing it from `get_pull_request` (single PR) and `search_issues` (raw issue data).
119
119
 
120
120
  Args:
121
121
  repo_full_name: The full name of the repository in the format 'owner/repo' (e.g., 'tensorflow/tensorflow')
@@ -193,7 +193,7 @@ class GithubApp(APIApplication):
193
193
 
194
194
  def get_pull_request(self, repo_full_name: str, pull_number: int) -> str:
195
195
  """
196
- Fetches a specific pull request from a repository by its number. The function returns a formatted string summarizing its title, creator, status, and description, unlike `list_pull_requests`, which fetches a list.
196
+ Fetches a specific pull request from a repository using its unique number. It returns a human-readable string summarizing the PR's title, creator, status, and description, unlike `list_pull_requests` which retrieves a list of multiple PRs.
197
197
 
198
198
  Args:
199
199
  repo_full_name: The full repository name in 'owner/repo' format (e.g., 'octocat/Hello-World')
@@ -239,7 +239,7 @@ class GithubApp(APIApplication):
239
239
  draft: bool = False,
240
240
  ) -> dict[str, Any]:
241
241
  """
242
- Creates a pull request in a repository between specified `head` and `base` branches. It can also convert an existing issue into a pull request by providing an issue number. Returns the complete GitHub API response as a dictionary upon successful creation.
242
+ Creates a pull request between specified `head` and `base` branches, or converts an issue into a PR. Unlike read functions that return formatted strings, this write operation returns the raw API response as a dictionary, providing comprehensive data on the newly created pull request.
243
243
 
244
244
  Args:
245
245
  repo_full_name: The full name of the repository (e.g. 'owner/repo')
@@ -285,7 +285,7 @@ class GithubApp(APIApplication):
285
285
  self, repo_full_name: str, title: str, body: str = "", labels=None
286
286
  ) -> str:
287
287
  """
288
- Creates a new issue in a specified GitHub repository with a title, body, and optional labels. This function sends a POST request to the API and returns a formatted confirmation string containing the new issue's number and URL upon successful creation.
288
+ Creates a new issue in a GitHub repository using a title, body, and optional labels. It returns a formatted confirmation string with the new issue's number and URL, differing from `update_issue` which modifies existing issues and `search_issues` which returns raw API data.
289
289
 
290
290
  Args:
291
291
  repo_full_name: The full name of the repository in 'owner/repo' format
@@ -328,7 +328,7 @@ class GithubApp(APIApplication):
328
328
  self, repo_full_name: str, direction: str = "desc", per_page: int = 30
329
329
  ) -> str:
330
330
  """
331
- Fetches a list of recent events for a GitHub repository and formats them into a human-readable string. It summarizes activities with actors and timestamps, providing a general event feed, unlike other `list_*` functions which retrieve specific resources like commits or issues.
331
+ Fetches recent events for a GitHub repository and formats them into a human-readable string. It summarizes activities with actors and timestamps, providing a general event feed, unlike other `list_*` functions which retrieve specific resources like commits or issues.
332
332
 
333
333
  Args:
334
334
  repo_full_name: The full name of the repository in 'owner/repo' format
@@ -376,7 +376,7 @@ class GithubApp(APIApplication):
376
376
  state_reason: str = None,
377
377
  ) -> dict[str, Any]:
378
378
  """
379
- Modifies an existing GitHub issue in a repository by updating optional parameters like title, body, assignee, or state. It targets the issue by its number and returns the complete API response as a dictionary, contrasting with `create_issue` which creates new issues.
379
+ Modifies an existing GitHub issue, identified by its number within a repository. It can update optional fields like title, body, or state and returns the raw API response as a dictionary, differentiating it from `create_issue` which makes new issues and returns a formatted string.
380
380
 
381
381
  Args:
382
382
  repo_full_name: The full name of the repository in 'owner/repo' format
@@ -54,7 +54,7 @@ class GoogleCalendarApp(APIApplication):
54
54
  time_zone: str | None = None,
55
55
  ) -> dict[str, Any]:
56
56
  """
57
- Retrieves calendar events for a specified number of days starting from today. It defaults to fetching only the current day's events, simplifying date-range queries for upcoming events in contrast to the more comprehensive `list_events` function which requires explicit start and end times.
57
+ Retrieves events for a specified number of days, starting from today. This function simplifies date-range queries by auto-calculating start/end times, unlike the more comprehensive `list_events` function, which offers granular control with explicit time filters, text search, and custom sorting.
58
58
 
59
59
  Args:
60
60
  days: Number of days to retrieve events for (default: 1, which is just today)
@@ -98,7 +98,7 @@ class GoogleCalendarApp(APIApplication):
98
98
  time_zone: str | None = None,
99
99
  ) -> dict[str, Any]:
100
100
  """
101
- Retrieves a specific Google Calendar event using its unique ID. Optional parameters can limit the number of attendees returned and specify a time zone for formatting dates. It is distinct from `list_events`, which fetches multiple events based on broader criteria like date ranges or search queries.
101
+ Retrieves a specific calendar event using its unique ID. Unlike `list_events`, which fetches multiple events based on date ranges or search queries, this function targets a single, known event. It can optionally limit attendees returned and specify a time zone for date formatting in the response.
102
102
 
103
103
  Args:
104
104
  event_id: The unique identifier of the calendar event to retrieve
@@ -137,7 +137,7 @@ class GoogleCalendarApp(APIApplication):
137
137
  page_token: str | None = None,
138
138
  ) -> dict[str, Any]:
139
139
  """
140
- Fetches a customizable list of events using filters for date range, text search, sorting, and pagination. This advanced function provides more granular control than `get_today_events`, which is limited to fetching events for a specific number of upcoming days.
140
+ Fetches a customizable list of events using filters for date range, text search, sorting, and pagination. This advanced function provides more granular control than `get_upcoming_events`, which is limited to fetching events for a specific number of upcoming days.
141
141
 
142
142
  Args:
143
143
  max_results: Maximum number of events to return (default: 10, max: 2500)
@@ -196,7 +196,7 @@ class GoogleCalendarApp(APIApplication):
196
196
  calendar_id: str = "primary",
197
197
  ) -> dict[str, Any]:
198
198
  """
199
- Creates a detailed calendar event with structured data, including start/end times, summary, attendees, and recurrence rules. Unlike `quick_add_event`, which uses natural language, this method offers precise control for creating complex or recurring appointments.
199
+ Creates a calendar event using structured data for start/end times, summary, attendees, and recurrence. This method provides precise control for complex appointments, unlike `create_event_from_text` which parses natural language, making it ideal for detailed or recurring event creation.
200
200
 
201
201
  Args:
202
202
  start: Start time of the event (required). Must include timezone offset or timeZone field.
@@ -254,7 +254,7 @@ class GoogleCalendarApp(APIApplication):
254
254
 
255
255
  def create_event_from_text(self, text: str, send_updates: str = "none") -> dict[str, Any]:
256
256
  """
257
- Creates a calendar event by parsing a natural language string for details like title and time. This provides a user-friendly shortcut for event creation, contrasting with the structured `add_an_event` method which requires explicit fields for start, end, and summary.
257
+ Creates a calendar event by parsing a natural language string (e.g., "Meeting tomorrow at 10am"). This offers a user-friendly shortcut, contrasting with the structured `create_event` function which requires explicit fields like start and end times.
258
258
 
259
259
  Args:
260
260
  text: Natural language text describing the event (e.g., 'Meeting with John at Coffee Shop tomorrow 3pm-4pm')
@@ -287,7 +287,7 @@ class GoogleCalendarApp(APIApplication):
287
287
  page_token: str | None = None,
288
288
  ) -> dict[str, Any]:
289
289
  """
290
- Retrieves all individual occurrences (instances) of a specific recurring event, identified by its ID. This function allows filtering by a time range and supports pagination, distinguishing it from `list_events` which fetches multiple, distinct events rather than instances of a single one.
290
+ Retrieves all individual occurrences of a specific recurring event using its ID. Unlike `list_events`, which fetches multiple distinct events, this function expands a single recurring event into its separate instances, allowing filtering by time range and pagination for detailed scheduling views.
291
291
 
292
292
  Args:
293
293
  event_id: ID of the recurring event
@@ -341,7 +341,7 @@ class GoogleCalendarApp(APIApplication):
341
341
  userIp=None,
342
342
  ) -> Any:
343
343
  """
344
- Deletes a specific event from a Google Calendar using its event and calendar IDs. This action is permanent and can optionally send cancellation notifications or updates to attendees based on the provided parameters.
344
+ Permanently deletes a specific event from a Google Calendar using its event and calendar IDs. It can optionally send cancellation notifications to attendees, distinguishing it from functions that retrieve (`get_event_by_id`) or modify events (`replace_event`), which do not remove entries from the calendar.
345
345
 
346
346
  Args:
347
347
  calendarId (string): calendarId
@@ -400,7 +400,7 @@ class GoogleCalendarApp(APIApplication):
400
400
  max_attendees: int | None = None,
401
401
  ) -> dict[str, Any]:
402
402
  """
403
- Replaces an existing calendar event, identified by its ID, with new data. This function performs a full update, overwriting all event properties like start/end times, summary, and attendees. It does not support partial modifications; all required fields for the new event version are necessary.
403
+ Replaces an existing calendar event, identified by its ID, with new data. This function performs a full update, overwriting all event properties like start/end times and summary. It does not support partial modifications, requiring all necessary fields for the replacement to be provided.
404
404
 
405
405
  Args:
406
406
  event_id: The unique identifier of the calendar event to update (required)
@@ -458,7 +458,7 @@ class GoogleCalendarApp(APIApplication):
458
458
 
459
459
  def get_primary_calendar_details(self) -> dict[str, Any]:
460
460
  """
461
- Retrieves metadata for the user's primary calendar, including its default timezone. This information is essential for creating new events with accurate, timezone-aware start and end times, as recommended before using functions like `add_an_event` to prevent scheduling errors across different regions.
461
+ Retrieves metadata for the user's primary calendar, including its default timezone. This information is essential for creating new events with accurate, timezone-aware start and end times using other functions like `create_event`, preventing potential scheduling errors across different regions.
462
462
 
463
463
  Returns:
464
464
  Dictionary containing the user's timezone information
@@ -491,7 +491,7 @@ class GoogleCalendarApp(APIApplication):
491
491
  timeZone=None,
492
492
  ) -> dict[str, Any]:
493
493
  """
494
- Queries the Google Calendar API to determine the free/busy status for one or more calendars within a specified time range. It returns a list of busy time intervals, useful for scheduling new events without conflicts.
494
+ Queries the free/busy status for one or more calendars within a specified time range. It returns a list of busy time intervals, making it ideal for finding open slots and scheduling new events without conflicts.
495
495
 
496
496
 
497
497
  Args: