oats-coder 1.0.2__py3-none-any.whl

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 (242) hide show
  1. oats/AGENT.dir.python.tools.json +1 -0
  2. oats/AGENT.python.tools.md +131 -0
  3. oats/agent/AGENT.dir.python.tools.json +1 -0
  4. oats/agent/AGENT.python.tools.md +19 -0
  5. oats/agent/agent.py +176 -0
  6. oats/agent/agent.py.AGENT.python.tools.json +7 -0
  7. oats/agent_get_tool_choices_for_prompt.py +32 -0
  8. oats/agent_get_tool_choices_for_prompt.py.AGENT.python.tools.json +7 -0
  9. oats/call_tool_with_loader1.py +430 -0
  10. oats/call_tool_with_loader1.py.AGENT.python.tools.json +7 -0
  11. oats/cli/AGENT.dir.python.tools.json +1 -0
  12. oats/cli/AGENT.python.tools.md +33 -0
  13. oats/cli/approval.py +154 -0
  14. oats/cli/approval.py.AGENT.python.tools.json +7 -0
  15. oats/cli/check_providers.py +25 -0
  16. oats/cli/check_providers.py.AGENT.python.tools.json +7 -0
  17. oats/cli/interactive.py +550 -0
  18. oats/cli/interactive.py.AGENT.python.tools.json +7 -0
  19. oats/cli/process_message.py +153 -0
  20. oats/cli/process_message.py.AGENT.python.tools.json +7 -0
  21. oats/cli/tui/AGENT.dir.python.tools.json +1 -0
  22. oats/cli/tui/AGENT.python.tools.md +19 -0
  23. oats/cli/tui/tui_banner.py +114 -0
  24. oats/cli/tui/tui_banner.py.AGENT.python.tools.json +7 -0
  25. oats/cli/tui/tui_consts.py +120 -0
  26. oats/cli/tui/tui_consts.py.AGENT.python.tools.json +7 -0
  27. oats/cli/tui/tui_utils.py +492 -0
  28. oats/cli/tui/tui_utils.py.AGENT.python.tools.json +7 -0
  29. oats/config/coder.json +27 -0
  30. oats/core/AGENT.dir.python.tools.json +1 -0
  31. oats/core/AGENT.python.tools.md +117 -0
  32. oats/core/__init__.py +19 -0
  33. oats/core/bus.py +170 -0
  34. oats/core/bus.py.AGENT.python.tools.json +7 -0
  35. oats/core/config.py +270 -0
  36. oats/core/config.py.AGENT.python.tools.json +7 -0
  37. oats/core/features.py +118 -0
  38. oats/core/features.py.AGENT.python.tools.json +7 -0
  39. oats/core/id.py +17 -0
  40. oats/core/id.py.AGENT.python.tools.json +7 -0
  41. oats/core/offline.py +93 -0
  42. oats/core/offline.py.AGENT.python.tools.json +7 -0
  43. oats/core/profiles.py +179 -0
  44. oats/core/profiles.py.AGENT.python.tools.json +7 -0
  45. oats/core/storage.py +207 -0
  46. oats/core/storage.py.AGENT.python.tools.json +7 -0
  47. oats/core/tokens.py +80 -0
  48. oats/core/tokens.py.AGENT.python.tools.json +7 -0
  49. oats/date.py +83 -0
  50. oats/date.py.AGENT.python.tools.json +7 -0
  51. oats/determine_best_tools1.py +311 -0
  52. oats/determine_best_tools1.py.AGENT.python.tools.json +7 -0
  53. oats/get_oat_config.py +12 -0
  54. oats/get_oat_config.py.AGENT.python.tools.json +3 -0
  55. oats/git/AGENT.dir.python.tools.json +1 -0
  56. oats/git/AGENT.python.tools.md +89 -0
  57. oats/git/__init__.py +6 -0
  58. oats/git/build_git_repo_to_dataset.py +185 -0
  59. oats/git/build_git_repo_to_dataset.py.AGENT.python.tools.json +7 -0
  60. oats/git/coauthor.py +75 -0
  61. oats/git/coauthor.py.AGENT.python.tools.json +7 -0
  62. oats/git/git_commit_search1.py +537 -0
  63. oats/git/git_commit_search1.py.AGENT.python.tools.json +7 -0
  64. oats/git/git_diff_extractor.py +221 -0
  65. oats/git/git_diff_extractor.py.AGENT.python.tools.json +7 -0
  66. oats/git/git_to_df_converter.py +115 -0
  67. oats/git/git_to_df_converter.py.AGENT.python.tools.json +7 -0
  68. oats/git/repo_to_parquet.py +81 -0
  69. oats/git/repo_to_parquet.py.AGENT.python.tools.json +7 -0
  70. oats/git/walk_up_dir_path_to_find_git_config.py +56 -0
  71. oats/git/walk_up_dir_path_to_find_git_config.py.AGENT.python.tools.json +7 -0
  72. oats/git/worktree.py +184 -0
  73. oats/git/worktree.py.AGENT.python.tools.json +7 -0
  74. oats/hook/AGENT.dir.python.tools.json +1 -0
  75. oats/hook/AGENT.python.tools.md +19 -0
  76. oats/hook/__init__.py +23 -0
  77. oats/hook/engine.py +225 -0
  78. oats/hook/engine.py.AGENT.python.tools.json +7 -0
  79. oats/load_tools_from_source1.py +594 -0
  80. oats/load_tools_from_source1.py.AGENT.python.tools.json +7 -0
  81. oats/log.py +233 -0
  82. oats/log.py.AGENT.python.tools.json +7 -0
  83. oats/lsp/AGENT.dir.python.tools.json +1 -0
  84. oats/lsp/AGENT.python.tools.md +19 -0
  85. oats/lsp/__init__.py +1 -0
  86. oats/lsp/client.py +381 -0
  87. oats/lsp/client.py.AGENT.python.tools.json +7 -0
  88. oats/mcp/AGENT.dir.python.tools.json +1 -0
  89. oats/mcp/AGENT.python.tools.md +159 -0
  90. oats/mcp/config.py +201 -0
  91. oats/mcp/config.py.AGENT.python.tools.json +7 -0
  92. oats/mcp/example_mcp_config.json +58 -0
  93. oats/mcp/fetch.py +405 -0
  94. oats/mcp/fetch.py.AGENT.python.tools.json +7 -0
  95. oats/mcp/index.py +381 -0
  96. oats/mcp/index.py.AGENT.python.tools.json +7 -0
  97. oats/mcp/intent.py +427 -0
  98. oats/mcp/intent.py.AGENT.python.tools.json +7 -0
  99. oats/mcp/models.py +304 -0
  100. oats/mcp/models.py.AGENT.python.tools.json +7 -0
  101. oats/mcp/orchestrator.py +653 -0
  102. oats/mcp/orchestrator.py.AGENT.python.tools.json +7 -0
  103. oats/mcp/ranking.py +243 -0
  104. oats/mcp/ranking.py.AGENT.python.tools.json +7 -0
  105. oats/mcp/registry.py +567 -0
  106. oats/mcp/registry.py.AGENT.python.tools.json +7 -0
  107. oats/mcp/resolver.py +588 -0
  108. oats/mcp/resolver.py.AGENT.python.tools.json +7 -0
  109. oats/mcp/tools.py +574 -0
  110. oats/mcp/tools.py.AGENT.python.tools.json +7 -0
  111. oats/mcp/tracker.py +254 -0
  112. oats/mcp/tracker.py.AGENT.python.tools.json +7 -0
  113. oats/memory/AGENT.dir.python.tools.json +1 -0
  114. oats/memory/AGENT.python.tools.md +19 -0
  115. oats/memory/__init__.py +14 -0
  116. oats/memory/manager.py +180 -0
  117. oats/memory/manager.py.AGENT.python.tools.json +7 -0
  118. oats/memory/models.py +97 -0
  119. oats/memory/models.py.AGENT.python.tools.json +7 -0
  120. oats/models.py +332 -0
  121. oats/models.py.AGENT.python.tools.json +7 -0
  122. oats/oweb/AGENT.dir.python.tools.json +1 -0
  123. oats/oweb/AGENT.python.tools.md +33 -0
  124. oats/oweb/get_auth.py +56 -0
  125. oats/oweb/get_auth.py.AGENT.python.tools.json +7 -0
  126. oats/oweb/login.py +72 -0
  127. oats/oweb/login.py.AGENT.python.tools.json +7 -0
  128. oats/plugins/AGENT.dir.python.tools.json +1 -0
  129. oats/plugins/AGENT.python.tools.md +33 -0
  130. oats/plugins/__init__.py +24 -0
  131. oats/plugins/loader.py +278 -0
  132. oats/plugins/loader.py.AGENT.python.tools.json +7 -0
  133. oats/plugins/manifest.py +171 -0
  134. oats/plugins/manifest.py.AGENT.python.tools.json +7 -0
  135. oats/pp.py +8 -0
  136. oats/pp.py.AGENT.python.tools.json +7 -0
  137. oats/provider/AGENT.dir.python.tools.json +1 -0
  138. oats/provider/AGENT.python.tools.md +33 -0
  139. oats/provider/models.py +249 -0
  140. oats/provider/models.py.AGENT.python.tools.json +7 -0
  141. oats/provider/provider.py +822 -0
  142. oats/provider/provider.py.AGENT.python.tools.json +7 -0
  143. oats/session/AGENT.dir.python.tools.json +1 -0
  144. oats/session/AGENT.python.tools.md +201 -0
  145. oats/session/__init__.py +35 -0
  146. oats/session/build_system_prompt.py +184 -0
  147. oats/session/build_system_prompt.py.AGENT.python.tools.json +7 -0
  148. oats/session/caveman.py +177 -0
  149. oats/session/caveman.py.AGENT.python.tools.json +7 -0
  150. oats/session/compaction.py +463 -0
  151. oats/session/compaction.py.AGENT.python.tools.json +7 -0
  152. oats/session/debug_trace.py +41 -0
  153. oats/session/debug_trace.py.AGENT.python.tools.json +7 -0
  154. oats/session/file_cache.py +108 -0
  155. oats/session/file_cache.py.AGENT.python.tools.json +7 -0
  156. oats/session/message.py +214 -0
  157. oats/session/message.py.AGENT.python.tools.json +7 -0
  158. oats/session/metrics.py +52 -0
  159. oats/session/metrics.py.AGENT.python.tools.json +7 -0
  160. oats/session/models.py +43 -0
  161. oats/session/models.py.AGENT.python.tools.json +5 -0
  162. oats/session/modes.py +107 -0
  163. oats/session/modes.py.AGENT.python.tools.json +7 -0
  164. oats/session/processor.py +1600 -0
  165. oats/session/processor.py.AGENT.python.tools.json +7 -0
  166. oats/session/screenshot_store.py +157 -0
  167. oats/session/screenshot_store.py.AGENT.python.tools.json +7 -0
  168. oats/session/session.py +224 -0
  169. oats/session/session.py.AGENT.python.tools.json +7 -0
  170. oats/session/skill_selector.py +156 -0
  171. oats/session/skill_selector.py.AGENT.python.tools.json +7 -0
  172. oats/session/task_budget.py +159 -0
  173. oats/session/task_budget.py.AGENT.python.tools.json +7 -0
  174. oats/session/token_budget.py +90 -0
  175. oats/session/token_budget.py.AGENT.python.tools.json +7 -0
  176. oats/session/tool_retention.py +80 -0
  177. oats/session/tool_retention.py.AGENT.python.tools.json +7 -0
  178. oats/session/usage.py +139 -0
  179. oats/session/usage.py.AGENT.python.tools.json +7 -0
  180. oats/tool/AGENT.dir.python.tools.json +1 -0
  181. oats/tool/AGENT.python.tools.md +299 -0
  182. oats/tool/agent_tool.py +447 -0
  183. oats/tool/agent_tool.py.AGENT.python.tools.json +7 -0
  184. oats/tool/aws_safety.py +189 -0
  185. oats/tool/aws_safety.py.AGENT.python.tools.json +7 -0
  186. oats/tool/bash.py +188 -0
  187. oats/tool/bash.py.AGENT.python.tools.json +7 -0
  188. oats/tool/edit.py +437 -0
  189. oats/tool/generate_readme.py +280 -0
  190. oats/tool/generate_readme.py.AGENT.python.tools.json +7 -0
  191. oats/tool/glob_tool.py +183 -0
  192. oats/tool/glob_tool.py.AGENT.python.tools.json +7 -0
  193. oats/tool/grep.py +337 -0
  194. oats/tool/grep.py.AGENT.python.tools.json +7 -0
  195. oats/tool/init_tools.py +152 -0
  196. oats/tool/init_tools.py.AGENT.python.tools.json +7 -0
  197. oats/tool/lsp_tool.py +315 -0
  198. oats/tool/lsp_tool.py.AGENT.python.tools.json +7 -0
  199. oats/tool/memory_tool.py +241 -0
  200. oats/tool/memory_tool.py.AGENT.python.tools.json +7 -0
  201. oats/tool/multiedit.py +198 -0
  202. oats/tool/multiedit.py.AGENT.python.tools.json +7 -0
  203. oats/tool/patch.py +343 -0
  204. oats/tool/patch.py.AGENT.python.tools.json +7 -0
  205. oats/tool/plan.py +318 -0
  206. oats/tool/plan.py.AGENT.python.tools.json +7 -0
  207. oats/tool/playwright_search.py +227 -0
  208. oats/tool/playwright_search.py.AGENT.python.tools.json +7 -0
  209. oats/tool/question.py +245 -0
  210. oats/tool/question.py.AGENT.python.tools.json +7 -0
  211. oats/tool/read.py +199 -0
  212. oats/tool/read.py.AGENT.python.tools.json +7 -0
  213. oats/tool/registry.py +184 -0
  214. oats/tool/registry.py.AGENT.python.tools.json +7 -0
  215. oats/tool/todowrite.py +224 -0
  216. oats/tool/todowrite.py.AGENT.python.tools.json +7 -0
  217. oats/tool/tool_search.py +176 -0
  218. oats/tool/tool_search.py.AGENT.python.tools.json +7 -0
  219. oats/tool/webfetch.py +200 -0
  220. oats/tool/webfetch.py.AGENT.python.tools.json +7 -0
  221. oats/tool/websearch.py +277 -0
  222. oats/tool/websearch.py.AGENT.python.tools.json +7 -0
  223. oats/tool/write.py +154 -0
  224. oats/tool/write.py.AGENT.python.tools.json +7 -0
  225. oats/trajectory/AGENT.dir.python.tools.json +1 -0
  226. oats/trajectory/AGENT.python.tools.md +61 -0
  227. oats/trajectory/__init__.py +17 -0
  228. oats/trajectory/logger.py +119 -0
  229. oats/trajectory/logger.py.AGENT.python.tools.json +7 -0
  230. oats/trajectory/metrics.py +222 -0
  231. oats/trajectory/metrics.py.AGENT.python.tools.json +7 -0
  232. oats/trajectory/report.py +37 -0
  233. oats/trajectory/report.py.AGENT.python.tools.json +7 -0
  234. oats/trajectory/retrieval.py +140 -0
  235. oats/trajectory/retrieval.py.AGENT.python.tools.json +7 -0
  236. oats/trajectory/store.py +366 -0
  237. oats/trajectory/store.py.AGENT.python.tools.json +7 -0
  238. oats_coder-1.0.2.dist-info/METADATA +271 -0
  239. oats_coder-1.0.2.dist-info/RECORD +242 -0
  240. oats_coder-1.0.2.dist-info/WHEEL +4 -0
  241. oats_coder-1.0.2.dist-info/entry_points.txt +4 -0
  242. oats_coder-1.0.2.dist-info/licenses/LICENSE +1 -0
@@ -0,0 +1 @@
1
+ {"protocol_name":"oat.python.tool","protocol_version":"1.0.0","manifest_id":"09fd476b-3248-4c21-8278-08baa55dfd44","created_at":"2026-05-12T19:09:47.052221Z","updated_at":"2026-05-12T19:09:47.052221Z","author":null,"desc":"# Agent Python Tools\n\n- repo: oats\n- repo_uri: ssh://git@git.districtsolutions.ai:2222/District-Solutions/open-agent-tools-coder.git\n\n## File: oats/agent_get_tool_choices_for_prompt.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'get_tool_choices_for_prompt': 'get tool choices for a prompt using the OAT index with multi-tool resolution', 'get_prompt_choices': 'get prompt choices from the OAT config using the get_prompt_choices method', 'get_best_matches_bm25': 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run_agent_get_tool_choices_cli': 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse_args': 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose'}\n```\n\n## File: oats/call_tool_with_loader1.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'create_LocalTool': 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run_LocalTool_execute': 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load_tools_from_repo_uses_index': 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run_tool_call': 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run_main_cli': 'run the CLI to load tools from a repo index by prompt and execute the first matched tool'}\n```\n\n## File: oats/date.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'get_third_friday_dates': 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'utc': 'get the current UTC datetime as a timezone-aware datetime object', 'naive': 'get the current UTC datetime as a timezone-naive datetime object', 'get_utc_str': 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review_date_module': 'review the date module functions for UTC and naive datetime utilities'}\n```\n\n## File: oats/determine_best_tools1.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'determine_best_tools': 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank_with_bm25': 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank_with_tfidf': 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank_with_embeddings': 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank': 'rerank retrieval results using a cross-encoder model for improved semantic accuracy'}\n```\n\n## File: oats/get_oat_config.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'get_oat_config': 'get the singleton OatConfig instance that holds repo uses index and data settings'}\n```\n\n## File: oats/load_tools_from_source1.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'run_load_tools': 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run_run_tool_call': 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'run_get_best_tools_for_prompt': 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'run_run_tool_for_prompt': 'determine best tools for a prompt, load them, and execute the full tool call loop', 'run_main_cli': 'run the FunctionGemma CLI to dynamically load tool files and execute tool calls for a prompt'}\n```\n\n## File: oats/log.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'create_logger_instance': 'create a logger Lg instance with a custom name and optional color support', 'log_messages_with_levels': 'log messages at different levels like info, debug, warning, error, and critical', 'save_logs_to_file': 'save collected log messages to a file with optional append mode and length limits', 'log_markdown_headers': 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'get_logger_logs': 'retrieve the list of all logged messages from the logger instance'}\n```\n\n## File: oats/models.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'create_OatPromptChoices': 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create_OatConfig': 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'get_prompt_choices': 'get prompt choices by matching a user prompt prefix against indexed repo actions', 'get_best_matches_bm25': 'get the best matching actions for a prompt using BM25Okapi scoring and top-k retrieval', 'review_OatConfig_get_prompt_choices': 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring'}\n```\n\n## File: oats/pp.py\n\nPrompts\n\n```\n['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']\n```\n\nUsage\n\n```\n{'pp_dict': 'use pp to pretty print a Python dictionary as indented JSON', 'pp_list': 'use pp to pretty print a Python list as indented JSON', 'pp_any': 'use pp to pretty print any Python object as indented JSON', 'pp_none': 'use pp with no arguments to return an empty JSON object', 'pp_escape_slashes': 'use pp to pretty print JSON with forward slashes unescaped'}\n```\n","schema_version":"2.0","name":"oats/AGENT.python.tools.md","uses":{"oats/agent_get_tool_choices_for_prompt.py":{"get_tool_choices_for_prompt":"get tool choices for a prompt using the OAT index with multi-tool resolution","get_prompt_choices":"get prompt choices from the OAT config using the get_prompt_choices method","get_best_matches_bm25":"get the best BM25 matches for a prompt when prompt choices are unavailable","run_agent_get_tool_choices_cli":"run the CLI tool to get prompt choices from the OAT index with a prompt argument","parse_args":"parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose"},"oats/call_tool_with_loader1.py":{"create_LocalTool":"create a LocalTool instance and set its name, description, parameters, and implementation callable","run_LocalTool_execute":"run the LocalTool execute method with args and a ToolContext to get a ToolResult","load_tools_from_repo_uses_index":"load tools from a source index file matched against a prompt and wrap them as LocalTool instances","run_tool_call":"run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt","run_main_cli":"run the CLI to load tools from a repo index by prompt and execute the first matched tool"},"oats/date.py":{"get_third_friday_dates":"generate the third Friday dates for the next 6 months in YYYYMMDD format","utc":"get the current UTC datetime as a timezone-aware datetime object","naive":"get the current UTC datetime as a timezone-naive datetime object","get_utc_str":"get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string","review_date_module":"review the date module functions for UTC and naive datetime utilities"},"oats/determine_best_tools1.py":{"determine_best_tools":"find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings","rank_with_bm25":"rank corpus documents against a query using the BM25Okapi algorithm","rank_with_tfidf":"rank corpus documents against a query using TF-IDF vectorization and cosine similarity","rank_with_embeddings":"rank corpus documents against a query using sentence transformer embeddings and cosine similarity","rerank":"rerank retrieval results using a cross-encoder model for improved semantic accuracy"},"oats/get_oat_config.py":{"get_oat_config":"get the singleton OatConfig instance that holds repo uses index and data settings"},"oats/load_tools_from_source1.py":{"run_load_tools":"load public functions from python files into OpenAI tool schemas and callable implementations","run_run_tool_call":"run a tool call loop that sends a prompt to an LLM and executes returned tool calls","run_get_best_tools_for_prompt":"determine the best tool source files for a prompt using BM25 retrieval and OAT","run_run_tool_for_prompt":"determine best tools for a prompt, load them, and execute the full tool call loop","run_main_cli":"run the FunctionGemma CLI to dynamically load tool files and execute tool calls for a prompt"},"oats/log.py":{"create_logger_instance":"create a logger Lg instance with a custom name and optional color support","log_messages_with_levels":"log messages at different levels like info, debug, warning, error, and critical","save_logs_to_file":"save collected log messages to a file with optional append mode and length limits","log_markdown_headers":"log markdown header strings that get rendered with rich Markdown formatting and colored level tags","get_logger_logs":"retrieve the list of all logged messages from the logger instance"},"oats/models.py":{"create_OatPromptChoices":"create an OatPromptChoices model to store matched actions prompts and source file results","create_OatConfig":"create an OatConfig instance that loads and indexes a repo uses JSON file","get_prompt_choices":"get prompt choices by matching a user prompt prefix against indexed repo actions","get_best_matches_bm25":"get the best matching actions for a prompt using BM25Okapi scoring and top-k retrieval","review_OatConfig_get_prompt_choices":"review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring"},"oats/pp.py":{"pp_dict":"use pp to pretty print a Python dictionary as indented JSON","pp_list":"use pp to pretty print a Python list as indented JSON","pp_any":"use pp to pretty print any Python object as indented JSON","pp_none":"use pp with no arguments to return an empty JSON object","pp_escape_slashes":"use pp to pretty print JSON with forward slashes unescaped"}},"src_ast":{"oats/agent_get_tool_choices_for_prompt.py":[{"type":"function","function":{"name":"agent_get_tool_choices_for_prompt","description":"","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"top_k":{"type":"integer"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"agent_get_tool_choices_for_prompt","description":""},{"type":"function","function":{"name":"parse_args","description":"","parameters":{"type":"object","properties":{"args":{"type":"string"}}}},"name":"parse_args","description":""}],"oats/call_tool_with_loader1.py":[{"type":"function","function":{"name":"load_tools_from_repo_uses_index","description":"Import source code using get_best_tools_for_prompt(), then create a","parameters":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt to match tools against."},"file_path":{"type":"string","description":"Path to the tool-uses index JSON file (or None for default)."},"min_score":{"type":"number"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"load_tools_from_repo_uses_index","description":"Import source code using get_best_tools_for_prompt(), then create a"},{"type":"function","function":{"name":"run_tool_call","description":"","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"tools":{"type":"array"},"tool_impls":{"type":"object"},"provider_id":{"type":"string"},"api_base":{"type":"string"},"api_key":{"type":"string"},"model":{"type":"string"},"verbose":{"type":"boolean"}},"required":["prompt","tools","tool_impls"]}},"name":"run_tool_call","description":""},{"type":"function","function":{"name":"set_name","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_name","description":""},{"type":"function","function":{"name":"set_aliases","description":"","parameters":{"type":"object","properties":{"value":{"type":"array"}},"required":["value"]}},"name":"set_aliases","description":""},{"type":"function","function":{"name":"set_keywords","description":"","parameters":{"type":"object","properties":{"value":{"type":"array"}},"required":["value"]}},"name":"set_keywords","description":""},{"type":"function","function":{"name":"set_always_load","description":"","parameters":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"]}},"name":"set_always_load","description":""},{"type":"function","function":{"name":"set_strict","description":"","parameters":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"]}},"name":"set_strict","description":""},{"type":"function","function":{"name":"set_description","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_description","description":""},{"type":"function","function":{"name":"set_parameters","description":"","parameters":{"type":"object","properties":{"value":{"type":"object"}},"required":["value"]}},"name":"set_parameters","description":""},{"type":"function","function":{"name":"set_requires_permission","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_requires_permission","description":""},{"type":"function","function":{"name":"set_output","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_output","description":""},{"type":"function","function":{"name":"set_tool_context","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_tool_context","description":""},{"type":"function","function":{"name":"set_impl","description":"","parameters":{"type":"object","properties":{"impl":{"type":"string"}},"required":["impl"]}},"name":"set_impl","description":""},{"type":"function","function":{"name":"name","description":"","parameters":{"type":"object","properties":{}}},"name":"name","description":""},{"type":"function","function":{"name":"description","description":"","parameters":{"type":"object","properties":{}}},"name":"description","description":""},{"type":"function","function":{"name":"parameters","description":"","parameters":{"type":"object","properties":{}}},"name":"parameters","description":""},{"type":"function","function":{"name":"aliases","description":"","parameters":{"type":"object","properties":{}}},"name":"aliases","description":""},{"type":"function","function":{"name":"keywords","description":"","parameters":{"type":"object","properties":{}}},"name":"keywords","description":""},{"type":"function","function":{"name":"always_load","description":"","parameters":{"type":"object","properties":{}}},"name":"always_load","description":""},{"type":"function","function":{"name":"strict","description":"","parameters":{"type":"object","properties":{}}},"name":"strict","description":""},{"type":"function","function":{"name":"output","description":"","parameters":{"type":"object","properties":{}}},"name":"output","description":""},{"type":"function","function":{"name":"requires_permission","description":"","parameters":{"type":"object","properties":{"args":{"type":"object"},"ctx":{"type":"string"}},"required":["args","ctx"]}},"name":"requires_permission","description":""}],"oats/date.py":[{"type":"function","function":{"name":"utc","description":"get the utc datetime","parameters":{"type":"object","properties":{}}},"name":"utc","description":"get the utc datetime"},{"type":"function","function":{"name":"naive","description":"get naive datetime from utc","parameters":{"type":"object","properties":{}}},"name":"naive","description":"get naive datetime from utc"},{"type":"function","function":{"name":"get_third_friday_dates","description":"Generate a list of the third Friday dates for the next 6 months.","parameters":{"type":"object","properties":{}}},"name":"get_third_friday_dates","description":"Generate a list of the third Friday dates for the next 6 months."},{"type":"function","function":{"name":"get_utc_str","description":"get the utc datetime","parameters":{"type":"object","properties":{}}},"name":"get_utc_str","description":"get the utc datetime"}],"oats/determine_best_tools1.py":[{"type":"function","function":{"name":"load_schema","description":"","parameters":{"type":"object","properties":{"schema_path":{"type":"string"}},"required":["schema_path"]}},"name":"load_schema","description":""},{"type":"function","function":{"name":"build_corpus","description":"Build one document per (file, function) pair combining path + name + description.","parameters":{"type":"object","properties":{"uses":{"type":"object"}},"required":["uses"]}},"name":"build_corpus","description":"Build one document per (file, function) pair combining path + name + description."},{"type":"function","function":{"name":"tokenize","description":"","parameters":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"name":"tokenize","description":""},{"type":"function","function":{"name":"rank_with_bm25","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"corpus":{"type":"array"},"meta":{"type":"array"},"top_k":{"type":"integer"},"min_score":{"type":"number"}},"required":["query","corpus","meta","top_k","min_score"]}},"name":"rank_with_bm25","description":""},{"type":"function","function":{"name":"rank_with_tfidf","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"corpus":{"type":"array"},"meta":{"type":"array"},"top_k":{"type":"integer"},"min_score":{"type":"number"}},"required":["query","corpus","meta","top_k","min_score"]}},"name":"rank_with_tfidf","description":""},{"type":"function","function":{"name":"rank_with_embeddings","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"corpus":{"type":"array"},"meta":{"type":"array"},"top_k":{"type":"integer"},"min_score":{"type":"number"},"model_name":{"type":"string"}},"required":["query","corpus","meta","top_k","min_score","model_name"]}},"name":"rank_with_embeddings","description":""},{"type":"function","function":{"name":"rerank","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"results":{"type":"array"},"rerank_model":{"type":"string"}},"required":["query","results","rerank_model"]}},"name":"rerank","description":""},{"type":"function","function":{"name":"deduplicated","description":"","parameters":{"type":"object","properties":{"items":{"type":"array"}},"required":["items"]}},"name":"deduplicated","description":""},{"type":"function","function":{"name":"determine_best_tools","description":"Determine the best tool matches for a given prompt.","parameters":{"type":"object","properties":{"prompt":{"type":"string","description":"Search query (e.g. 'get date')"},"schema":{"type":"string","description":"Path to JSON schema file with 'uses' dict"},"model":{"type":"string","description":"Retrieval model: bm25 | tfidf | <sentence-transformer-model-name>"},"top_k":{"type":"integer","description":"Number of top results"},"min_score":{"type":"number","description":"Minimum retrieval score threshold"},"rerank":{"type":"boolean","description":"Whether to apply cross-encoder reranker after retrieval"},"rerank_model":{"type":"string","description":"Cross-encoder model for reranking"},"log_level":{"type":"string","description":"Log level"},"verbose":{"type":"boolean"}},"required":["prompt","schema"]}},"name":"determine_best_tools","description":"Determine the best tool matches for a given prompt."}],"oats/get_oat_config.py":[{"type":"function","function":{"name":"get_oat_config","description":"","parameters":{"type":"object","properties":{}}},"name":"get_oat_config","description":""}],"oats/load_tools_from_source1.py":[{"type":"function","function":{"name":"load_tools","description":"Load public functions from each .py file.","parameters":{"type":"object","properties":{"file_paths":{"type":"array"},"verbose":{"type":"boolean"}},"required":["file_paths"]}},"name":"load_tools","description":"Load public functions from each .py file."},{"type":"function","function":{"name":"run_tool_call","description":"","parameters":{"type":"object","properties":{"model":{"type":"string"},"api_base":{"type":"string"},"prompt":{"type":"string"},"tools":{"type":"array"},"tool_impls":{"type":"object"}},"required":["model","api_base","prompt","tools","tool_impls"]}},"name":"run_tool_call","description":""},{"type":"function","function":{"name":"get_oat_repo_uses_tools","description":"","parameters":{"type":"object","properties":{}}},"name":"get_oat_repo_uses_tools","description":""},{"type":"function","function":{"name":"get_best_tools_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"tool_schema":{"type":"string"},"top_k":{"type":"integer"},"min_score":{"type":"number"},"rerank":{"type":"boolean"},"rerank_model":{"type":"string"},"bm25_model":{"type":"string"},"run":{"type":"boolean"},"oat_enabled":{"type":"string"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"get_best_tools_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),"},{"type":"function","function":{"name":"run_tool_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"model":{"type":"string"},"api_base":{"type":"string"},"schema":{"type":"string"},"top_k":{"type":"integer"},"min_score":{"type":"number"},"rerank":{"type":"boolean"},"rerank_model":{"type":"string"},"bm25_model":{"type":"string"},"run":{"type":"boolean"}},"required":["prompt"]}},"name":"run_tool_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),"}],"oats/log.py":[{"type":"function","function":{"name":"create_log","description":"Creates a logger Lg instance.","parameters":{"type":"object","properties":{"n":{"type":"string"},"colors":{"type":"boolean","description":"enable colors in the log"},"file":{"type":"string","description":"enable saving the logs to this file"}}}},"name":"create_log","description":"Creates a logger Lg instance."},{"type":"function","function":{"name":"cl","description":"Creates a logger Lg instance.","parameters":{"type":"object","properties":{"n":{"type":"string"},"colors":{"type":"boolean","description":"enable colors in the log"},"file":{"type":"string","description":"enable saving the logs to this file"}}}},"name":"cl","description":"Creates a logger Lg instance."},{"type":"function","function":{"name":"gl","description":"Initializes a global logger Lg instance - disabled by default","parameters":{"type":"object","properties":{"n":{"type":"string"},"colors":{"type":"boolean","description":"enable colors in the log"},"file":{"type":"string","description":"enable saving the logs to this file"}}}},"name":"gl","description":"Initializes a global logger Lg instance - disabled by default"},{"type":"function","function":{"name":"log","description":"Logs a message with a given level.","parameters":{"type":"object","properties":{"level":{"type":"string"},"m":{"type":"string"}},"required":["level","m"]}},"name":"log","description":"Logs a message with a given level."},{"type":"function","function":{"name":"debug","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"debug","description":""},{"type":"function","function":{"name":"info","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"info","description":""},{"type":"function","function":{"name":"warn","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"warn","description":""},{"type":"function","function":{"name":"warning","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"warning","description":""},{"type":"function","function":{"name":"err","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"err","description":""},{"type":"function","function":{"name":"error","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"error","description":""},{"type":"function","function":{"name":"critical","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"critical","description":""},{"type":"function","function":{"name":"good","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"good","description":""},{"type":"function","function":{"name":"p","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"p","description":""},{"type":"function","function":{"name":"fail","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"fail","description":""},{"type":"function","function":{"name":"startup","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"startup","description":""},{"type":"function","function":{"name":"agent_log","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"agent_log","description":""},{"type":"function","function":{"name":"get_file","description":"","parameters":{"type":"object","properties":{}}},"name":"get_file","description":""},{"type":"function","function":{"name":"save_all","description":"","parameters":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"]}},"name":"save_all","description":""},{"type":"function","function":{"name":"save","description":"","parameters":{"type":"object","properties":{"file":{"type":"string"},"num_logs":{"type":"integer"},"total_len":{"type":"integer"},"is_append":{"type":"boolean"}},"required":["file"]}},"name":"save","description":""},{"type":"function","function":{"name":"get_logs","description":"","parameters":{"type":"object","properties":{}}},"name":"get_logs","description":""},{"type":"function","function":{"name":"set_file","description":"","parameters":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"]}},"name":"set_file","description":""},{"type":"function","function":{"name":"enable_logs","description":"","parameters":{"type":"object","properties":{}}},"name":"enable_logs","description":""}],"oats/models.py":[{"type":"function","function":{"name":"get_prompt_choices","description":"","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"get_prompt_choices","description":""},{"type":"function","function":{"name":"get_best_matches_bm25","description":"Use BM25 to find the best matching actions for a given prompt.","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"top_k":{"type":"integer"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"get_best_matches_bm25","description":"Use BM25 to find the best matching actions for a given prompt."}],"oats/pp.py":[{"type":"function","function":{"name":"pp","description":"","parameters":{"type":"object","properties":{"d":{"type":"object"}}}},"name":"pp","description":""}]},"src_entities":[],"target_entities":["tool_choices_for_prompt","prompt_choices","best_matches_bm25","agent_get_tool_choices_cli","args","LocalTool","LocalTool_execute","tools_from_repo_uses_index","tool_call","main_cli","third_friday_dates","","","utc_str","date_module","best_tools","with_bm25","with_tfidf","with_embeddings","","oat_config","load_tools","run_tool_call","get_best_tools_for_prompt","run_tool_for_prompt","logger_instance","messages_with_levels","logs_to_file","markdown_headers","logger_logs","OatPromptChoices","OatConfig","OatConfig_get_prompt_choices","dict","list","any","none","escape_slashes"],"ref_entities":["get tool choices for a prompt using the OAT index with multi-tool resolution","get prompt choices from the OAT config using the get_prompt_choices method","get the best BM25 matches for a prompt when prompt choices are unavailable","run the CLI tool to get prompt choices from the OAT index with a prompt argument","parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose","create a LocalTool instance and set its name, description, parameters, and implementation callable","run the LocalTool execute method with args and a ToolContext to get a ToolResult","load tools from a source index file matched against a prompt and wrap them as LocalTool instances","run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt","run the CLI to load tools from a repo index by prompt and execute the first matched tool","generate the third Friday dates for the next 6 months in YYYYMMDD format","get the current UTC datetime as a timezone-aware datetime object","get the current UTC datetime as a timezone-naive datetime object","get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string","review the date module functions for UTC and naive datetime utilities","find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings","rank corpus documents against a query using the BM25Okapi algorithm","rank corpus documents against a query using TF-IDF vectorization and cosine similarity","rank corpus documents against a query using sentence transformer embeddings and cosine similarity","rerank retrieval results using a cross-encoder model for improved semantic accuracy","get the singleton OatConfig instance that holds repo uses index and data settings","load public functions from python files into OpenAI tool schemas and callable implementations","run a tool call loop that sends a prompt to an LLM and executes returned tool calls","determine the best tool source files for a prompt using BM25 retrieval and OAT","determine best tools for a prompt, load them, and execute the full tool call loop","create a logger Lg instance with a custom name and optional color support","log messages at different levels like info, debug, warning, error, and critical","save collected log messages to a file with optional append mode and length limits","log markdown header strings that get rendered with rich Markdown formatting and colored level tags","retrieve the list of all logged messages from the logger instance","create an OatPromptChoices model to store matched actions prompts and source file results","create an OatConfig instance that loads and indexes a repo uses JSON file","review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring","use pp to pretty print a Python dictionary as indented JSON","use pp to pretty print a Python list as indented JSON","use pp to pretty print any Python object as indented JSON","use pp with no arguments to return an empty JSON object","use pp to pretty print JSON with forward slashes unescaped"],"trigger_words":["get","run","parse","create","load","utc","naive","review","determine","rank","rerank","log","save","pp"],"categories":null,"tags":null,"meta":null,"repo":"oats","repo_uri":"ssh://git@git.districtsolutions.ai:2222/District-Solutions/open-agent-tools-coder.git","repo_dir":"/opt/ds/oats","repo_branch":"main","repo_checksum":null,"dirs":["/opt/ds/oats/oats"],"files":["/opt/ds/oats/oats/agent_get_tool_choices_for_prompt.py","/opt/ds/oats/oats/call_tool_with_loader1.py","/opt/ds/oats/oats/date.py","/opt/ds/oats/oats/determine_best_tools1.py","/opt/ds/oats/oats/get_oat_config.py","/opt/ds/oats/oats/load_tools_from_source1.py","/opt/ds/oats/oats/log.py","/opt/ds/oats/oats/models.py","/opt/ds/oats/oats/pp.py"],"tool_types":null,"manifest":null,"df_parquet":null,"user_id":null,"users":null,"groups":null,"status":0,"display_status":"Ready","data_format":null,"models":null,"rlhf_chats":null,"rlhf_events":null,"created":null,"updated":null,"tools":{"agent_get_tool_choices_for_prompt":{"type":"function","function":{"name":"agent_get_tool_choices_for_prompt","description":"","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"top_k":{"type":"integer"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"agent_get_tool_choices_for_prompt","description":""},"parse_args":{"type":"function","function":{"name":"parse_args","description":"","parameters":{"type":"object","properties":{"args":{"type":"string"}}}},"name":"parse_args","description":""},"load_tools_from_repo_uses_index":{"type":"function","function":{"name":"load_tools_from_repo_uses_index","description":"Import source code using get_best_tools_for_prompt(), then create a","parameters":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt to match tools against."},"file_path":{"type":"string","description":"Path to the tool-uses index JSON file (or None for default)."},"min_score":{"type":"number"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"load_tools_from_repo_uses_index","description":"Import source code using get_best_tools_for_prompt(), then create a"},"run_tool_call":{"type":"function","function":{"name":"run_tool_call","description":"","parameters":{"type":"object","properties":{"model":{"type":"string"},"api_base":{"type":"string"},"prompt":{"type":"string"},"tools":{"type":"array"},"tool_impls":{"type":"object"}},"required":["model","api_base","prompt","tools","tool_impls"]}},"name":"run_tool_call","description":""},"set_name":{"type":"function","function":{"name":"set_name","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_name","description":""},"set_aliases":{"type":"function","function":{"name":"set_aliases","description":"","parameters":{"type":"object","properties":{"value":{"type":"array"}},"required":["value"]}},"name":"set_aliases","description":""},"set_keywords":{"type":"function","function":{"name":"set_keywords","description":"","parameters":{"type":"object","properties":{"value":{"type":"array"}},"required":["value"]}},"name":"set_keywords","description":""},"set_always_load":{"type":"function","function":{"name":"set_always_load","description":"","parameters":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"]}},"name":"set_always_load","description":""},"set_strict":{"type":"function","function":{"name":"set_strict","description":"","parameters":{"type":"object","properties":{"value":{"type":"boolean"}},"required":["value"]}},"name":"set_strict","description":""},"set_description":{"type":"function","function":{"name":"set_description","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_description","description":""},"set_parameters":{"type":"function","function":{"name":"set_parameters","description":"","parameters":{"type":"object","properties":{"value":{"type":"object"}},"required":["value"]}},"name":"set_parameters","description":""},"set_requires_permission":{"type":"function","function":{"name":"set_requires_permission","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_requires_permission","description":""},"set_output":{"type":"function","function":{"name":"set_output","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_output","description":""},"set_tool_context":{"type":"function","function":{"name":"set_tool_context","description":"","parameters":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"]}},"name":"set_tool_context","description":""},"set_impl":{"type":"function","function":{"name":"set_impl","description":"","parameters":{"type":"object","properties":{"impl":{"type":"string"}},"required":["impl"]}},"name":"set_impl","description":""},"name":{"type":"function","function":{"name":"name","description":"","parameters":{"type":"object","properties":{}}},"name":"name","description":""},"description":{"type":"function","function":{"name":"description","description":"","parameters":{"type":"object","properties":{}}},"name":"description","description":""},"parameters":{"type":"function","function":{"name":"parameters","description":"","parameters":{"type":"object","properties":{}}},"name":"parameters","description":""},"aliases":{"type":"function","function":{"name":"aliases","description":"","parameters":{"type":"object","properties":{}}},"name":"aliases","description":""},"keywords":{"type":"function","function":{"name":"keywords","description":"","parameters":{"type":"object","properties":{}}},"name":"keywords","description":""},"always_load":{"type":"function","function":{"name":"always_load","description":"","parameters":{"type":"object","properties":{}}},"name":"always_load","description":""},"strict":{"type":"function","function":{"name":"strict","description":"","parameters":{"type":"object","properties":{}}},"name":"strict","description":""},"output":{"type":"function","function":{"name":"output","description":"","parameters":{"type":"object","properties":{}}},"name":"output","description":""},"requires_permission":{"type":"function","function":{"name":"requires_permission","description":"","parameters":{"type":"object","properties":{"args":{"type":"object"},"ctx":{"type":"string"}},"required":["args","ctx"]}},"name":"requires_permission","description":""},"utc":{"type":"function","function":{"name":"utc","description":"get the utc datetime","parameters":{"type":"object","properties":{}}},"name":"utc","description":"get the utc datetime"},"naive":{"type":"function","function":{"name":"naive","description":"get naive datetime from utc","parameters":{"type":"object","properties":{}}},"name":"naive","description":"get naive datetime from utc"},"get_third_friday_dates":{"type":"function","function":{"name":"get_third_friday_dates","description":"Generate a list of the third Friday dates for the next 6 months.","parameters":{"type":"object","properties":{}}},"name":"get_third_friday_dates","description":"Generate a list of the third Friday dates for the next 6 months."},"get_utc_str":{"type":"function","function":{"name":"get_utc_str","description":"get the utc datetime","parameters":{"type":"object","properties":{}}},"name":"get_utc_str","description":"get the utc datetime"},"load_schema":{"type":"function","function":{"name":"load_schema","description":"","parameters":{"type":"object","properties":{"schema_path":{"type":"string"}},"required":["schema_path"]}},"name":"load_schema","description":""},"build_corpus":{"type":"function","function":{"name":"build_corpus","description":"Build one document per (file, function) pair combining path + name + description.","parameters":{"type":"object","properties":{"uses":{"type":"object"}},"required":["uses"]}},"name":"build_corpus","description":"Build one document per (file, function) pair combining path + name + description."},"tokenize":{"type":"function","function":{"name":"tokenize","description":"","parameters":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"name":"tokenize","description":""},"rank_with_bm25":{"type":"function","function":{"name":"rank_with_bm25","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"corpus":{"type":"array"},"meta":{"type":"array"},"top_k":{"type":"integer"},"min_score":{"type":"number"}},"required":["query","corpus","meta","top_k","min_score"]}},"name":"rank_with_bm25","description":""},"rank_with_tfidf":{"type":"function","function":{"name":"rank_with_tfidf","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"corpus":{"type":"array"},"meta":{"type":"array"},"top_k":{"type":"integer"},"min_score":{"type":"number"}},"required":["query","corpus","meta","top_k","min_score"]}},"name":"rank_with_tfidf","description":""},"rank_with_embeddings":{"type":"function","function":{"name":"rank_with_embeddings","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"corpus":{"type":"array"},"meta":{"type":"array"},"top_k":{"type":"integer"},"min_score":{"type":"number"},"model_name":{"type":"string"}},"required":["query","corpus","meta","top_k","min_score","model_name"]}},"name":"rank_with_embeddings","description":""},"rerank":{"type":"function","function":{"name":"rerank","description":"","parameters":{"type":"object","properties":{"query":{"type":"string"},"results":{"type":"array"},"rerank_model":{"type":"string"}},"required":["query","results","rerank_model"]}},"name":"rerank","description":""},"deduplicated":{"type":"function","function":{"name":"deduplicated","description":"","parameters":{"type":"object","properties":{"items":{"type":"array"}},"required":["items"]}},"name":"deduplicated","description":""},"determine_best_tools":{"type":"function","function":{"name":"determine_best_tools","description":"Determine the best tool matches for a given prompt.","parameters":{"type":"object","properties":{"prompt":{"type":"string","description":"Search query (e.g. 'get date')"},"schema":{"type":"string","description":"Path to JSON schema file with 'uses' dict"},"model":{"type":"string","description":"Retrieval model: bm25 | tfidf | <sentence-transformer-model-name>"},"top_k":{"type":"integer","description":"Number of top results"},"min_score":{"type":"number","description":"Minimum retrieval score threshold"},"rerank":{"type":"boolean","description":"Whether to apply cross-encoder reranker after retrieval"},"rerank_model":{"type":"string","description":"Cross-encoder model for reranking"},"log_level":{"type":"string","description":"Log level"},"verbose":{"type":"boolean"}},"required":["prompt","schema"]}},"name":"determine_best_tools","description":"Determine the best tool matches for a given prompt."},"get_oat_config":{"type":"function","function":{"name":"get_oat_config","description":"","parameters":{"type":"object","properties":{}}},"name":"get_oat_config","description":""},"load_tools":{"type":"function","function":{"name":"load_tools","description":"Load public functions from each .py file.","parameters":{"type":"object","properties":{"file_paths":{"type":"array"},"verbose":{"type":"boolean"}},"required":["file_paths"]}},"name":"load_tools","description":"Load public functions from each .py file."},"get_oat_repo_uses_tools":{"type":"function","function":{"name":"get_oat_repo_uses_tools","description":"","parameters":{"type":"object","properties":{}}},"name":"get_oat_repo_uses_tools","description":""},"get_best_tools_for_prompt":{"type":"function","function":{"name":"get_best_tools_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"tool_schema":{"type":"string"},"top_k":{"type":"integer"},"min_score":{"type":"number"},"rerank":{"type":"boolean"},"rerank_model":{"type":"string"},"bm25_model":{"type":"string"},"run":{"type":"boolean"},"oat_enabled":{"type":"string"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"get_best_tools_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),"},"run_tool_for_prompt":{"type":"function","function":{"name":"run_tool_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"model":{"type":"string"},"api_base":{"type":"string"},"schema":{"type":"string"},"top_k":{"type":"integer"},"min_score":{"type":"number"},"rerank":{"type":"boolean"},"rerank_model":{"type":"string"},"bm25_model":{"type":"string"},"run":{"type":"boolean"}},"required":["prompt"]}},"name":"run_tool_for_prompt","description":"Examine the prompt, determine the best tool files via determine_best_tools(),"},"create_log":{"type":"function","function":{"name":"create_log","description":"Creates a logger Lg instance.","parameters":{"type":"object","properties":{"n":{"type":"string"},"colors":{"type":"boolean","description":"enable colors in the log"},"file":{"type":"string","description":"enable saving the logs to this file"}}}},"name":"create_log","description":"Creates a logger Lg instance."},"cl":{"type":"function","function":{"name":"cl","description":"Creates a logger Lg instance.","parameters":{"type":"object","properties":{"n":{"type":"string"},"colors":{"type":"boolean","description":"enable colors in the log"},"file":{"type":"string","description":"enable saving the logs to this file"}}}},"name":"cl","description":"Creates a logger Lg instance."},"gl":{"type":"function","function":{"name":"gl","description":"Initializes a global logger Lg instance - disabled by default","parameters":{"type":"object","properties":{"n":{"type":"string"},"colors":{"type":"boolean","description":"enable colors in the log"},"file":{"type":"string","description":"enable saving the logs to this file"}}}},"name":"gl","description":"Initializes a global logger Lg instance - disabled by default"},"log":{"type":"function","function":{"name":"log","description":"Logs a message with a given level.","parameters":{"type":"object","properties":{"level":{"type":"string"},"m":{"type":"string"}},"required":["level","m"]}},"name":"log","description":"Logs a message with a given level."},"debug":{"type":"function","function":{"name":"debug","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"debug","description":""},"info":{"type":"function","function":{"name":"info","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"info","description":""},"warn":{"type":"function","function":{"name":"warn","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"warn","description":""},"warning":{"type":"function","function":{"name":"warning","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"warning","description":""},"err":{"type":"function","function":{"name":"err","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"err","description":""},"error":{"type":"function","function":{"name":"error","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"error","description":""},"critical":{"type":"function","function":{"name":"critical","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"critical","description":""},"good":{"type":"function","function":{"name":"good","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"good","description":""},"p":{"type":"function","function":{"name":"p","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"p","description":""},"fail":{"type":"function","function":{"name":"fail","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"fail","description":""},"startup":{"type":"function","function":{"name":"startup","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"startup","description":""},"agent_log":{"type":"function","function":{"name":"agent_log","description":"","parameters":{"type":"object","properties":{"m":{"type":"string"}},"required":["m"]}},"name":"agent_log","description":""},"get_file":{"type":"function","function":{"name":"get_file","description":"","parameters":{"type":"object","properties":{}}},"name":"get_file","description":""},"save_all":{"type":"function","function":{"name":"save_all","description":"","parameters":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"]}},"name":"save_all","description":""},"save":{"type":"function","function":{"name":"save","description":"","parameters":{"type":"object","properties":{"file":{"type":"string"},"num_logs":{"type":"integer"},"total_len":{"type":"integer"},"is_append":{"type":"boolean"}},"required":["file"]}},"name":"save","description":""},"get_logs":{"type":"function","function":{"name":"get_logs","description":"","parameters":{"type":"object","properties":{}}},"name":"get_logs","description":""},"set_file":{"type":"function","function":{"name":"set_file","description":"","parameters":{"type":"object","properties":{"file":{"type":"string"}},"required":["file"]}},"name":"set_file","description":""},"enable_logs":{"type":"function","function":{"name":"enable_logs","description":"","parameters":{"type":"object","properties":{}}},"name":"enable_logs","description":""},"get_prompt_choices":{"type":"function","function":{"name":"get_prompt_choices","description":"","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"get_prompt_choices","description":""},"get_best_matches_bm25":{"type":"function","function":{"name":"get_best_matches_bm25","description":"Use BM25 to find the best matching actions for a given prompt.","parameters":{"type":"object","properties":{"prompt":{"type":"string"},"top_k":{"type":"integer"},"verbose":{"type":"boolean"}},"required":["prompt"]}},"name":"get_best_matches_bm25","description":"Use BM25 to find the best matching actions for a given prompt."},"pp":{"type":"function","function":{"name":"pp","description":"","parameters":{"type":"object","properties":{"d":{"type":"object"}}}},"name":"pp","description":""}},"durable":{},"retention":{"retention_days":30,"max_entries":10000,"archive_after_days":7,"purge_on_limit":true,"retention_strategy":"time_based"},"alert_policy":{"alert_on_timeout":true,"alert_on_error":true,"alert_on_cli_fallback":true,"alert_severity_mapping":{},"notification_channels":[]},"execution_history":[],"alerts":[]}
@@ -0,0 +1,131 @@
1
+ # Agent Python Tools
2
+
3
+ - repo: oats
4
+ - repo_uri: ssh://git@git.districtsolutions.ai:2222/District-Solutions/open-agent-tools-coder.git
5
+
6
+ ## File: oats/agent_get_tool_choices_for_prompt.py
7
+
8
+ Prompts
9
+
10
+ ```
11
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
12
+ ```
13
+
14
+ Usage
15
+
16
+ ```
17
+ {'get_tool_choices_for_prompt': 'get tool choices for a prompt using the OAT index with multi-tool resolution', 'get_prompt_choices': 'get prompt choices from the OAT config using the get_prompt_choices method', 'get_best_matches_bm25': 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run_agent_get_tool_choices_cli': 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse_args': 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose'}
18
+ ```
19
+
20
+ ## File: oats/call_tool_with_loader1.py
21
+
22
+ Prompts
23
+
24
+ ```
25
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
26
+ ```
27
+
28
+ Usage
29
+
30
+ ```
31
+ {'create_LocalTool': 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run_LocalTool_execute': 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load_tools_from_repo_uses_index': 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run_tool_call': 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run_main_cli': 'run the CLI to load tools from a repo index by prompt and execute the first matched tool'}
32
+ ```
33
+
34
+ ## File: oats/date.py
35
+
36
+ Prompts
37
+
38
+ ```
39
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
40
+ ```
41
+
42
+ Usage
43
+
44
+ ```
45
+ {'get_third_friday_dates': 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'utc': 'get the current UTC datetime as a timezone-aware datetime object', 'naive': 'get the current UTC datetime as a timezone-naive datetime object', 'get_utc_str': 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review_date_module': 'review the date module functions for UTC and naive datetime utilities'}
46
+ ```
47
+
48
+ ## File: oats/determine_best_tools1.py
49
+
50
+ Prompts
51
+
52
+ ```
53
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
54
+ ```
55
+
56
+ Usage
57
+
58
+ ```
59
+ {'determine_best_tools': 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank_with_bm25': 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank_with_tfidf': 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank_with_embeddings': 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank': 'rerank retrieval results using a cross-encoder model for improved semantic accuracy'}
60
+ ```
61
+
62
+ ## File: oats/get_oat_config.py
63
+
64
+ Prompts
65
+
66
+ ```
67
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
68
+ ```
69
+
70
+ Usage
71
+
72
+ ```
73
+ {'get_oat_config': 'get the singleton OatConfig instance that holds repo uses index and data settings'}
74
+ ```
75
+
76
+ ## File: oats/load_tools_from_source1.py
77
+
78
+ Prompts
79
+
80
+ ```
81
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
82
+ ```
83
+
84
+ Usage
85
+
86
+ ```
87
+ {'run_load_tools': 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run_run_tool_call': 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'run_get_best_tools_for_prompt': 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'run_run_tool_for_prompt': 'determine best tools for a prompt, load them, and execute the full tool call loop', 'run_main_cli': 'run the FunctionGemma CLI to dynamically load tool files and execute tool calls for a prompt'}
88
+ ```
89
+
90
+ ## File: oats/log.py
91
+
92
+ Prompts
93
+
94
+ ```
95
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
96
+ ```
97
+
98
+ Usage
99
+
100
+ ```
101
+ {'create_logger_instance': 'create a logger Lg instance with a custom name and optional color support', 'log_messages_with_levels': 'log messages at different levels like info, debug, warning, error, and critical', 'save_logs_to_file': 'save collected log messages to a file with optional append mode and length limits', 'log_markdown_headers': 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'get_logger_logs': 'retrieve the list of all logged messages from the logger instance'}
102
+ ```
103
+
104
+ ## File: oats/models.py
105
+
106
+ Prompts
107
+
108
+ ```
109
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
110
+ ```
111
+
112
+ Usage
113
+
114
+ ```
115
+ {'create_OatPromptChoices': 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create_OatConfig': 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'get_prompt_choices': 'get prompt choices by matching a user prompt prefix against indexed repo actions', 'get_best_matches_bm25': 'get the best matching actions for a prompt using BM25Okapi scoring and top-k retrieval', 'review_OatConfig_get_prompt_choices': 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring'}
116
+ ```
117
+
118
+ ## File: oats/pp.py
119
+
120
+ Prompts
121
+
122
+ ```
123
+ ['get tool choices for a prompt using the OAT index with multi-tool resolution', 'get prompt choices from the OAT config using the get_prompt_choices method', 'get the best BM25 matches for a prompt when prompt choices are unavailable', 'run the CLI tool to get prompt choices from the OAT index with a prompt argument', 'parse command line arguments for the OAT prompt choices CLI including prompt top-k and verbose', 'create a LocalTool instance and set its name, description, parameters, and implementation callable', 'run the LocalTool execute method with args and a ToolContext to get a ToolResult', 'load tools from a source index file matched against a prompt and wrap them as LocalTool instances', 'run an LLM tool-calling loop using LiteLLM with dynamically loaded tool implementations and a user prompt', 'run the CLI to load tools from a repo index by prompt and execute the first matched tool', 'generate the third Friday dates for the next 6 months in YYYYMMDD format', 'get the current UTC datetime as a timezone-aware datetime object', 'get the current UTC datetime as a timezone-naive datetime object', 'get the current UTC datetime formatted as a YYYY-MM-DD HH:MM:SS string', 'review the date module functions for UTC and naive datetime utilities', 'find the best tool matches from a uses schema using BM25, TF-IDF, or embeddings', 'rank corpus documents against a query using the BM25Okapi algorithm', 'rank corpus documents against a query using TF-IDF vectorization and cosine similarity', 'rank corpus documents against a query using sentence transformer embeddings and cosine similarity', 'rerank retrieval results using a cross-encoder model for improved semantic accuracy', 'get the singleton OatConfig instance that holds repo uses index and data settings', 'load public functions from python files into OpenAI tool schemas and callable implementations', 'run a tool call loop that sends a prompt to an LLM and executes returned tool calls', 'determine the best tool source files for a prompt using BM25 retrieval and OAT', 'determine best tools for a prompt, load them, and execute the full tool call loop', 'create a logger Lg instance with a custom name and optional color support', 'log messages at different levels like info, debug, warning, error, and critical', 'save collected log messages to a file with optional append mode and length limits', 'log markdown header strings that get rendered with rich Markdown formatting and colored level tags', 'retrieve the list of all logged messages from the logger instance', 'create an OatPromptChoices model to store matched actions prompts and source file results', 'create an OatConfig instance that loads and indexes a repo uses JSON file', 'review the OatConfig get_prompt_choices method to understand prefix matching and tool result scoring', 'use pp to pretty print a Python dictionary as indented JSON', 'use pp to pretty print a Python list as indented JSON', 'use pp to pretty print any Python object as indented JSON', 'use pp with no arguments to return an empty JSON object', 'use pp to pretty print JSON with forward slashes unescaped']
124
+ ```
125
+
126
+ Usage
127
+
128
+ ```
129
+ {'pp_dict': 'use pp to pretty print a Python dictionary as indented JSON', 'pp_list': 'use pp to pretty print a Python list as indented JSON', 'pp_any': 'use pp to pretty print any Python object as indented JSON', 'pp_none': 'use pp with no arguments to return an empty JSON object', 'pp_escape_slashes': 'use pp to pretty print JSON with forward slashes unescaped'}
130
+ ```
131
+
@@ -0,0 +1 @@
1
+ {"protocol_name":"oat.python.tool","protocol_version":"1.0.0","manifest_id":"960a738e-d0d5-42be-ac83-d05cf9b56bef","created_at":"2026-05-12T19:09:47.067417Z","updated_at":"2026-05-12T19:09:47.067417Z","author":null,"desc":"# Agent Python Tools\n\n- repo: oats\n- repo_uri: ssh://git@git.districtsolutions.ai:2222/District-Solutions/open-agent-tools-coder.git\n\n## File: oats/agent/agent.py\n\nPrompts\n\n```\n['create a new Agent dataclass instance with a custom name, prompt, and agent_type', 'register a custom Agent into the AgentRegistry so it can be retrieved by name', 'get an Agent by name from the global registry using the get_agent function', 'list all available agents from the global registry using the list_agents function', 'get the global AgentRegistry singleton instance using the get_agent_registry function']\n```\n\nUsage\n\n```\n{'create_custom_agent': 'create a new Agent dataclass instance with a custom name, prompt, and agent_type', 'register_agent': 'register a custom Agent into the AgentRegistry so it can be retrieved by name', 'get_agent': 'get an Agent by name from the global registry using the get_agent function', 'list_agents': 'list all available agents from the global registry using the list_agents function', 'get_agent_registry': 'get the global AgentRegistry singleton instance using the get_agent_registry function'}\n```\n","schema_version":"2.0","name":"oats/agent/AGENT.python.tools.md","uses":{"oats/agent/agent.py":{"create_custom_agent":"create a new Agent dataclass instance with a custom name, prompt, and agent_type","register_agent":"register a custom Agent into the AgentRegistry so it can be retrieved by name","get_agent":"get an Agent by name from the global registry using the get_agent function","list_agents":"list all available agents from the global registry using the list_agents function","get_agent_registry":"get the global AgentRegistry singleton instance using the get_agent_registry function"}},"src_ast":{"oats/agent/agent.py":[{"type":"function","function":{"name":"get_agent_registry","description":"Get the global agent registry.","parameters":{"type":"object","properties":{}}},"name":"get_agent_registry","description":"Get the global agent registry."},{"type":"function","function":{"name":"get_agent","description":"Get an agent by name.","parameters":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"name":"get_agent","description":"Get an agent by name."},{"type":"function","function":{"name":"list_agents","description":"List all available agents.","parameters":{"type":"object","properties":{}}},"name":"list_agents","description":"List all available agents."},{"type":"function","function":{"name":"register","description":"Register an agent.","parameters":{"type":"object","properties":{"agent":{"type":"string"}},"required":["agent"]}},"name":"register","description":"Register an agent."},{"type":"function","function":{"name":"get","description":"Get an agent by name.","parameters":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"name":"get","description":"Get an agent by name."},{"type":"function","function":{"name":"list","description":"List all agents.","parameters":{"type":"object","properties":{}}},"name":"list","description":"List all agents."}]},"src_entities":[],"target_entities":["custom_agent","agent","agent","agents","agent_registry"],"ref_entities":["create a new Agent dataclass instance with a custom name, prompt, and agent_type","register a custom Agent into the AgentRegistry so it can be retrieved by name","get an Agent by name from the global registry using the get_agent function","list all available agents from the global registry using the list_agents function","get the global AgentRegistry singleton instance using the get_agent_registry function"],"trigger_words":["create","register","get","list"],"categories":null,"tags":null,"meta":null,"repo":"oats","repo_uri":"ssh://git@git.districtsolutions.ai:2222/District-Solutions/open-agent-tools-coder.git","repo_dir":"/opt/ds/oats","repo_branch":"main","repo_checksum":null,"dirs":["/opt/ds/oats/oats/agent"],"files":["/opt/ds/oats/oats/agent/agent.py"],"tool_types":null,"manifest":null,"df_parquet":null,"user_id":null,"users":null,"groups":null,"status":0,"display_status":"Ready","data_format":null,"models":null,"rlhf_chats":null,"rlhf_events":null,"created":null,"updated":null,"tools":{"get_agent_registry":{"type":"function","function":{"name":"get_agent_registry","description":"Get the global agent registry.","parameters":{"type":"object","properties":{}}},"name":"get_agent_registry","description":"Get the global agent registry."},"get_agent":{"type":"function","function":{"name":"get_agent","description":"Get an agent by name.","parameters":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"name":"get_agent","description":"Get an agent by name."},"list_agents":{"type":"function","function":{"name":"list_agents","description":"List all available agents.","parameters":{"type":"object","properties":{}}},"name":"list_agents","description":"List all available agents."},"register":{"type":"function","function":{"name":"register","description":"Register an agent.","parameters":{"type":"object","properties":{"agent":{"type":"string"}},"required":["agent"]}},"name":"register","description":"Register an agent."},"get":{"type":"function","function":{"name":"get","description":"Get an agent by name.","parameters":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]}},"name":"get","description":"Get an agent by name."},"list":{"type":"function","function":{"name":"list","description":"List all agents.","parameters":{"type":"object","properties":{}}},"name":"list","description":"List all agents."}},"durable":{},"retention":{"retention_days":30,"max_entries":10000,"archive_after_days":7,"purge_on_limit":true,"retention_strategy":"time_based"},"alert_policy":{"alert_on_timeout":true,"alert_on_error":true,"alert_on_cli_fallback":true,"alert_severity_mapping":{},"notification_channels":[]},"execution_history":[],"alerts":[]}
@@ -0,0 +1,19 @@
1
+ # Agent Python Tools
2
+
3
+ - repo: oats
4
+ - repo_uri: ssh://git@git.districtsolutions.ai:2222/District-Solutions/open-agent-tools-coder.git
5
+
6
+ ## File: oats/agent/agent.py
7
+
8
+ Prompts
9
+
10
+ ```
11
+ ['create a new Agent dataclass instance with a custom name, prompt, and agent_type', 'register a custom Agent into the AgentRegistry so it can be retrieved by name', 'get an Agent by name from the global registry using the get_agent function', 'list all available agents from the global registry using the list_agents function', 'get the global AgentRegistry singleton instance using the get_agent_registry function']
12
+ ```
13
+
14
+ Usage
15
+
16
+ ```
17
+ {'create_custom_agent': 'create a new Agent dataclass instance with a custom name, prompt, and agent_type', 'register_agent': 'register a custom Agent into the AgentRegistry so it can be retrieved by name', 'get_agent': 'get an Agent by name from the global registry using the get_agent function', 'list_agents': 'list all available agents from the global registry using the list_agents function', 'get_agent_registry': 'get the global AgentRegistry singleton instance using the get_agent_registry function'}
18
+ ```
19
+