glean-agent-toolkit 0.3.0__tar.gz → 0.5.0__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.
Files changed (187) hide show
  1. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.cz.toml +1 -2
  2. glean_agent_toolkit-0.5.0/.env.template +6 -0
  3. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.github/workflows/ci.yml +9 -11
  4. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.github/workflows/publish.yml +27 -8
  5. glean_agent_toolkit-0.5.0/AGENTS.md +55 -0
  6. glean_agent_toolkit-0.5.0/CHANGELOG.md +28 -0
  7. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/COMMIT_LINTING.md +5 -5
  8. glean_agent_toolkit-0.5.0/CONTRIBUTING.md +93 -0
  9. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/PKG-INFO +178 -72
  10. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/README.md +169 -69
  11. glean_agent_toolkit-0.5.0/docs/prerequisites.md +70 -0
  12. glean_agent_toolkit-0.5.0/mise.toml +201 -0
  13. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/pyproject.toml +16 -6
  14. glean_agent_toolkit-0.5.0/skills/glean-agent-toolkit-builder/SKILL.md +406 -0
  15. glean_agent_toolkit-0.5.0/skills/glean-agent-toolkit-guide/SKILL.md +294 -0
  16. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-01.py +6 -6
  17. glean_agent_toolkit-0.5.0/snippets/readme/snippet-03.bash +1 -0
  18. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-03.py +3 -3
  19. glean_agent_toolkit-0.5.0/snippets/readme/snippet-04.bash +2 -0
  20. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-04.py +6 -4
  21. glean_agent_toolkit-0.5.0/snippets/readme/snippet-05.bash +2 -0
  22. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-05.py +3 -3
  23. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-07.bash +1 -1
  24. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-09.py +1 -2
  25. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/__init__.py +105 -0
  26. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/adapters/__init__.py +34 -0
  27. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/adapters/adk.py +31 -8
  28. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/adapters/base.py +76 -0
  29. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/adapters/crewai.py +27 -39
  30. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/adapters/langchain.py +51 -50
  31. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/adapters/openai.py +33 -11
  32. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/context.py +104 -0
  33. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/decorators.py +74 -3
  34. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/registry.py +4 -0
  35. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/spec.py +3 -1
  36. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/tools/__init__.py +11 -6
  37. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/tools/_common.py +201 -0
  38. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/tools/_compat.py +70 -0
  39. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/tools/calendar_search.py +21 -10
  40. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/tools/chat.py +107 -0
  41. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/tools/code_search.py +21 -12
  42. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/tools/employee_search.py +21 -18
  43. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/tools/gmail_search.py +21 -9
  44. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/tools/outlook_search.py +21 -9
  45. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/tools/read_document.py +97 -0
  46. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/tools/search.py +117 -0
  47. glean_agent_toolkit-0.5.0/src/glean/agent_toolkit/tools/web_search.py +58 -0
  48. glean_agent_toolkit-0.5.0/tests/cassettes/test_search_api_error.yaml +81 -0
  49. glean_agent_toolkit-0.5.0/tests/cassettes/test_search_success.yaml +83 -0
  50. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/conftest.py +1 -1
  51. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/test_adapters.py +13 -2
  52. glean_agent_toolkit-0.5.0/tests/test_async.py +103 -0
  53. glean_agent_toolkit-0.5.0/tests/test_common.py +183 -0
  54. glean_agent_toolkit-0.5.0/tests/test_get_tools.py +86 -0
  55. glean_agent_toolkit-0.5.0/tests/tools/test_api_compat.py +70 -0
  56. glean_agent_toolkit-0.5.0/tests/tools/test_calendar_search.py +61 -0
  57. glean_agent_toolkit-0.5.0/tests/tools/test_chat.py +118 -0
  58. glean_agent_toolkit-0.5.0/tests/tools/test_code_search.py +69 -0
  59. glean_agent_toolkit-0.5.0/tests/tools/test_common.py +131 -0
  60. glean_agent_toolkit-0.5.0/tests/tools/test_employee_search.py +61 -0
  61. glean_agent_toolkit-0.5.0/tests/tools/test_gmail_search.py +79 -0
  62. glean_agent_toolkit-0.5.0/tests/tools/test_outlook_search.py +61 -0
  63. glean_agent_toolkit-0.5.0/tests/tools/test_read_document.py +107 -0
  64. glean_agent_toolkit-0.5.0/tests/tools/test_search.py +103 -0
  65. glean_agent_toolkit-0.5.0/tests/tools/test_web_search.py +61 -0
  66. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/uv.lock +27 -70
  67. glean_agent_toolkit-0.3.0/.env.template +0 -3
  68. glean_agent_toolkit-0.3.0/AGENTS.md +0 -55
  69. glean_agent_toolkit-0.3.0/CHANGELOG.md +0 -16
  70. glean_agent_toolkit-0.3.0/CONTRIBUTING.md +0 -93
  71. glean_agent_toolkit-0.3.0/Taskfile.yml +0 -309
  72. glean_agent_toolkit-0.3.0/mise.toml +0 -4
  73. glean_agent_toolkit-0.3.0/snippets/readme/snippet-03.bash +0 -1
  74. glean_agent_toolkit-0.3.0/snippets/readme/snippet-04.bash +0 -2
  75. glean_agent_toolkit-0.3.0/snippets/readme/snippet-05.bash +0 -2
  76. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/__init__.py +0 -30
  77. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/adapters/__init__.py +0 -24
  78. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/adapters/base.py +0 -29
  79. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/tools/_common.py +0 -78
  80. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/tools/ai_web_search.py +0 -63
  81. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/tools/glean_search.py +0 -50
  82. glean_agent_toolkit-0.3.0/src/glean/agent_toolkit/tools/web_search.py +0 -58
  83. glean_agent_toolkit-0.3.0/tests/test_common.py +0 -150
  84. glean_agent_toolkit-0.3.0/tests/tools/test_ai_web_search.py +0 -60
  85. glean_agent_toolkit-0.3.0/tests/tools/test_calendar_search.py +0 -69
  86. glean_agent_toolkit-0.3.0/tests/tools/test_code_search.py +0 -64
  87. glean_agent_toolkit-0.3.0/tests/tools/test_employee_search.py +0 -71
  88. glean_agent_toolkit-0.3.0/tests/tools/test_glean_search.py +0 -29
  89. glean_agent_toolkit-0.3.0/tests/tools/test_gmail_search.py +0 -66
  90. glean_agent_toolkit-0.3.0/tests/tools/test_outlook_search.py +0 -62
  91. glean_agent_toolkit-0.3.0/tests/tools/test_web_search.py +0 -69
  92. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.gitignore +0 -0
  93. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.markdown-coderc.json +0 -0
  94. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.pre-commit-config.yaml +0 -0
  95. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/.vscode/settings.json +0 -0
  96. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/CODEOWNERS +0 -0
  97. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/LICENSE +0 -0
  98. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/RELEASE.md +0 -0
  99. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/pyrightconfig.json +0 -0
  100. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-01.bash +0 -0
  101. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-02.bash +0 -0
  102. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-02.py +0 -0
  103. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-06.bash +0 -0
  104. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-06.py +0 -0
  105. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-07.py +0 -0
  106. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-08.py +0 -0
  107. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/snippets/readme/snippet-10.py +0 -0
  108. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/src/glean/agent_toolkit/py.typed +0 -0
  109. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/__init__.py +0 -0
  110. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_api_error.yaml +0 -0
  111. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_complex_query.yaml +0 -0
  112. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_no_results.yaml +0 -0
  113. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_success.yaml +0 -0
  114. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_various_queries[blockchain applications].yaml +0 -0
  115. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_various_queries[cloud computing trends].yaml +0 -0
  116. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_various_queries[cybersecurity best practices].yaml +0 -0
  117. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_various_queries[machine learning frameworks 2025].yaml +0 -0
  118. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_ai_web_search_various_queries[sustainable technology solutions].yaml +0 -0
  119. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_api_error.yaml +0 -0
  120. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_by_attendee.yaml +0 -0
  121. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_by_date_range.yaml +0 -0
  122. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_no_results.yaml +0 -0
  123. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_success.yaml +0 -0
  124. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_various_queries[client demo presentation].yaml +0 -0
  125. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_various_queries[conference room bookings].yaml +0 -0
  126. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_various_queries[one-on-one meetings].yaml +0 -0
  127. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_various_queries[quarterly business review].yaml +0 -0
  128. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_calendar_search_various_queries[sprint planning meeting].yaml +0 -0
  129. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_api_error.yaml +0 -0
  130. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_complex_query.yaml +0 -0
  131. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_empty_query.yaml +0 -0
  132. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_success.yaml +0 -0
  133. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_various_queries[API endpoint security].yaml +0 -0
  134. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_various_queries[class UserManager].yaml +0 -0
  135. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_various_queries[database connection pool].yaml +0 -0
  136. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_various_queries[error handling middleware].yaml +0 -0
  137. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_code_search_various_queries[function login validation].yaml +0 -0
  138. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_api_error.yaml +0 -0
  139. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_by_department.yaml +0 -0
  140. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_by_role.yaml +0 -0
  141. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_no_results.yaml +0 -0
  142. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_success.yaml +0 -0
  143. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_various_queries[Sarah Johnson product manager].yaml +0 -0
  144. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_various_queries[UX designer mobile apps].yaml +0 -0
  145. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_various_queries[data scientist machine learning].yaml +0 -0
  146. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_various_queries[frontend developer React].yaml +0 -0
  147. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_employee_search_various_queries[security engineer DevOps].yaml +0 -0
  148. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_glean_search_api_error.yaml +0 -0
  149. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_glean_search_success.yaml +0 -0
  150. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_api_error.yaml +0 -0
  151. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_no_emails_found.yaml +0 -0
  152. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_success.yaml +0 -0
  153. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_various_queries[invoice from vendor].yaml +0 -0
  154. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_various_queries[meeting invitations].yaml +0 -0
  155. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_various_queries[password reset emails].yaml +0 -0
  156. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_various_queries[security alerts].yaml +0 -0
  157. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_various_queries[urgent emails from manager].yaml +0 -0
  158. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_with_filters[before:2025/01/01].yaml +0 -0
  159. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_with_filters[from:boss@company.com].yaml +0 -0
  160. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_with_filters[has:attachment].yaml +0 -0
  161. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_with_filters[label:important].yaml +0 -0
  162. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_gmail_search_with_filters[subject:urgent].yaml +0 -0
  163. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_api_error.yaml +0 -0
  164. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_calendar_events.yaml +0 -0
  165. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_no_results.yaml +0 -0
  166. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_success.yaml +0 -0
  167. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_various_queries[all-hands meeting].yaml +0 -0
  168. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_various_queries[budget review meeting].yaml +0 -0
  169. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_various_queries[client presentation tomorrow].yaml +0 -0
  170. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_various_queries[project deadline reminder].yaml +0 -0
  171. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_outlook_search_various_queries[team standup calendar].yaml +0 -0
  172. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_api_error.yaml +0 -0
  173. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_news_query.yaml +0 -0
  174. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_no_results.yaml +0 -0
  175. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_specific_domain.yaml +0 -0
  176. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_success.yaml +0 -0
  177. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_various_queries[API design patterns].yaml +0 -0
  178. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_various_queries[Docker container deployment].yaml +0 -0
  179. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_various_queries[JavaScript frameworks comparison].yaml +0 -0
  180. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_various_queries[database optimization techniques].yaml +0 -0
  181. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/cassettes/test_web_search_various_queries[mobile app development].yaml +0 -0
  182. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/test_decorators.py +0 -0
  183. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/test_enhanced_schemas.py +0 -0
  184. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/test_registry.py +0 -0
  185. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/test_schema_generation.py +0 -0
  186. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/test_toolspec.py +0 -0
  187. {glean_agent_toolkit-0.3.0 → glean_agent_toolkit-0.5.0}/tests/tools/__init__.py +0 -0
@@ -1,8 +1,7 @@
1
1
  [tool.commitizen]
2
2
  name = "cz_conventional_commits"
3
- version = "0.3.0"
3
+ version = "0.5.0"
4
4
  tag_format = "$version"
5
5
  version_files = [
6
6
  "pyproject.toml:version",
7
- "glean/toolkit/__init__.py:__version__",
8
7
  ]
@@ -0,0 +1,6 @@
1
+ # Glean API configuration
2
+ GLEAN_SERVER_URL=https://your-company-be.glean.com
3
+ GLEAN_API_TOKEN=
4
+
5
+ # Deprecated: GLEAN_INSTANCE is legacy — still supported as fallback
6
+ # GLEAN_INSTANCE=your-company
@@ -22,13 +22,13 @@ jobs:
22
22
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23
23
 
24
24
  - name: Setup development environment
25
- run: task setup
25
+ run: mise run setup
26
26
 
27
27
  - name: Run linters
28
- run: task lint
28
+ run: mise run lint
29
29
 
30
30
  - name: Build package
31
- run: task build
31
+ run: mise run build
32
32
 
33
33
  test:
34
34
  name: Test Python ${{ matrix.python-version }}
@@ -44,23 +44,21 @@ jobs:
44
44
  uses: jdx/mise-action@v2
45
45
  with:
46
46
  cache: true
47
- mise_toml: |
48
- [tools]
49
- python = "${{ matrix.python-version }}"
50
- task = "latest"
51
- uv = "latest"
52
47
 
53
48
  env:
54
49
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55
50
 
56
51
  - name: Setup development environment
57
- run: task setup
52
+ run: mise use -g python@${{ matrix.python-version }} uv@latest && mise install
53
+
54
+ - name: Initialize dev environment
55
+ run: mise run setup
58
56
 
59
57
  - name: Run tests
60
- run: task test
58
+ run: mise run test
61
59
 
62
60
  - name: Test package installation
63
61
  run: |
64
- task build
62
+ mise run build
65
63
  uv run pip install dist/*.whl
66
64
  uv run python -c "import glean.agent_toolkit; print('Package installed successfully')"
@@ -3,11 +3,30 @@ name: Publish to PyPI
3
3
  on:
4
4
  push:
5
5
  tags:
6
- - '*.*.*'
6
+ - '[0-9]*.[0-9]*.[0-9]*'
7
7
  workflow_dispatch:
8
8
 
9
9
  jobs:
10
- deploy:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - name: Set up mise
16
+ uses: jdx/mise-action@v2
17
+ with:
18
+ cache: true
19
+ env:
20
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21
+
22
+ - name: Initialize dev environment
23
+ run: mise run setup
24
+
25
+ - name: Run tests
26
+ run: mise run test
27
+
28
+ build-and-publish:
29
+ needs: test
11
30
  runs-on: ubuntu-latest
12
31
  environment: pypi
13
32
  permissions:
@@ -18,14 +37,14 @@ jobs:
18
37
  - uses: actions/checkout@v4
19
38
  with:
20
39
  fetch-depth: 0 # Needed for changelog generation
21
-
40
+
22
41
  - name: Set up mise
23
42
  uses: jdx/mise-action@v2
24
43
  with:
25
44
  cache: true
26
45
  env:
27
46
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28
-
47
+
29
48
  - name: Build package
30
49
  run: uv build
31
50
 
@@ -34,10 +53,10 @@ jobs:
34
53
  run: |
35
54
  # Get latest tag for both push and manual triggers
36
55
  LATEST_TAG=$(git describe --tags --abbrev=0)
37
-
56
+
38
57
  echo "LATEST_TAG=${LATEST_TAG}" >> $GITHUB_OUTPUT
39
58
  echo "CHANGELOG<<EOF" >> $GITHUB_OUTPUT
40
-
59
+
41
60
  # Try to get previous tag
42
61
  if PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null); then
43
62
  # If we have a previous tag, show changes between tags
@@ -47,12 +66,12 @@ jobs:
47
66
  uvx --from commitizen cz changelog --dry-run >> $GITHUB_OUTPUT
48
67
  fi
49
68
  echo "EOF" >> $GITHUB_OUTPUT
50
-
69
+
51
70
  - name: Create GitHub Release
52
71
  uses: softprops/action-gh-release@v1
53
72
  with:
54
73
  tag_name: ${{ steps.CHANGELOG.outputs.LATEST_TAG }}
55
74
  body: ${{ steps.CHANGELOG.outputs.CHANGELOG }}
56
-
75
+
57
76
  - name: Publish package to PyPI
58
77
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,55 @@
1
+ # Agent Guidelines
2
+
3
+ This project contains the **Glean Agent Toolkit**, a Python package used to integrate Glean's search and discovery tools with various agent frameworks.
4
+
5
+ ## Setup
6
+
7
+ 1. Install the prerequisites:
8
+ - [uv](https://github.com/astral-sh/uv)
9
+ - [mise](https://mise.jdx.dev/)
10
+ 2. Run `mise run setup` to create the `.venv` and install all development, test, lint and typing dependencies via `uv`.
11
+
12
+ Environment variables `GLEAN_API_TOKEN` and `GLEAN_SERVER_URL` (or deprecated `GLEAN_INSTANCE`) must be set to interact with Glean or regenerate VCR cassettes.
13
+
14
+ ## Development Tasks
15
+
16
+ The repository uses **mise**. Key commands include:
17
+
18
+ | Task | Description |
19
+ |------|-------------|
20
+ | `mise run test` | Run unit tests |
21
+ | `mise run test:watch` | Run tests in watch mode |
22
+ | `mise run test:cov` | Run tests with coverage |
23
+ | `mise run test:all` | Run tests, apply lint fixes, and run pyright |
24
+ | `mise run lint` | Run Ruff, formatting checks and pyright |
25
+ | `mise run lint:diff` | Lint only changed files |
26
+ | `mise run lint:fix` | Apply Ruff fixes and formatting |
27
+ | `mise run format` | Format code using Ruff formatter |
28
+ | `mise run spell:check` | Check spelling |
29
+ | `mise run clean` | Remove build artifacts |
30
+ | `mise run build` | Build the package |
31
+ | `mise run release` | Bump version and generate the changelog |
32
+
33
+ Special tasks exist to manage VCR cassettes used in tests:
34
+
35
+ - `mise run test:vcr:regenerate` – Re-record all HTTP interactions (requires `GLEAN_API_TOKEN` and `GLEAN_SERVER_URL`; deprecated `GLEAN_INSTANCE` is still accepted as fallback).
36
+ - `mise run test:vcr:clean` – Delete cassettes so the next test run regenerates them.
37
+
38
+ ## Coding Guidelines
39
+
40
+ - Python **>=3.10** is required. The project enforces formatting with Ruff. Line length is limited to **100** characters and double quotes are used by default.
41
+ - Docstrings follow the **Google** style as configured in `pyproject.toml`.
42
+ - Type checking is performed with **pyright**.
43
+ - Tools should be implemented using the `@tool_spec` decorator found in `glean.agent_toolkit.decorators`. See existing tools under `src/glean/agent_toolkit/tools` for examples.
44
+
45
+ ## Contribution Process
46
+
47
+ 1. Fork the repository and create a branch from `main`.
48
+ 2. Make your changes and ensure all tasks run cleanly (`mise run test` and `mise run lint`).
49
+ 3. Update or add documentation when necessary.
50
+ 4. Submit a pull request.
51
+ 5. Be respectful and follow the project's code of conduct.
52
+
53
+ ## Additional Notes
54
+
55
+ Check the [README](README.md) for feature descriptions and basic usage. The package is released under the [MIT License](LICENSE).
@@ -0,0 +1,28 @@
1
+ ## 0.4.0 (2026-03-05)
2
+
3
+ ### Feat
4
+
5
+ - Add `read_document` tool for fetching full document content by URL or document ID
6
+ - Add `GLEAN_SERVER_URL` environment variable support; `GLEAN_INSTANCE` is retained as a deprecated fallback
7
+ - Add retry backoff configuration via environment variables (`GLEAN_RETRY_INITIAL`, `GLEAN_RETRY_MAX`, `GLEAN_RETRY_MULTIPLIER`, `GLEAN_RETRY_MAX_ELAPSED`)
8
+
9
+ ### Changed
10
+
11
+ - Add `glean_` prefix to all tool spec names for clarity in multi-tool agent environments (`search` → `glean_search`, `employee_search` → `glean_employee_search`, etc.)
12
+
13
+ ## 0.3.0 (2025-07-21)
14
+
15
+ ### Feat
16
+
17
+ - Add enhanced parameter schemas with Field metadata support
18
+
19
+ ### Fix
20
+
21
+ - Adds newline to .cz.toml
22
+ - Fixes type errors during task:lint
23
+
24
+ ## 0.2.0 (2025-06-05)
25
+
26
+ ### Feat
27
+
28
+ - Implements Agent Builder tools as defaults
@@ -25,7 +25,7 @@ Examples:
25
25
 
26
26
  ```bash
27
27
  # Install all dependencies including pre-commit
28
- task setup
28
+ mise run setup
29
29
  ```
30
30
 
31
31
  This will:
@@ -37,7 +37,7 @@ This will:
37
37
 
38
38
  ```bash
39
39
  # Install pre-commit hooks
40
- task pre-commit:install
40
+ mise run pre-commit:install
41
41
  ```
42
42
 
43
43
  ## Available Tools
@@ -54,13 +54,13 @@ Pre-commit hooks run automatically before each commit and will:
54
54
 
55
55
  ```bash
56
56
  # Run pre-commit hooks on all files
57
- task pre-commit:run
57
+ mise run pre-commit:run
58
58
 
59
59
  # Run pre-commit hooks on changed files only
60
- task pre-commit:run:diff
60
+ mise run pre-commit:run:diff
61
61
 
62
62
  # Update pre-commit hooks to latest versions
63
- task pre-commit:update
63
+ mise run pre-commit:update
64
64
  ```
65
65
 
66
66
  ## Making Commits
@@ -0,0 +1,93 @@
1
+ # Contributing to Glean Agent Toolkit
2
+
3
+ Thank you for your interest in contributing to the Glean Agent Toolkit! This guide will help you understand the project structure, development workflow, and how to add new tools.
4
+
5
+ ## Project Structure
6
+
7
+ ```sh
8
+ src/
9
+ ├─ glean/
10
+ │ ├─ __init__.py
11
+ │ └─ agent_toolkit/ # exposes `glean.agent_toolkit`
12
+ │ ├─ __init__.py
13
+ │ ├─ decorators.py
14
+ │ ├─ registry.py
15
+ │ ├─ spec.py
16
+ │ ├─ adapters/
17
+ │ └─ tools/
18
+ ├─ tests/
19
+ └─ docs/
20
+ ```
21
+
22
+ ## Development environment
23
+
24
+ The repository relies on [uv](https://github.com/astral-sh/uv) and [mise](https://mise.jdx.dev/) for reproducible workflows and task orchestration.
25
+
26
+ ### Prerequisites
27
+
28
+ 1. uv
29
+
30
+ ```bash
31
+ pip install uv
32
+ ```
33
+
34
+ 2. mise
35
+
36
+ ```bash
37
+ brew install mise
38
+ ```
39
+
40
+ ### One-time setup
41
+
42
+ ```bash
43
+ mise run setup
44
+ ```
45
+
46
+ The command creates `.venv/` and installs all dev/test dependencies via uv.
47
+
48
+ ## Development Tasks
49
+
50
+ The project uses `mise` to manage development tasks. Here are the available tasks:
51
+
52
+ ### Testing
53
+
54
+ | Task | Description |
55
+ | --------------------- | ---------------------------- |
56
+ | `mise run test` | Run unit tests |
57
+ | `mise run test:watch` | Run tests in watch mode |
58
+ | `mise run test:cov` | Run tests with coverage |
59
+ | `mise run test:all` | Run all tests and lint fixes |
60
+
61
+ ### Linting and formatting
62
+
63
+ | Task | Description |
64
+ | ----------------------- | --------------------------------------- |
65
+ | `mise run lint` | Run Ruff, pyright and formatting checks |
66
+ | `mise run lint:diff` | Same as above but only on changed files |
67
+ | `mise run lint:package` | Lint only `glean/toolkit` |
68
+ | `mise run lint:tests` | Lint only `tests` |
69
+ | `mise run lint:fix` | Autofix style issues |
70
+ | `mise run format` | Apply Ruff formatter |
71
+ | `mise run format:diff` | Format only changed files |
72
+
73
+ ### Examples and Utilities
74
+
75
+ | Task | Description |
76
+ | ---------------------- | ----------------------------------------------- |
77
+ | `mise run spell:check` | Check spelling |
78
+ | `mise run spell:fix` | Fix spelling |
79
+ | `mise run clean` | Clean build artifacts |
80
+ | `mise run build` | Build the package |
81
+ | `mise run release` | Create a new release (version bump + changelog) |
82
+ | `mise run security:audit` | Run dependency vulnerability audit (pip-audit) |
83
+
84
+ ## Pull Request Process
85
+
86
+ 1. Fork the repository and create your branch from `main`.
87
+ 2. Make your changes and ensure that all tests pass.
88
+ 3. Update the documentation to reflect any changes.
89
+ 4. Submit a pull request.
90
+
91
+ ## Code of Conduct
92
+
93
+ Please be respectful and considerate of others when contributing to this project.