webagents 0.1.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. webagents-0.1.12/.github/workflows/ci.yml +63 -0
  2. webagents-0.1.12/.github/workflows/docs.yml +71 -0
  3. webagents-0.1.12/.github/workflows/publish.yml +59 -0
  4. webagents-0.1.12/.gitignore +106 -0
  5. webagents-0.1.12/.vscode/launch.json +87 -0
  6. webagents-0.1.12/.vscode/settings.json +7 -0
  7. webagents-0.1.12/DESIGN_COHERENCY_REVIEW.md +143 -0
  8. webagents-0.1.12/IMPLEMENTATION_STATUS.md +242 -0
  9. webagents-0.1.12/LICENSE +1 -0
  10. webagents-0.1.12/PAYMENT_TOKENS.md +258 -0
  11. webagents-0.1.12/PKG-INFO +99 -0
  12. webagents-0.1.12/README.md +70 -0
  13. webagents-0.1.12/README_HTTP_IMPLEMENTATION.md +246 -0
  14. webagents-0.1.12/README_VECTOR_MEMORY.md +571 -0
  15. webagents-0.1.12/RELEASE.md +130 -0
  16. webagents-0.1.12/architecture/ROBUTLER_V2_0_IMPLEMENTATION_PLAN.md +775 -0
  17. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch1_Overview.md +313 -0
  18. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch2_Core_Architecture.md +1847 -0
  19. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch3_Skills_System.md +2902 -0
  20. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch4_Server_Tools.md +802 -0
  21. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch5_Integration_Usage.md +1425 -0
  22. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch6_Implementation_Guide.md +1466 -0
  23. webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_INDEX.md +132 -0
  24. webagents-0.1.12/architecture/STEP_1_5_COMPLETION_SUMMARY.md +188 -0
  25. webagents-0.1.12/architecture/STEP_2_2_COMPLETION_SUMMARY.md +257 -0
  26. webagents-0.1.12/demo_base_agent_capabilities.py +241 -0
  27. webagents-0.1.12/demo_handoff_rename.py +90 -0
  28. webagents-0.1.12/demo_http_capabilities.py +268 -0
  29. webagents-0.1.12/docs/CNAME +1 -0
  30. webagents-0.1.12/docs/api/agent.md +420 -0
  31. webagents-0.1.12/docs/api/client_core.md +201 -0
  32. webagents-0.1.12/docs/api/client_data.md +57 -0
  33. webagents-0.1.12/docs/api/client_exceptions.md +166 -0
  34. webagents-0.1.12/docs/api/decorators.md +262 -0
  35. webagents-0.1.12/docs/api/server.md +672 -0
  36. webagents-0.1.12/docs/api/skills/base.md +197 -0
  37. webagents-0.1.12/docs/api/skills/core.md +350 -0
  38. webagents-0.1.12/docs/api/skills/platform.md +430 -0
  39. webagents-0.1.12/docs/api/skills/types.md +304 -0
  40. webagents-0.1.12/docs/assets/Circle_Icon_W.png +0 -0
  41. webagents-0.1.12/docs/assets/Robutler_Logo_300.png +0 -0
  42. webagents-0.1.12/docs/assets/Robutler_Logo_Full.png +0 -0
  43. webagents-0.1.12/docs/assets/Robutler_OG_Card_B.png +0 -0
  44. webagents-0.1.12/docs/assets/Robutler_OG_Card_Nvidia_Yel.png +0 -0
  45. webagents-0.1.12/docs/assets/robutler-logo.svg +1 -0
  46. webagents-0.1.12/docs/assets/robutler_logo.png +0 -0
  47. webagents-0.1.12/docs/blog/.authors.yml +5 -0
  48. webagents-0.1.12/docs/blog/index.md +2 -0
  49. webagents-0.1.12/docs/blog/posts/announcing-robutler.md +27 -0
  50. webagents-0.1.12/docs/blog/posts/launch.md +10 -0
  51. webagents-0.1.12/docs/blog/posts/nvidia-inception-program.md +28 -0
  52. webagents-0.1.12/docs/contact.md +25 -0
  53. webagents-0.1.12/docs/developers/contributing.md +281 -0
  54. webagents-0.1.12/docs/developers/development.md +270 -0
  55. webagents-0.1.12/docs/gen_ref_pages.py +38 -0
  56. webagents-0.1.12/docs/glossary.md +93 -0
  57. webagents-0.1.12/docs/index.md +62 -0
  58. webagents-0.1.12/docs/javascripts/mathjax.js +12 -0
  59. webagents-0.1.12/docs/open-positions.md +36 -0
  60. webagents-0.1.12/docs/payment-errors.md +244 -0
  61. webagents-0.1.12/docs/press-kit.md +95 -0
  62. webagents-0.1.12/docs/requirements.txt +7 -0
  63. webagents-0.1.12/docs/robutler-agents.md +36 -0
  64. webagents-0.1.12/docs/sdk/agent/communication.md +444 -0
  65. webagents-0.1.12/docs/sdk/agent/configuration.md +239 -0
  66. webagents-0.1.12/docs/sdk/agent/endpoints.md +554 -0
  67. webagents-0.1.12/docs/sdk/agent/examples.md +499 -0
  68. webagents-0.1.12/docs/sdk/agent/handoffs.md +373 -0
  69. webagents-0.1.12/docs/sdk/agent/hooks.md +409 -0
  70. webagents-0.1.12/docs/sdk/agent/lifecycle.md +228 -0
  71. webagents-0.1.12/docs/sdk/agent/overview.md +177 -0
  72. webagents-0.1.12/docs/sdk/agent/prompts.md +313 -0
  73. webagents-0.1.12/docs/sdk/agent/skills.md +398 -0
  74. webagents-0.1.12/docs/sdk/agent/tools.md +466 -0
  75. webagents-0.1.12/docs/sdk/api-client.md +343 -0
  76. webagents-0.1.12/docs/sdk/architecture.md +305 -0
  77. webagents-0.1.12/docs/sdk/discovery-and-payments.md +164 -0
  78. webagents-0.1.12/docs/sdk/dynamic-agents.md +178 -0
  79. webagents-0.1.12/docs/sdk/intent-discovery.md +576 -0
  80. webagents-0.1.12/docs/sdk/introduction.md +101 -0
  81. webagents-0.1.12/docs/sdk/monitoring.md +251 -0
  82. webagents-0.1.12/docs/sdk/openai-compatibility.md +552 -0
  83. webagents-0.1.12/docs/sdk/payment-system.md +554 -0
  84. webagents-0.1.12/docs/sdk/quickstart.md +113 -0
  85. webagents-0.1.12/docs/sdk/server.md +147 -0
  86. webagents-0.1.12/docs/sdk/skills/custom.md +425 -0
  87. webagents-0.1.12/docs/sdk/skills/dependencies.md +358 -0
  88. webagents-0.1.12/docs/sdk/skills/overview.md +302 -0
  89. webagents-0.1.12/docs/sdk/v2-server-guide.md +222 -0
  90. webagents-0.1.12/docs/skills/core/llm.md +40 -0
  91. webagents-0.1.12/docs/skills/core/mcp.md +41 -0
  92. webagents-0.1.12/docs/skills/core/memory.md +47 -0
  93. webagents-0.1.12/docs/skills/ecosystem/crewai.md +38 -0
  94. webagents-0.1.12/docs/skills/ecosystem/database.md +39 -0
  95. webagents-0.1.12/docs/skills/ecosystem/filesystem.md +39 -0
  96. webagents-0.1.12/docs/skills/ecosystem/google.md +39 -0
  97. webagents-0.1.12/docs/skills/ecosystem/google_calendar.md +109 -0
  98. webagents-0.1.12/docs/skills/ecosystem/n8n.md +38 -0
  99. webagents-0.1.12/docs/skills/ecosystem/zapier.md +38 -0
  100. webagents-0.1.12/docs/skills/overview.md +69 -0
  101. webagents-0.1.12/docs/skills/platform/auth.md +125 -0
  102. webagents-0.1.12/docs/skills/platform/discovery.md +54 -0
  103. webagents-0.1.12/docs/skills/platform/files.md +237 -0
  104. webagents-0.1.12/docs/skills/platform/kv.md +172 -0
  105. webagents-0.1.12/docs/skills/platform/nli.md +51 -0
  106. webagents-0.1.12/docs/skills/platform/notifications.md +117 -0
  107. webagents-0.1.12/docs/skills/platform/payments.md +164 -0
  108. webagents-0.1.12/docs/stylesheets/extra.css +294 -0
  109. webagents-0.1.12/docs/user/agent.md +133 -0
  110. webagents-0.1.12/docs/user/assistant.md +127 -0
  111. webagents-0.1.12/docs/user/index.md +55 -0
  112. webagents-0.1.12/docs/user/robutler-agent.md +43 -0
  113. webagents-0.1.12/examples/dynamic_agents_demo.py +90 -0
  114. webagents-0.1.12/examples/extensive_agent_server.py +336 -0
  115. webagents-0.1.12/examples/serverbase_example.py +395 -0
  116. webagents-0.1.12/examples/simple_demo.py +50 -0
  117. webagents-0.1.12/examples/v2_server_demo.py +188 -0
  118. webagents-0.1.12/mkdocs.yml +156 -0
  119. webagents-0.1.12/pyproject.toml +65 -0
  120. webagents-0.1.12/pytest.ini +59 -0
  121. webagents-0.1.12/tests/README_HTTP_TESTS.md +260 -0
  122. webagents-0.1.12/tests/__init__.py +1 -0
  123. webagents-0.1.12/tests/agents/core/test_base_agent_http.py +466 -0
  124. webagents-0.1.12/tests/agents/core/test_base_agent_init.py +476 -0
  125. webagents-0.1.12/tests/agents/core/test_base_agent_quick.py +164 -0
  126. webagents-0.1.12/tests/agents/core/test_base_agent_scopes.py +449 -0
  127. webagents-0.1.12/tests/agents/core/test_http_capabilities_integration.py +733 -0
  128. webagents-0.1.12/tests/fixtures/__init__.py +24 -0
  129. webagents-0.1.12/tests/integration/README.md +223 -0
  130. webagents-0.1.12/tests/integration/__init__.py +36 -0
  131. webagents-0.1.12/tests/integration/env.example +44 -0
  132. webagents-0.1.12/tests/integration/integration_config.py +80 -0
  133. webagents-0.1.12/tests/integration/openai_integration_config.md +134 -0
  134. webagents-0.1.12/tests/integration/test_discovery_skill_integration.py +735 -0
  135. webagents-0.1.12/tests/integration/test_dynamic_agents_integration.py +321 -0
  136. webagents-0.1.12/tests/integration/test_external_tools_integration.py +636 -0
  137. webagents-0.1.12/tests/integration/test_integration_litellm.py +537 -0
  138. webagents-0.1.12/tests/integration/test_integration_openai.py +525 -0
  139. webagents-0.1.12/tests/integration/test_payment_skill_integration.py +574 -0
  140. webagents-0.1.12/tests/run_http_tests.py +316 -0
  141. webagents-0.1.12/tests/server/__init__.py +20 -0
  142. webagents-0.1.12/tests/server/conftest.py +397 -0
  143. webagents-0.1.12/tests/server/test_dynamic_agents.py +330 -0
  144. webagents-0.1.12/tests/server/test_http_server_integration.py +599 -0
  145. webagents-0.1.12/tests/server/test_models.py +144 -0
  146. webagents-0.1.12/tests/server/test_monitoring.py +210 -0
  147. webagents-0.1.12/tests/server/test_server_core.py +161 -0
  148. webagents-0.1.12/tests/server/test_server_streaming.py +549 -0
  149. webagents-0.1.12/tests/server/test_streaming_compliance.py +356 -0
  150. webagents-0.1.12/tests/server/test_tool_execution.py +431 -0
  151. webagents-0.1.12/tests/skills/core/README.md +155 -0
  152. webagents-0.1.12/tests/skills/core/conftest.py +395 -0
  153. webagents-0.1.12/tests/skills/core/mcp_test_config.json +249 -0
  154. webagents-0.1.12/tests/skills/core/test_mcp_skill.py +1547 -0
  155. webagents-0.1.12/tests/skills/core/test_mcp_skill_backup.py +1547 -0
  156. webagents-0.1.12/tests/test_auth_skill.py +426 -0
  157. webagents-0.1.12/tests/test_basic_agent.py +122 -0
  158. webagents-0.1.12/tests/test_decorators.py +310 -0
  159. webagents-0.1.12/tests/test_discovery_skill.py +656 -0
  160. webagents-0.1.12/tests/test_litellm_skill.py +352 -0
  161. webagents-0.1.12/tests/test_long_term_memory_skill.py +412 -0
  162. webagents-0.1.12/tests/test_memory_skills.py +284 -0
  163. webagents-0.1.12/tests/test_nli_skill.py +576 -0
  164. webagents-0.1.12/tests/test_payment_skill.py +1166 -0
  165. webagents-0.1.12/tests/test_planner_skill.py +367 -0
  166. webagents-0.1.12/tests/test_prompt_decorator.py +302 -0
  167. webagents-0.1.12/tests/test_robutler_storage_skill.py +392 -0
  168. webagents-0.1.12/tests/test_vector_memory_skill.py +505 -0
  169. webagents-0.1.12/webagents/__init__.py +18 -0
  170. webagents-0.1.12/webagents/agents/__init__.py +13 -0
  171. webagents-0.1.12/webagents/agents/core/__init__.py +19 -0
  172. webagents-0.1.12/webagents/agents/core/base_agent.py +1834 -0
  173. webagents-0.1.12/webagents/agents/core/handoffs.py +293 -0
  174. webagents-0.1.12/webagents/agents/handoffs/__init__.py +0 -0
  175. webagents-0.1.12/webagents/agents/interfaces/__init__.py +0 -0
  176. webagents-0.1.12/webagents/agents/lifecycle/__init__.py +0 -0
  177. webagents-0.1.12/webagents/agents/skills/__init__.py +109 -0
  178. webagents-0.1.12/webagents/agents/skills/base.py +136 -0
  179. webagents-0.1.12/webagents/agents/skills/core/__init__.py +8 -0
  180. webagents-0.1.12/webagents/agents/skills/core/guardrails/__init__.py +0 -0
  181. webagents-0.1.12/webagents/agents/skills/core/llm/__init__.py +0 -0
  182. webagents-0.1.12/webagents/agents/skills/core/llm/anthropic/__init__.py +1 -0
  183. webagents-0.1.12/webagents/agents/skills/core/llm/litellm/__init__.py +10 -0
  184. webagents-0.1.12/webagents/agents/skills/core/llm/litellm/skill.py +538 -0
  185. webagents-0.1.12/webagents/agents/skills/core/llm/openai/__init__.py +1 -0
  186. webagents-0.1.12/webagents/agents/skills/core/llm/xai/__init__.py +1 -0
  187. webagents-0.1.12/webagents/agents/skills/core/mcp/README.md +375 -0
  188. webagents-0.1.12/webagents/agents/skills/core/mcp/__init__.py +15 -0
  189. webagents-0.1.12/webagents/agents/skills/core/mcp/skill.py +731 -0
  190. webagents-0.1.12/webagents/agents/skills/core/memory/__init__.py +11 -0
  191. webagents-0.1.12/webagents/agents/skills/core/memory/long_term_memory/__init__.py +10 -0
  192. webagents-0.1.12/webagents/agents/skills/core/memory/long_term_memory/memory_skill.py +639 -0
  193. webagents-0.1.12/webagents/agents/skills/core/memory/short_term_memory/__init__.py +9 -0
  194. webagents-0.1.12/webagents/agents/skills/core/memory/short_term_memory/skill.py +341 -0
  195. webagents-0.1.12/webagents/agents/skills/core/memory/vector_memory/skill.py +447 -0
  196. webagents-0.1.12/webagents/agents/skills/core/planning/__init__.py +9 -0
  197. webagents-0.1.12/webagents/agents/skills/core/planning/planner.py +343 -0
  198. webagents-0.1.12/webagents/agents/skills/ecosystem/__init__.py +0 -0
  199. webagents-0.1.12/webagents/agents/skills/ecosystem/crewai/__init__.py +1 -0
  200. webagents-0.1.12/webagents/agents/skills/ecosystem/database/__init__.py +1 -0
  201. webagents-0.1.12/webagents/agents/skills/ecosystem/filesystem/__init__.py +0 -0
  202. webagents-0.1.12/webagents/agents/skills/ecosystem/google/__init__.py +0 -0
  203. webagents-0.1.12/webagents/agents/skills/ecosystem/google/calendar/__init__.py +6 -0
  204. webagents-0.1.12/webagents/agents/skills/ecosystem/google/calendar/skill.py +306 -0
  205. webagents-0.1.12/webagents/agents/skills/ecosystem/n8n/__init__.py +0 -0
  206. webagents-0.1.12/webagents/agents/skills/ecosystem/openai_agents/__init__.py +0 -0
  207. webagents-0.1.12/webagents/agents/skills/ecosystem/web/__init__.py +0 -0
  208. webagents-0.1.12/webagents/agents/skills/ecosystem/zapier/__init__.py +0 -0
  209. webagents-0.1.12/webagents/agents/skills/robutler/__init__.py +11 -0
  210. webagents-0.1.12/webagents/agents/skills/robutler/auth/README.md +63 -0
  211. webagents-0.1.12/webagents/agents/skills/robutler/auth/__init__.py +17 -0
  212. webagents-0.1.12/webagents/agents/skills/robutler/auth/skill.py +354 -0
  213. webagents-0.1.12/webagents/agents/skills/robutler/crm/__init__.py +18 -0
  214. webagents-0.1.12/webagents/agents/skills/robutler/crm/skill.py +368 -0
  215. webagents-0.1.12/webagents/agents/skills/robutler/discovery/README.md +281 -0
  216. webagents-0.1.12/webagents/agents/skills/robutler/discovery/__init__.py +16 -0
  217. webagents-0.1.12/webagents/agents/skills/robutler/discovery/skill.py +230 -0
  218. webagents-0.1.12/webagents/agents/skills/robutler/kv/__init__.py +6 -0
  219. webagents-0.1.12/webagents/agents/skills/robutler/kv/skill.py +80 -0
  220. webagents-0.1.12/webagents/agents/skills/robutler/message_history/__init__.py +9 -0
  221. webagents-0.1.12/webagents/agents/skills/robutler/message_history/skill.py +270 -0
  222. webagents-0.1.12/webagents/agents/skills/robutler/messages/__init__.py +0 -0
  223. webagents-0.1.12/webagents/agents/skills/robutler/nli/__init__.py +13 -0
  224. webagents-0.1.12/webagents/agents/skills/robutler/nli/skill.py +687 -0
  225. webagents-0.1.12/webagents/agents/skills/robutler/notifications/__init__.py +5 -0
  226. webagents-0.1.12/webagents/agents/skills/robutler/notifications/skill.py +141 -0
  227. webagents-0.1.12/webagents/agents/skills/robutler/payments/__init__.py +41 -0
  228. webagents-0.1.12/webagents/agents/skills/robutler/payments/exceptions.py +255 -0
  229. webagents-0.1.12/webagents/agents/skills/robutler/payments/skill.py +610 -0
  230. webagents-0.1.12/webagents/agents/skills/robutler/storage/__init__.py +10 -0
  231. webagents-0.1.12/webagents/agents/skills/robutler/storage/files/__init__.py +9 -0
  232. webagents-0.1.12/webagents/agents/skills/robutler/storage/files/skill.py +445 -0
  233. webagents-0.1.12/webagents/agents/skills/robutler/storage/json/__init__.py +9 -0
  234. webagents-0.1.12/webagents/agents/skills/robutler/storage/json/skill.py +336 -0
  235. webagents-0.1.12/webagents/agents/skills/robutler/storage/kv/skill.py +88 -0
  236. webagents-0.1.12/webagents/agents/skills/robutler/storage.py +389 -0
  237. webagents-0.1.12/webagents/agents/tools/__init__.py +0 -0
  238. webagents-0.1.12/webagents/agents/tools/decorators.py +426 -0
  239. webagents-0.1.12/webagents/agents/tracing/__init__.py +0 -0
  240. webagents-0.1.12/webagents/agents/workflows/__init__.py +0 -0
  241. webagents-0.1.12/webagents/api/__init__.py +17 -0
  242. webagents-0.1.12/webagents/api/client.py +1207 -0
  243. webagents-0.1.12/webagents/api/types.py +253 -0
  244. webagents-0.1.12/webagents/scripts/__init__.py +0 -0
  245. webagents-0.1.12/webagents/server/__init__.py +28 -0
  246. webagents-0.1.12/webagents/server/context/__init__.py +0 -0
  247. webagents-0.1.12/webagents/server/context/context_vars.py +121 -0
  248. webagents-0.1.12/webagents/server/core/__init__.py +0 -0
  249. webagents-0.1.12/webagents/server/core/app.py +843 -0
  250. webagents-0.1.12/webagents/server/core/middleware.py +69 -0
  251. webagents-0.1.12/webagents/server/core/models.py +98 -0
  252. webagents-0.1.12/webagents/server/core/monitoring.py +59 -0
  253. webagents-0.1.12/webagents/server/endpoints/__init__.py +0 -0
  254. webagents-0.1.12/webagents/server/interfaces/__init__.py +0 -0
  255. webagents-0.1.12/webagents/server/middleware.py +330 -0
  256. webagents-0.1.12/webagents/server/models.py +92 -0
  257. webagents-0.1.12/webagents/server/monitoring.py +659 -0
  258. webagents-0.1.12/webagents/utils/__init__.py +0 -0
  259. webagents-0.1.12/webagents/utils/logging.py +359 -0
@@ -0,0 +1,63 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main, develop ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ['3.10', '3.11', '3.12']
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python ${{ matrix.python-version }}
20
+ uses: actions/setup-python@v4
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+
24
+ - name: Install dependencies
25
+ run: |
26
+ python -m pip install --upgrade pip
27
+ pip install -e ".[dev]"
28
+
29
+ - name: Lint with ruff
30
+ run: ruff check .
31
+
32
+ - name: Format check with black
33
+ run: black --check .
34
+
35
+ - name: Type check with mypy
36
+ run: mypy robutler/
37
+ continue-on-error: true
38
+
39
+ - name: Run tests
40
+ run: pytest
41
+
42
+ build:
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: actions/checkout@v4
46
+
47
+ - name: Set up Python
48
+ uses: actions/setup-python@v4
49
+ with:
50
+ python-version: '3.10'
51
+
52
+ - name: Install build dependencies
53
+ run: |
54
+ python -m pip install --upgrade pip
55
+ pip install build
56
+
57
+ - name: Build package
58
+ run: python -m build
59
+
60
+ - name: Check package
61
+ run: |
62
+ pip install twine
63
+ twine check dist/*
@@ -0,0 +1,71 @@
1
+ name: Build and Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ permissions:
10
+ contents: read
11
+ pages: write
12
+ id-token: write
13
+
14
+ concurrency:
15
+ group: "pages"
16
+ cancel-in-progress: false
17
+
18
+ jobs:
19
+ build:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+ with:
25
+ fetch-depth: 0
26
+
27
+ - name: Setup Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: '3.11'
31
+
32
+ - name: Cache dependencies
33
+ uses: actions/cache@v4
34
+ with:
35
+ path: ~/.cache/pip
36
+ key: ${{ runner.os }}-pip-${{ hashFiles('docs/requirements.txt') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-pip-
39
+
40
+ - name: Install dependencies
41
+ run: |
42
+ python -m pip install --upgrade pip
43
+ pip install -r docs/requirements.txt
44
+ pip install -e .
45
+
46
+ - name: Setup Pages
47
+ id: pages
48
+ uses: actions/configure-pages@v4
49
+
50
+ - name: Build documentation
51
+ run: |
52
+ mkdocs build --clean
53
+ env:
54
+ SITE_URL: https://docs.robutler.ai/
55
+
56
+ - name: Upload artifact
57
+ uses: actions/upload-pages-artifact@v3
58
+ with:
59
+ path: ./site
60
+
61
+ deploy:
62
+ if: github.ref == 'refs/heads/main'
63
+ environment:
64
+ name: github-pages
65
+ url: ${{ steps.deployment.outputs.page_url }}
66
+ runs-on: ubuntu-latest
67
+ needs: build
68
+ steps:
69
+ - name: Deploy to GitHub Pages
70
+ id: deployment
71
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,59 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ workflow_dispatch:
8
+ inputs:
9
+ version:
10
+ description: 'Version to publish (e.g., 0.1.0)'
11
+ required: true
12
+ type: string
13
+
14
+ permissions:
15
+ contents: write
16
+ id-token: write
17
+
18
+ jobs:
19
+ build:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - name: Set up Python
25
+ uses: actions/setup-python@v4
26
+ with:
27
+ python-version: '3.10'
28
+
29
+ - name: Install build dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install build twine
33
+
34
+ - name: Update version
35
+ if: github.event_name == 'workflow_dispatch'
36
+ run: |
37
+ sed -i 's/version = ".*"/version = "${{ github.event.inputs.version }}"/' pyproject.toml
38
+
39
+ - name: Build package
40
+ run: python -m build
41
+
42
+ - name: Check package
43
+ run: twine check dist/*
44
+
45
+ - name: Upload to PyPI
46
+ env:
47
+ TWINE_USERNAME: __token__
48
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
49
+ run: twine upload dist/*
50
+
51
+ - name: Create GitHub Release
52
+ if: github.event_name == 'push'
53
+ run: |
54
+ gh release create ${{ github.ref_name }} \
55
+ --title "Release ${{ github.ref_name }}" \
56
+ --notes "Release ${{ github.ref_name }}" \
57
+ --latest
58
+ env:
59
+ GITHUB_TOKEN: ${{ secrets.GH_PAT }}
@@ -0,0 +1,106 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # PyInstaller
28
+ *.manifest
29
+ *.spec
30
+
31
+ # Installer logs
32
+ pip-log.txt
33
+ pip-delete-this-directory.txt
34
+
35
+ # Unit test / coverage reports
36
+ htmlcov/
37
+ .tox/
38
+ .coverage
39
+ .coverage.*
40
+ .cache
41
+ nosetests.xml
42
+ coverage.xml
43
+ *.cover
44
+ .hypothesis/
45
+ .pytest_cache/
46
+
47
+ # Translations
48
+ *.mo
49
+ *.pot
50
+
51
+ # Django stuff:
52
+ *.log
53
+ local_settings.py
54
+ db.sqlite3
55
+
56
+ # Flask stuff:
57
+ instance/
58
+ .webassets-cache
59
+
60
+ # Scrapy stuff:
61
+ .scrapy
62
+
63
+ # Sphinx documentation
64
+ docs/_build/
65
+
66
+ # PyBuilder
67
+ target/
68
+
69
+ # Jupyter Notebook
70
+ .ipynb_checkpoints
71
+
72
+ # pyenv
73
+ .python-version
74
+
75
+ # celery beat schedule file
76
+ celerybeat-schedule
77
+
78
+ # SageMath parsed files
79
+ *.sage.py
80
+
81
+ # Environments
82
+ .env
83
+ .venv
84
+ env/
85
+ venv/
86
+ ENV/
87
+ env.bak/
88
+ venv.bak/
89
+
90
+ # Spyder project settings
91
+ .spyderproject
92
+ .spyproject
93
+
94
+ # Rope project settings
95
+ .ropeproject
96
+
97
+ # mkdocs documentation
98
+ /site
99
+
100
+ # mypy
101
+ .mypy_cache/
102
+
103
+ # IDE specific files
104
+ .idea/
105
+ *.swp
106
+ *.swo
@@ -0,0 +1,87 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "configurations": [
4
+ {
5
+ "name": "Connect",
6
+ "type": "debugpy",
7
+ "request": "launch",
8
+ "program": "${workspaceFolder}/robutler/connect/MCP.py",
9
+ "env": {
10
+ "PYTHONPATH": "${workspaceFolder}"
11
+ },
12
+ "args": [
13
+ "--transport=streamable-http",
14
+ "--host=127.0.0.1",
15
+ "--port=4444",
16
+ "--path=/mcp",
17
+ "--name=Robutler Connect Server"
18
+ ],
19
+ "console": "integratedTerminal",
20
+ "justMyCode": false
21
+ },
22
+ {
23
+ "name": "Simple Demo",
24
+ "type": "debugpy",
25
+ "request": "launch",
26
+ "program": "${workspaceFolder}/examples/simple_demo.py",
27
+ "env": {
28
+ "PYTHONPATH": "${workspaceFolder}"
29
+ },
30
+ "console": "integratedTerminal",
31
+ "justMyCode": false,
32
+ "presentation": {
33
+ "hidden": false,
34
+ "group": "demos",
35
+ "order": 1
36
+ }
37
+ },
38
+ {
39
+ "name": "Extensive Demo",
40
+ "type": "debugpy",
41
+ "request": "launch",
42
+ "program": "${workspaceFolder}/examples/extensive_agent_server.py",
43
+ "env": {
44
+ "PYTHONPATH": "${workspaceFolder}"
45
+ },
46
+ "console": "integratedTerminal",
47
+ "justMyCode": false,
48
+ "presentation": {
49
+ "hidden": false,
50
+ "group": "demos",
51
+ "order": 2
52
+ }
53
+ },
54
+ {
55
+ "name": "Extensive Demo (No Payments)",
56
+ "type": "debugpy",
57
+ "request": "launch",
58
+ "program": "${workspaceFolder}/examples/extensive_agent_server.py",
59
+ "env": {
60
+ "PYTHONPATH": "${workspaceFolder}"
61
+ },
62
+ "args": [
63
+ "--no-payments"
64
+ ],
65
+ "console": "integratedTerminal",
66
+ "justMyCode": false,
67
+ "presentation": {
68
+ "hidden": false,
69
+ "group": "demos",
70
+ "order": 3
71
+ }
72
+ }
73
+ ],
74
+ "compounds": [
75
+ {
76
+ "name": "All Demos",
77
+ "configurations": ["Simple Demo", "Extensive Demo"],
78
+ "stopAll": true,
79
+ "preLaunchTask": "",
80
+ "presentation": {
81
+ "hidden": false,
82
+ "group": "demos",
83
+ "order": 1
84
+ }
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "python.testing.pytestArgs": [
3
+ "tests"
4
+ ],
5
+ "python.testing.unittestEnabled": false,
6
+ "python.testing.pytestEnabled": true
7
+ }
@@ -0,0 +1,143 @@
1
+ # Robutler V2.0 Design Coherency Review
2
+
3
+ ## 🎯 **Executive Summary**
4
+
5
+ Comprehensive review of all design documents reveals several **critical consistency issues** that must be addressed before implementation to prevent conceptual conflicts and ensure clear implementation guidance.
6
+
7
+ ## ✅ **Issues RESOLVED**
8
+
9
+ ### 1. Skills Folder Structure ✅ FIXED
10
+ - **Issue**: Skills were organized in subdirectories (`skills/core/memory/`, `skills/robutler/`)
11
+ - **Requirement**: User requested **1 skill = 1 folder**
12
+ - **Solution**: Updated Chapters 2 & 3 to use:
13
+ ```
14
+ skills/
15
+ ├── short_term_memory/
16
+ │ ├── __init__.py
17
+ │ └── skill.py
18
+ ├── openai/
19
+ │ ├── __init__.py
20
+ │ └── skill.py
21
+ ├── litellm/ # PRIORITY V2.0
22
+ │ ├── __init__.py
23
+ │ └── skill.py
24
+ ```
25
+
26
+ ### 2. Import Statements ✅ FIXED
27
+ - **Progress**: Completed systematic updates across all design documents
28
+ - **Completed**: Updated Chapters 2, 3, 4, 5, 6 with consistent import patterns
29
+ - **Pattern**: `from robutler.agents.skills.openai import OpenAISkill`
30
+
31
+ ## ✅ **CRITICAL Issues RESOLVED**
32
+
33
+ ### 1. HANDOFF SYSTEM CONFLICT ✅ RESOLVED
34
+ **Issue**: Major conceptual conflict between implementation plan and design documents
35
+
36
+ **RESOLUTION**: **OPTION C** - Moved basic handoffs back to V2.0 scope
37
+ - ✅ **Basic Handoff System** added to V2.0: `@handoff` decorator, `LocalAgentHandoff`, `HandoffResult`
38
+ - ✅ **Advanced Handoff Types** remain in V2.1: `RemoteAgentHandoff`, `CrewAIHandoff`, etc.
39
+ - ✅ **Implementation Plan Updated**: Handoffs now in Iteration 4.3
40
+ - ✅ **Design Documents Consistent**: No conflicts between plan and docs
41
+
42
+ **Status**: **RESOLVED** - developers have clear guidance on what to implement
43
+
44
+ ### 2. FEATURE VERSION MISALIGNMENT ⚠️ MEDIUM
45
+ **Issue**: Design documents reference features assigned to V2.1
46
+
47
+ **Examples**:
48
+ - GuardrailsSkill examples in Chapter 3, 5 (moved to V2.1)
49
+ - XAI/Grok integration examples (moved to V2.1)
50
+ - Extended skills (filesystem, google, database) in examples (moved to V2.1)
51
+
52
+ **SOLUTION**: Add version markers to all examples:
53
+ ```python
54
+ # V2.0 Example: Core functionality
55
+ agent = BaseAgent(model="litellm/gpt-4o", skills={"auth": AuthSkill()})
56
+
57
+ # V2.1 Preview: Advanced features
58
+ # agent.add_skill("guardrails", GuardrailsSkill()) # V2.1
59
+ ```
60
+
61
+ ### 3. IMPORT STATEMENTS CONSISTENCY ✅ RESOLVED
62
+ **Issue**: Mix of old/new import paths across documents
63
+
64
+ **RESOLUTION**: Completed systematic find/replace across all chapters:
65
+ - ✅ Updated 20+ import statements across Chapters 2, 3, 5, 6
66
+ - ✅ Consistent import pattern: `from robutler.agents.skills.openai import OpenAISkill`
67
+ - ✅ All V2.1 features marked with `# V2.1` comments
68
+ - ✅ New folder structure consistently applied
69
+
70
+ ## 📋 **IMPLEMENTATION READINESS CHECKLIST**
71
+
72
+ ### ✅ **BLOCKING ISSUES** (RESOLVED):
73
+ - [x] **Handoff System Conflict** - Basic handoffs moved to V2.0, advanced to V2.1
74
+ - [x] **Feature Version Alignment** - V2.1 features marked with `# V2.1` comments
75
+
76
+ ### ✅ **HIGH PRIORITY** (RESOLVED):
77
+ - [x] Skills folder structure consistency - 1 skill = 1 folder implemented
78
+ - [x] Complete import statement updates - All imports use new structure
79
+ - [x] Add V2.0/V2.1 version markers throughout - Added consistently
80
+
81
+ ### ✅ **LOW PRIORITY** (COMPLETE):
82
+ - [x] Implementation plan priorities clearly defined
83
+ - [x] Core V2.0 features identified
84
+ - [x] External tools support specified
85
+ - [x] Basic handoff system included in V2.0 scope
86
+
87
+ ## 🎯 **RECOMMENDED FIXES**
88
+
89
+ ### Immediate Actions (Pre-Implementation):
90
+
91
+ 1. **Address Handoff Conflict** (1-2 hours):
92
+ ```bash
93
+ # Option B: Mark as V2.1 preview
94
+ - Add "# V2.1 PREVIEW" comments to all handoff examples
95
+ - Replace V2.0 coordination examples with NLI-based approach
96
+ - Keep handoff design for reference but mark clearly
97
+ ```
98
+
99
+ 2. **Complete Import Updates** (30 minutes):
100
+ ```bash
101
+ # Systematic find/replace across all chapters:
102
+ s/robutler\.agents\.skills\.core\.llm\./robutler.agents.skills./g
103
+ s/robutler\.agents\.skills\.core\.memory\./robutler.agents.skills./g
104
+ s/robutler\.agents\.skills\.robutler\./robutler.agents.skills./g
105
+ s/robutler\.agents\.skills\.extra\./robutler.agents.skills./g
106
+ ```
107
+
108
+ 3. **Add Version Markers** (30 minutes):
109
+ ```python
110
+ # Add to all examples:
111
+ # V2.0: Core feature
112
+ # V2.1: Advanced feature (move to V2.1)
113
+ ```
114
+
115
+ ### Long-term Consistency Maintenance:
116
+
117
+ 1. **Version-Specific Examples**: Keep V2.0 examples focused on implementation plan priorities
118
+ 2. **Clear Separation**: V2.1 features clearly marked and separated
119
+ 3. **Import Consistency**: Enforce single import pattern across all docs
120
+
121
+ ## 🏆 **FINAL RECOMMENDATION**
122
+
123
+ **READY FOR IMPLEMENTATION**: ✅ **YES - ALL ISSUES RESOLVED**
124
+
125
+ The design documents provide **excellent foundation** for implementation with **full coherency** achieved across all documents.
126
+
127
+ **Resolution Summary**: ✅ **COMPLETE**
128
+ - ✅ **Handoff Conflict**: Basic handoffs in V2.0, advanced in V2.1
129
+ - ✅ **Import Consistency**: All imports updated to new folder structure
130
+ - ✅ **Version Alignment**: V2.1 features clearly marked throughout
131
+ - ✅ **Folder Structure**: 1 skill = 1 folder consistently implemented
132
+
133
+ **Implementation Confidence**: **EXCELLENT** - the design provides clear, comprehensive, and consistent guidance for building production-ready Robutler V2.0.
134
+
135
+ ---
136
+
137
+ **STATUS**: 🚀 **READY TO START IMPLEMENTATION**
138
+ - ✅ All blocking issues resolved
139
+ - ✅ All high priority issues resolved
140
+ - ✅ Complete design coherency achieved
141
+ - ✅ Clear implementation guidance provided
142
+
143
+ 🎯 **START IMPLEMENTATION** with Iteration 1, Step 1.1 - The foundation is solid and consistent! ✨