Skip to content

Commit 85604c6

Browse files
author
Francisco
committed
fix: resolve computer tool dispatch and SDK action call regressions
- tool_routing_mixin: fix `computer` tool dispatch from `async for` to `await` — handle_shell_action is a coroutine returning None, not an async generator; iterating it raised 'async for requires __aiter__, got coroutine' - shell_execution_mixin: migrate all action calls from SDK client to NativeExecutionService — removes projectdavid import and project_david_client dependency from the computer tool handler entirely * create_action (×2, validation failure path + main path) → _native_exec.create_action() * update_action → _native_exec.update_action_status() - shell_execution_mixin: add lazy _native_exec property consistent with mixin pattern established across the orchestration layer
1 parent 322cceb commit 85604c6

111 files changed

Lines changed: 614 additions & 505 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,4 @@ docker-compose.runtime.yml
168168
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
169169
#.idea/
170170
/tmp/
171+
proposed_pull_requestst.md

docs/accidental_level3.md

Lines changed: 0 additions & 51 deletions
This file was deleted.

docs/proposed_pull_requestst.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# 🚀 Project David: Open-Source Marketing & PR Hit-List
2+
3+
## ✅ Already Done
4+
- [x] **Awesome Ollama** (`ollama/awesome-ollama`)
5+
- [x] **Awesome DeepSeek Integration** (`deepseek-ai/awesome-deepseek-integration`)
6+
7+
---
8+
9+
## 🤖 Awesome AI Agent Lists
10+
*These lists are heavily trafficked by developers actively looking for agent frameworks, orchestration, and function-calling tools.*
11+
12+
- [ ] **Awesome AI Agents** (`e2b-dev/awesome-ai-agents`)
13+
- **URL:** https://github.com/e2b-dev/awesome-ai-agents
14+
- **Pitch angle:** Highlight your built-in `computer` tool and secure containerized sandbox environment (E2B's audience loves this).
15+
- [ ] **Awesome Agents** (`kyrolabs/awesome-agents`)
16+
- **URL:** https://github.com/kyrolabs/awesome-agents
17+
- **Pitch angle:** A self-hosted, model-agnostic framework for Level 4 agentic workflows with built-in memory and state management.
18+
- [ ] **Awesome Autonomous Agents** (`taranjeet/awesome-autonomous-agents`)
19+
- **URL:** https://github.com/taranjeet/awesome-autonomous-agents
20+
- **Pitch angle:** An alternative to the OpenAI Assistants API that brings autonomous workflows to open-source models.
21+
22+
---
23+
24+
## 🧠 Awesome LLM & Generative AI Lists
25+
*Massive, broad-appeal lists for anyone building with LLMs.*
26+
27+
- [ ] **Awesome Generative AI** (`steven2358/awesome-generative-ai`)
28+
- **URL:** https://github.com/steven2358/awesome-generative-ai
29+
- **Target Section:** `Autonomous Agents` or `Frameworks`.
30+
- [ ] **Awesome LLM** (`Hannibal046/Awesome-LLM`)
31+
- **URL:** https://github.com/Hannibal046/Awesome-LLM
32+
- **Target Section:** `LLM Applications` or `Agent`.
33+
- [ ] **Awesome Local AI** (`janhq/awesome-local-ai`)
34+
- **URL:** https://github.com/janhq/awesome-local-ai
35+
- **Pitch angle:** Fully supports local inference routing, keeping agentic memory and tool execution entirely offline.
36+
- [ ] **Awesome LLM Apps** (`a16z-infra/awesome-llm-apps`)
37+
- **URL:** https://github.com/a16z-infra/awesome-llm-apps
38+
- **Pitch angle:** Showcase it as a foundational orchestration layer for building LLM apps.
39+
40+
---
41+
42+
## 🛠️ Open-Source Alternatives & Self-Hosted Lists
43+
*The holy grail for developers looking to escape SaaS vendor lock-in.*
44+
45+
- [ ] **Awesome Open Source Alternatives** (`RunaCapital/awesome-oss-alternatives`)
46+
- **URL:** https://github.com/RunaCapital/awesome-oss-alternatives
47+
- **Target Section:** `Development Tools` / `AI`.
48+
- **Pitch angle:** Direct open-source, self-hosted alternative to the **OpenAI Assistants API**.
49+
-[ ] **Awesome Selfhosted** (`awesome-selfhosted/awesome-selfhosted`)
50+
- **URL:** https://github.com/awesome-selfhosted/awesome-selfhosted
51+
- **Target Section:** `Software Development - Artificial Intelligence`.
52+
- **⚠️ Note:** Read their `CONTRIBUTING.md` carefully! They are very strict about alphabetical sorting, licensing links, and formatting.
53+
- [ ] **Clone Wars** (`GorvGoyl/Clone-Wars`)
54+
- **URL:** https://github.com/GorvGoyl/Clone-Wars
55+
- **Pitch angle:** Open-source clone/alternative of the OpenAI Assistants/Responses API.
56+
57+
---
58+
59+
## 🦙 Model-Specific "Awesome" Ecosystems
60+
*If your platform can route to these models, get on their community lists!*
61+
62+
- [ ] **Awesome Qwen** (`QwenLM/Awesome-Qwen`)
63+
- **URL:** https://github.com/QwenLM/Awesome-Qwen
64+
- **Pitch angle:** Seamlessly orchestrate Qwen models for multi-hop reasoning and function calling.
65+
- [ ] **Awesome Mistral** (`mistralai/awesome-mistral`)
66+
- **URL:** https://github.com/mistralai/awesome-mistral
67+
- [ ] **Awesome Claude / Anthropic** (`anthropics/awesome-anthropic` or community equivalents)
68+
- **URL:** https://github.com/anthropics/awesome-anthropic
69+
70+
---
71+
72+
## 🔗 "Supported Frameworks" Documentation PRs
73+
*This is the next level. Instead of "Awesome" lists, you are adding Project David to the official documentation of routing tools.*
74+
75+
- [ ] **OpenRouter Documentation** (`OpenRouterTeam/openrouter-docs` or Discord)
76+
- **Action:** Add Project David to their "Supported Frameworks" or "Clients" page.
77+
- **Pitch angle:** Users can just drop their OpenRouter URL/Key into Project David to give their agents access to 100+ models.
78+
- [ ] **LiteLLM** (`BerriAI/litellm`)
79+
- **Action:** Add to their community integrations or supported downstream platforms.
80+
- **URL:** https://github.com/BerriAI/litellm
81+
- [ ] **AI/ML API**
82+
- **Action:** Reach out to their DevRel or check their docs repo to be listed as an official orchestration integration.
83+
84+
---
85+
86+
## 📋 Standard PR Checklist Before Submitting:
87+
- [ ] **Check `CONTRIBUTING.md`**: Do they require alphabetical order?
88+
- [ ] **Format check**: Did I match the exact table or bullet point format of the surrounding entries?
89+
- [ ] **Pitch check**: Did I mention *why* it fits this specific list in the PR description? (e.g., mention "self-hosted" for the self-hosted list, "local" for the local list).
90+
- [ ] **Link check**: Does my GitHub URL work? Is the description clear and concise?

migrations/versions/04607cbac68b_add_web_access_to_assistants.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212
from sqlalchemy.dialects import mysql
1313

1414
# SafeDDL helpers
15-
from migrations.utils.safe_ddl import (add_column_if_missing,
16-
drop_column_if_exists,
17-
safe_alter_column)
15+
from migrations.utils.safe_ddl import (
16+
add_column_if_missing,
17+
drop_column_if_exists,
18+
safe_alter_column,
19+
)
1820

1921
# revision identifiers, used by Alembic.
2022
revision: str = "04607cbac68b"

migrations/versions/1e55188b6b26_add_owner_id_to_assistants.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
from alembic import op
1818
from sqlalchemy.dialects import mysql
1919

20-
from migrations.utils.safe_ddl import (add_column_if_missing,
21-
drop_column_if_exists,
22-
safe_alter_column)
20+
from migrations.utils.safe_ddl import (
21+
add_column_if_missing,
22+
drop_column_if_exists,
23+
safe_alter_column,
24+
)
2325

2426
# --- Revision identifiers ---
2527
revision: str = "1e55188b6b26"

migrations/versions/4c257388838e_add_tool_name_to_actions.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
from sqlalchemy.dialects import mysql
1414

1515
# Import the safe DDL helpers
16-
from migrations.utils.safe_ddl import (add_column_if_missing,
17-
drop_column_if_exists,
18-
safe_alter_column)
16+
from migrations.utils.safe_ddl import (
17+
add_column_if_missing,
18+
drop_column_if_exists,
19+
safe_alter_column,
20+
)
1921

2022
# revision identifiers, used by Alembic.
2123
revision: str = "4c257388838e"

migrations/versions/6413efed1b18_add_decision_telemetry_to_assistants_.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
from sqlalchemy.dialects import mysql
1414

1515
# Import the safe DDL helpers
16-
from migrations.utils.safe_ddl import (add_column_if_missing,
17-
drop_column_if_exists,
18-
safe_alter_column)
16+
from migrations.utils.safe_ddl import (
17+
add_column_if_missing,
18+
drop_column_if_exists,
19+
safe_alter_column,
20+
)
1921

2022
# revision identifiers, used by Alembic.
2123
revision: str = "6413efed1b18"

migrations/versions/741d86dd5ac8_add_decision_telemetry_to_actions.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
from sqlalchemy.engine.reflection import Inspector
1515

1616
# Import the safe DDL helpers
17-
from migrations.utils.safe_ddl import (add_column_if_missing,
18-
drop_column_if_exists,
19-
safe_alter_column)
17+
from migrations.utils.safe_ddl import (
18+
add_column_if_missing,
19+
drop_column_if_exists,
20+
safe_alter_column,
21+
)
2022

2123
# revision identifiers, used by Alembic.
2224
revision: str = "741d86dd5ac8"

migrations/versions/9314d4058f78_add_agentic_state_columns_to_assistant_.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
from sqlalchemy.dialects import mysql
1515

1616
# Import the safe DDL helpers
17-
from migrations.utils.safe_ddl import (add_column_if_missing,
18-
drop_column_if_exists,
19-
safe_alter_column)
17+
from migrations.utils.safe_ddl import (
18+
add_column_if_missing,
19+
drop_column_if_exists,
20+
safe_alter_column,
21+
)
2022

2123
# revision identifiers, used by Alembic.
2224
revision: str = "9314d4058f78"

migrations/versions/ac1498a9642c_remove_tools_table_and_associations.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@
1414
from sqlalchemy.dialects import mysql
1515

1616
# Import the safe DDL helpers
17-
from migrations.utils.safe_ddl import (add_column_if_missing,
18-
drop_column_if_exists, has_table,
19-
safe_alter_column)
17+
from migrations.utils.safe_ddl import (
18+
add_column_if_missing,
19+
drop_column_if_exists,
20+
has_table,
21+
safe_alter_column,
22+
)
2023

2124
# revision identifiers, used by Alembic.
2225
revision: str = "ac1498a9642c"

0 commit comments

Comments
 (0)