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.
- webagents-0.1.12/.github/workflows/ci.yml +63 -0
- webagents-0.1.12/.github/workflows/docs.yml +71 -0
- webagents-0.1.12/.github/workflows/publish.yml +59 -0
- webagents-0.1.12/.gitignore +106 -0
- webagents-0.1.12/.vscode/launch.json +87 -0
- webagents-0.1.12/.vscode/settings.json +7 -0
- webagents-0.1.12/DESIGN_COHERENCY_REVIEW.md +143 -0
- webagents-0.1.12/IMPLEMENTATION_STATUS.md +242 -0
- webagents-0.1.12/LICENSE +1 -0
- webagents-0.1.12/PAYMENT_TOKENS.md +258 -0
- webagents-0.1.12/PKG-INFO +99 -0
- webagents-0.1.12/README.md +70 -0
- webagents-0.1.12/README_HTTP_IMPLEMENTATION.md +246 -0
- webagents-0.1.12/README_VECTOR_MEMORY.md +571 -0
- webagents-0.1.12/RELEASE.md +130 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_0_IMPLEMENTATION_PLAN.md +775 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch1_Overview.md +313 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch2_Core_Architecture.md +1847 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch3_Skills_System.md +2902 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch4_Server_Tools.md +802 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch5_Integration_Usage.md +1425 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_Ch6_Implementation_Guide.md +1466 -0
- webagents-0.1.12/architecture/ROBUTLER_V2_DESIGN_INDEX.md +132 -0
- webagents-0.1.12/architecture/STEP_1_5_COMPLETION_SUMMARY.md +188 -0
- webagents-0.1.12/architecture/STEP_2_2_COMPLETION_SUMMARY.md +257 -0
- webagents-0.1.12/demo_base_agent_capabilities.py +241 -0
- webagents-0.1.12/demo_handoff_rename.py +90 -0
- webagents-0.1.12/demo_http_capabilities.py +268 -0
- webagents-0.1.12/docs/CNAME +1 -0
- webagents-0.1.12/docs/api/agent.md +420 -0
- webagents-0.1.12/docs/api/client_core.md +201 -0
- webagents-0.1.12/docs/api/client_data.md +57 -0
- webagents-0.1.12/docs/api/client_exceptions.md +166 -0
- webagents-0.1.12/docs/api/decorators.md +262 -0
- webagents-0.1.12/docs/api/server.md +672 -0
- webagents-0.1.12/docs/api/skills/base.md +197 -0
- webagents-0.1.12/docs/api/skills/core.md +350 -0
- webagents-0.1.12/docs/api/skills/platform.md +430 -0
- webagents-0.1.12/docs/api/skills/types.md +304 -0
- webagents-0.1.12/docs/assets/Circle_Icon_W.png +0 -0
- webagents-0.1.12/docs/assets/Robutler_Logo_300.png +0 -0
- webagents-0.1.12/docs/assets/Robutler_Logo_Full.png +0 -0
- webagents-0.1.12/docs/assets/Robutler_OG_Card_B.png +0 -0
- webagents-0.1.12/docs/assets/Robutler_OG_Card_Nvidia_Yel.png +0 -0
- webagents-0.1.12/docs/assets/robutler-logo.svg +1 -0
- webagents-0.1.12/docs/assets/robutler_logo.png +0 -0
- webagents-0.1.12/docs/blog/.authors.yml +5 -0
- webagents-0.1.12/docs/blog/index.md +2 -0
- webagents-0.1.12/docs/blog/posts/announcing-robutler.md +27 -0
- webagents-0.1.12/docs/blog/posts/launch.md +10 -0
- webagents-0.1.12/docs/blog/posts/nvidia-inception-program.md +28 -0
- webagents-0.1.12/docs/contact.md +25 -0
- webagents-0.1.12/docs/developers/contributing.md +281 -0
- webagents-0.1.12/docs/developers/development.md +270 -0
- webagents-0.1.12/docs/gen_ref_pages.py +38 -0
- webagents-0.1.12/docs/glossary.md +93 -0
- webagents-0.1.12/docs/index.md +62 -0
- webagents-0.1.12/docs/javascripts/mathjax.js +12 -0
- webagents-0.1.12/docs/open-positions.md +36 -0
- webagents-0.1.12/docs/payment-errors.md +244 -0
- webagents-0.1.12/docs/press-kit.md +95 -0
- webagents-0.1.12/docs/requirements.txt +7 -0
- webagents-0.1.12/docs/robutler-agents.md +36 -0
- webagents-0.1.12/docs/sdk/agent/communication.md +444 -0
- webagents-0.1.12/docs/sdk/agent/configuration.md +239 -0
- webagents-0.1.12/docs/sdk/agent/endpoints.md +554 -0
- webagents-0.1.12/docs/sdk/agent/examples.md +499 -0
- webagents-0.1.12/docs/sdk/agent/handoffs.md +373 -0
- webagents-0.1.12/docs/sdk/agent/hooks.md +409 -0
- webagents-0.1.12/docs/sdk/agent/lifecycle.md +228 -0
- webagents-0.1.12/docs/sdk/agent/overview.md +177 -0
- webagents-0.1.12/docs/sdk/agent/prompts.md +313 -0
- webagents-0.1.12/docs/sdk/agent/skills.md +398 -0
- webagents-0.1.12/docs/sdk/agent/tools.md +466 -0
- webagents-0.1.12/docs/sdk/api-client.md +343 -0
- webagents-0.1.12/docs/sdk/architecture.md +305 -0
- webagents-0.1.12/docs/sdk/discovery-and-payments.md +164 -0
- webagents-0.1.12/docs/sdk/dynamic-agents.md +178 -0
- webagents-0.1.12/docs/sdk/intent-discovery.md +576 -0
- webagents-0.1.12/docs/sdk/introduction.md +101 -0
- webagents-0.1.12/docs/sdk/monitoring.md +251 -0
- webagents-0.1.12/docs/sdk/openai-compatibility.md +552 -0
- webagents-0.1.12/docs/sdk/payment-system.md +554 -0
- webagents-0.1.12/docs/sdk/quickstart.md +113 -0
- webagents-0.1.12/docs/sdk/server.md +147 -0
- webagents-0.1.12/docs/sdk/skills/custom.md +425 -0
- webagents-0.1.12/docs/sdk/skills/dependencies.md +358 -0
- webagents-0.1.12/docs/sdk/skills/overview.md +302 -0
- webagents-0.1.12/docs/sdk/v2-server-guide.md +222 -0
- webagents-0.1.12/docs/skills/core/llm.md +40 -0
- webagents-0.1.12/docs/skills/core/mcp.md +41 -0
- webagents-0.1.12/docs/skills/core/memory.md +47 -0
- webagents-0.1.12/docs/skills/ecosystem/crewai.md +38 -0
- webagents-0.1.12/docs/skills/ecosystem/database.md +39 -0
- webagents-0.1.12/docs/skills/ecosystem/filesystem.md +39 -0
- webagents-0.1.12/docs/skills/ecosystem/google.md +39 -0
- webagents-0.1.12/docs/skills/ecosystem/google_calendar.md +109 -0
- webagents-0.1.12/docs/skills/ecosystem/n8n.md +38 -0
- webagents-0.1.12/docs/skills/ecosystem/zapier.md +38 -0
- webagents-0.1.12/docs/skills/overview.md +69 -0
- webagents-0.1.12/docs/skills/platform/auth.md +125 -0
- webagents-0.1.12/docs/skills/platform/discovery.md +54 -0
- webagents-0.1.12/docs/skills/platform/files.md +237 -0
- webagents-0.1.12/docs/skills/platform/kv.md +172 -0
- webagents-0.1.12/docs/skills/platform/nli.md +51 -0
- webagents-0.1.12/docs/skills/platform/notifications.md +117 -0
- webagents-0.1.12/docs/skills/platform/payments.md +164 -0
- webagents-0.1.12/docs/stylesheets/extra.css +294 -0
- webagents-0.1.12/docs/user/agent.md +133 -0
- webagents-0.1.12/docs/user/assistant.md +127 -0
- webagents-0.1.12/docs/user/index.md +55 -0
- webagents-0.1.12/docs/user/robutler-agent.md +43 -0
- webagents-0.1.12/examples/dynamic_agents_demo.py +90 -0
- webagents-0.1.12/examples/extensive_agent_server.py +336 -0
- webagents-0.1.12/examples/serverbase_example.py +395 -0
- webagents-0.1.12/examples/simple_demo.py +50 -0
- webagents-0.1.12/examples/v2_server_demo.py +188 -0
- webagents-0.1.12/mkdocs.yml +156 -0
- webagents-0.1.12/pyproject.toml +65 -0
- webagents-0.1.12/pytest.ini +59 -0
- webagents-0.1.12/tests/README_HTTP_TESTS.md +260 -0
- webagents-0.1.12/tests/__init__.py +1 -0
- webagents-0.1.12/tests/agents/core/test_base_agent_http.py +466 -0
- webagents-0.1.12/tests/agents/core/test_base_agent_init.py +476 -0
- webagents-0.1.12/tests/agents/core/test_base_agent_quick.py +164 -0
- webagents-0.1.12/tests/agents/core/test_base_agent_scopes.py +449 -0
- webagents-0.1.12/tests/agents/core/test_http_capabilities_integration.py +733 -0
- webagents-0.1.12/tests/fixtures/__init__.py +24 -0
- webagents-0.1.12/tests/integration/README.md +223 -0
- webagents-0.1.12/tests/integration/__init__.py +36 -0
- webagents-0.1.12/tests/integration/env.example +44 -0
- webagents-0.1.12/tests/integration/integration_config.py +80 -0
- webagents-0.1.12/tests/integration/openai_integration_config.md +134 -0
- webagents-0.1.12/tests/integration/test_discovery_skill_integration.py +735 -0
- webagents-0.1.12/tests/integration/test_dynamic_agents_integration.py +321 -0
- webagents-0.1.12/tests/integration/test_external_tools_integration.py +636 -0
- webagents-0.1.12/tests/integration/test_integration_litellm.py +537 -0
- webagents-0.1.12/tests/integration/test_integration_openai.py +525 -0
- webagents-0.1.12/tests/integration/test_payment_skill_integration.py +574 -0
- webagents-0.1.12/tests/run_http_tests.py +316 -0
- webagents-0.1.12/tests/server/__init__.py +20 -0
- webagents-0.1.12/tests/server/conftest.py +397 -0
- webagents-0.1.12/tests/server/test_dynamic_agents.py +330 -0
- webagents-0.1.12/tests/server/test_http_server_integration.py +599 -0
- webagents-0.1.12/tests/server/test_models.py +144 -0
- webagents-0.1.12/tests/server/test_monitoring.py +210 -0
- webagents-0.1.12/tests/server/test_server_core.py +161 -0
- webagents-0.1.12/tests/server/test_server_streaming.py +549 -0
- webagents-0.1.12/tests/server/test_streaming_compliance.py +356 -0
- webagents-0.1.12/tests/server/test_tool_execution.py +431 -0
- webagents-0.1.12/tests/skills/core/README.md +155 -0
- webagents-0.1.12/tests/skills/core/conftest.py +395 -0
- webagents-0.1.12/tests/skills/core/mcp_test_config.json +249 -0
- webagents-0.1.12/tests/skills/core/test_mcp_skill.py +1547 -0
- webagents-0.1.12/tests/skills/core/test_mcp_skill_backup.py +1547 -0
- webagents-0.1.12/tests/test_auth_skill.py +426 -0
- webagents-0.1.12/tests/test_basic_agent.py +122 -0
- webagents-0.1.12/tests/test_decorators.py +310 -0
- webagents-0.1.12/tests/test_discovery_skill.py +656 -0
- webagents-0.1.12/tests/test_litellm_skill.py +352 -0
- webagents-0.1.12/tests/test_long_term_memory_skill.py +412 -0
- webagents-0.1.12/tests/test_memory_skills.py +284 -0
- webagents-0.1.12/tests/test_nli_skill.py +576 -0
- webagents-0.1.12/tests/test_payment_skill.py +1166 -0
- webagents-0.1.12/tests/test_planner_skill.py +367 -0
- webagents-0.1.12/tests/test_prompt_decorator.py +302 -0
- webagents-0.1.12/tests/test_robutler_storage_skill.py +392 -0
- webagents-0.1.12/tests/test_vector_memory_skill.py +505 -0
- webagents-0.1.12/webagents/__init__.py +18 -0
- webagents-0.1.12/webagents/agents/__init__.py +13 -0
- webagents-0.1.12/webagents/agents/core/__init__.py +19 -0
- webagents-0.1.12/webagents/agents/core/base_agent.py +1834 -0
- webagents-0.1.12/webagents/agents/core/handoffs.py +293 -0
- webagents-0.1.12/webagents/agents/handoffs/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/interfaces/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/lifecycle/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/__init__.py +109 -0
- webagents-0.1.12/webagents/agents/skills/base.py +136 -0
- webagents-0.1.12/webagents/agents/skills/core/__init__.py +8 -0
- webagents-0.1.12/webagents/agents/skills/core/guardrails/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/core/llm/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/core/llm/anthropic/__init__.py +1 -0
- webagents-0.1.12/webagents/agents/skills/core/llm/litellm/__init__.py +10 -0
- webagents-0.1.12/webagents/agents/skills/core/llm/litellm/skill.py +538 -0
- webagents-0.1.12/webagents/agents/skills/core/llm/openai/__init__.py +1 -0
- webagents-0.1.12/webagents/agents/skills/core/llm/xai/__init__.py +1 -0
- webagents-0.1.12/webagents/agents/skills/core/mcp/README.md +375 -0
- webagents-0.1.12/webagents/agents/skills/core/mcp/__init__.py +15 -0
- webagents-0.1.12/webagents/agents/skills/core/mcp/skill.py +731 -0
- webagents-0.1.12/webagents/agents/skills/core/memory/__init__.py +11 -0
- webagents-0.1.12/webagents/agents/skills/core/memory/long_term_memory/__init__.py +10 -0
- webagents-0.1.12/webagents/agents/skills/core/memory/long_term_memory/memory_skill.py +639 -0
- webagents-0.1.12/webagents/agents/skills/core/memory/short_term_memory/__init__.py +9 -0
- webagents-0.1.12/webagents/agents/skills/core/memory/short_term_memory/skill.py +341 -0
- webagents-0.1.12/webagents/agents/skills/core/memory/vector_memory/skill.py +447 -0
- webagents-0.1.12/webagents/agents/skills/core/planning/__init__.py +9 -0
- webagents-0.1.12/webagents/agents/skills/core/planning/planner.py +343 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/crewai/__init__.py +1 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/database/__init__.py +1 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/filesystem/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/google/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/google/calendar/__init__.py +6 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/google/calendar/skill.py +306 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/n8n/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/openai_agents/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/web/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/ecosystem/zapier/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/robutler/__init__.py +11 -0
- webagents-0.1.12/webagents/agents/skills/robutler/auth/README.md +63 -0
- webagents-0.1.12/webagents/agents/skills/robutler/auth/__init__.py +17 -0
- webagents-0.1.12/webagents/agents/skills/robutler/auth/skill.py +354 -0
- webagents-0.1.12/webagents/agents/skills/robutler/crm/__init__.py +18 -0
- webagents-0.1.12/webagents/agents/skills/robutler/crm/skill.py +368 -0
- webagents-0.1.12/webagents/agents/skills/robutler/discovery/README.md +281 -0
- webagents-0.1.12/webagents/agents/skills/robutler/discovery/__init__.py +16 -0
- webagents-0.1.12/webagents/agents/skills/robutler/discovery/skill.py +230 -0
- webagents-0.1.12/webagents/agents/skills/robutler/kv/__init__.py +6 -0
- webagents-0.1.12/webagents/agents/skills/robutler/kv/skill.py +80 -0
- webagents-0.1.12/webagents/agents/skills/robutler/message_history/__init__.py +9 -0
- webagents-0.1.12/webagents/agents/skills/robutler/message_history/skill.py +270 -0
- webagents-0.1.12/webagents/agents/skills/robutler/messages/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/skills/robutler/nli/__init__.py +13 -0
- webagents-0.1.12/webagents/agents/skills/robutler/nli/skill.py +687 -0
- webagents-0.1.12/webagents/agents/skills/robutler/notifications/__init__.py +5 -0
- webagents-0.1.12/webagents/agents/skills/robutler/notifications/skill.py +141 -0
- webagents-0.1.12/webagents/agents/skills/robutler/payments/__init__.py +41 -0
- webagents-0.1.12/webagents/agents/skills/robutler/payments/exceptions.py +255 -0
- webagents-0.1.12/webagents/agents/skills/robutler/payments/skill.py +610 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage/__init__.py +10 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage/files/__init__.py +9 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage/files/skill.py +445 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage/json/__init__.py +9 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage/json/skill.py +336 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage/kv/skill.py +88 -0
- webagents-0.1.12/webagents/agents/skills/robutler/storage.py +389 -0
- webagents-0.1.12/webagents/agents/tools/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/tools/decorators.py +426 -0
- webagents-0.1.12/webagents/agents/tracing/__init__.py +0 -0
- webagents-0.1.12/webagents/agents/workflows/__init__.py +0 -0
- webagents-0.1.12/webagents/api/__init__.py +17 -0
- webagents-0.1.12/webagents/api/client.py +1207 -0
- webagents-0.1.12/webagents/api/types.py +253 -0
- webagents-0.1.12/webagents/scripts/__init__.py +0 -0
- webagents-0.1.12/webagents/server/__init__.py +28 -0
- webagents-0.1.12/webagents/server/context/__init__.py +0 -0
- webagents-0.1.12/webagents/server/context/context_vars.py +121 -0
- webagents-0.1.12/webagents/server/core/__init__.py +0 -0
- webagents-0.1.12/webagents/server/core/app.py +843 -0
- webagents-0.1.12/webagents/server/core/middleware.py +69 -0
- webagents-0.1.12/webagents/server/core/models.py +98 -0
- webagents-0.1.12/webagents/server/core/monitoring.py +59 -0
- webagents-0.1.12/webagents/server/endpoints/__init__.py +0 -0
- webagents-0.1.12/webagents/server/interfaces/__init__.py +0 -0
- webagents-0.1.12/webagents/server/middleware.py +330 -0
- webagents-0.1.12/webagents/server/models.py +92 -0
- webagents-0.1.12/webagents/server/monitoring.py +659 -0
- webagents-0.1.12/webagents/utils/__init__.py +0 -0
- 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,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! ✨
|