devduck 0.1.1766644714__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of devduck might be problematic. Click here for more details.

Files changed (65) hide show
  1. {devduck-0.1.1766644714 → devduck-0.3.0}/.github/workflows/agent.yml +2 -2
  2. devduck-0.3.0/.gitignore +8 -0
  3. devduck-0.3.0/LICENSE +21 -0
  4. devduck-0.3.0/PKG-INFO +152 -0
  5. devduck-0.3.0/README.md +107 -0
  6. {devduck-0.1.1766644714 → devduck-0.3.0}/action.yml +19 -5
  7. devduck-0.3.0/devduck/__init__.py +1628 -0
  8. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/_version.py +3 -3
  9. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/test_redduck.py +1 -0
  10. devduck-0.3.0/devduck/tools/__init__.py +7 -0
  11. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/install_tools.py +2 -103
  12. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/mcp_server.py +6 -34
  13. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/tcp.py +4 -6
  14. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/websocket.py +1 -7
  15. devduck-0.3.0/devduck.egg-info/PKG-INFO +152 -0
  16. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck.egg-info/SOURCES.txt +6 -19
  17. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck.egg-info/entry_points.txt +0 -1
  18. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck.egg-info/requires.txt +7 -12
  19. devduck-0.3.0/install.sh +42 -0
  20. devduck-0.3.0/mcp.json +10 -0
  21. {devduck-0.1.1766644714 → devduck-0.3.0}/pyproject.toml +13 -21
  22. devduck-0.3.0/requirements.txt +4 -0
  23. devduck-0.3.0/tools/store_in_kb.py +187 -0
  24. {devduck-0.1.1766644714/devduck → devduck-0.3.0}/tools/system_prompt.py +153 -276
  25. devduck-0.1.1766644714/.gitignore +0 -13
  26. devduck-0.1.1766644714/LICENSE +0 -201
  27. devduck-0.1.1766644714/PKG-INFO +0 -717
  28. devduck-0.1.1766644714/README.md +0 -668
  29. devduck-0.1.1766644714/devduck/__init__.py +0 -1955
  30. devduck-0.1.1766644714/devduck/agentcore_handler.py +0 -76
  31. devduck-0.1.1766644714/devduck/tools/__init__.py +0 -47
  32. devduck-0.1.1766644714/devduck/tools/_ambient_input.py +0 -423
  33. devduck-0.1.1766644714/devduck/tools/_tray_app.py +0 -530
  34. devduck-0.1.1766644714/devduck/tools/agentcore_agents.py +0 -197
  35. devduck-0.1.1766644714/devduck/tools/agentcore_config.py +0 -441
  36. devduck-0.1.1766644714/devduck/tools/agentcore_invoke.py +0 -423
  37. devduck-0.1.1766644714/devduck/tools/agentcore_logs.py +0 -320
  38. devduck-0.1.1766644714/devduck/tools/ambient.py +0 -157
  39. devduck-0.1.1766644714/devduck/tools/ipc.py +0 -546
  40. devduck-0.1.1766644714/devduck/tools/speech_to_speech.py +0 -850
  41. devduck-0.1.1766644714/devduck/tools/state_manager.py +0 -292
  42. devduck-0.1.1766644714/devduck/tools/tray.py +0 -247
  43. devduck-0.1.1766644714/devduck.egg-info/PKG-INFO +0 -717
  44. devduck-0.1.1766644714/docs/android.html +0 -1425
  45. devduck-0.1.1766644714/docs/devduck_tools_config.json +0 -671
  46. devduck-0.1.1766644714/docs/mac-os-tray.jpg +0 -0
  47. devduck-0.1.1766644714/requirements.txt +0 -1
  48. devduck-0.1.1766644714/tools/fetch_github_tool.py +0 -201
  49. {devduck-0.1.1766644714 → devduck-0.3.0}/MANIFEST.in +0 -0
  50. {devduck-0.1.1766644714 → devduck-0.3.0}/agent_runner.py +0 -0
  51. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/__main__.py +0 -0
  52. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/create_subagent.py +0 -0
  53. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/store_in_kb.py +0 -0
  54. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck/tools/use_github.py +0 -0
  55. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck.egg-info/dependency_links.txt +0 -0
  56. {devduck-0.1.1766644714 → devduck-0.3.0}/devduck.egg-info/top_level.txt +0 -0
  57. {devduck-0.1.1766644714 → devduck-0.3.0}/docs/index.html +0 -0
  58. {devduck-0.1.1766644714 → devduck-0.3.0}/setup-aws-oidc.sh +0 -0
  59. {devduck-0.1.1766644714 → devduck-0.3.0}/setup.cfg +0 -0
  60. {devduck-0.1.1766644714 → devduck-0.3.0}/test.py +0 -0
  61. {devduck-0.1.1766644714 → devduck-0.3.0}/tools/__init__.py +0 -0
  62. {devduck-0.1.1766644714/devduck → devduck-0.3.0}/tools/fetch_github_tool.py +0 -0
  63. {devduck-0.1.1766644714 → devduck-0.3.0}/tools/gist.py +0 -0
  64. {devduck-0.1.1766644714 → devduck-0.3.0}/tools/github_tools.py +0 -0
  65. {devduck-0.1.1766644714/devduck → devduck-0.3.0}/tools/scraper.py +0 -0
@@ -1,8 +1,8 @@
1
1
  name: DevDuck
2
2
 
3
3
  on:
4
- # schedule:
5
- # - cron: '0 8 * * *'
4
+ schedule:
5
+ - cron: '0 8 * * *'
6
6
  issues:
7
7
  types: [opened, edited, closed, reopened, assigned, unassigned, labeled, unlabeled]
8
8
  issue_comment:
@@ -0,0 +1,8 @@
1
+ .venv
2
+ *.egg
3
+ *.egg-info
4
+ __pycache__
5
+ *.bak
6
+ dist/
7
+ build
8
+ _version.py
devduck-0.3.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 maxs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
devduck-0.3.0/PKG-INFO ADDED
@@ -0,0 +1,152 @@
1
+ Metadata-Version: 2.4
2
+ Name: devduck
3
+ Version: 0.3.0
4
+ Summary: 🦆 Extreme minimalist self-adapting AI agent - one file, self-healing, runtime dependencies
5
+ Author-email: duck <hey@devduck.dev>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/cagataycali/devduck
8
+ Project-URL: Repository, https://github.com/cagataycali/devduck.git
9
+ Project-URL: Documentation, https://github.com/cagataycali/devduck#readme
10
+ Project-URL: Bug Tracker, https://github.com/cagataycali/devduck/issues
11
+ Keywords: ai,agent,minimalist,self-healing,ollama,strands-agents
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: System Administrators
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Classifier: Topic :: System :: Systems Administration
25
+ Classifier: Topic :: Utilities
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: strands-agents
30
+ Requires-Dist: prompt_toolkit
31
+ Requires-Dist: strands-agents[ollama]
32
+ Requires-Dist: strands-agents-tools
33
+ Requires-Dist: strands-agentcore-tools
34
+ Requires-Dist: beautifulsoup4
35
+ Requires-Dist: colorama
36
+ Requires-Dist: websockets
37
+ Provides-Extra: all
38
+ Requires-Dist: strands-agents[openai]; extra == "all"
39
+ Requires-Dist: strands-agents[anthropic]; extra == "all"
40
+ Requires-Dist: strands-fun-tools[audio]; extra == "all"
41
+ Requires-Dist: strands-fun-tools[vision]; extra == "all"
42
+ Requires-Dist: strands-fun-tools[all]; extra == "all"
43
+ Requires-Dist: strands-mcp-server; extra == "all"
44
+ Dynamic: license-file
45
+
46
+ # 🦆 DevDuck
47
+
48
+ **One file. Self-healing. Adaptive.**
49
+
50
+ Minimalist AI agent that fixes itself when things break.
51
+
52
+ ## Install
53
+
54
+ ```bash
55
+ # Minimal install
56
+ pipx install devduck
57
+
58
+ # Full install (all tools)
59
+ pipx install "devduck[all]"
60
+ ```
61
+
62
+ Requires: Python 3.10+, Ollama running (or set MODEL_PROVIDER)
63
+
64
+ ## Use
65
+
66
+ ```bash
67
+ # Start DevDuck (auto-starts TCP, WebSocket, MCP servers)
68
+ devduck
69
+
70
+ # CLI mode
71
+ devduck "what's the time?"
72
+
73
+ # Python
74
+ import devduck
75
+ devduck("calculate 2+2")
76
+ ```
77
+
78
+ ## Auto-Started Servers
79
+
80
+ When you run `devduck`, three servers start automatically:
81
+
82
+ - **🌐 Web UI**: [http://cagataycali.github.io/devduck](http://cagataycali.github.io/devduck) (auto-connects)
83
+ - **🔌 TCP**: `nc localhost 9999` (raw socket)
84
+ - **🌊 WebSocket**: `ws://localhost:8080` (structured JSON)
85
+ - **🔗 MCP**: `http://localhost:8000/mcp` (Model Context Protocol)
86
+
87
+ ### Connect via MCP
88
+
89
+ Add to your MCP client (e.g., Claude Desktop):
90
+
91
+ ```json
92
+ {
93
+ "mcpServers": {
94
+ "devduck": {
95
+ "command": "uvx",
96
+ "args": [
97
+ "strands-mcp-server",
98
+ "--upstream-url",
99
+ "http://localhost:8000/mcp/"
100
+ ],
101
+ "disabled": false
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### Connect via Terminal
108
+
109
+ ```bash
110
+ # Direct TCP connection
111
+ nc localhost 9999
112
+ > what's the time?
113
+ ```
114
+
115
+ ## Features
116
+
117
+ - **Self-healing** - Auto-fixes deps, models, errors
118
+ - **Hot-reload** - Create tools in `./tools/*.py`, use instantly
119
+ - **Adaptive** - Picks model based on OS (macOS: 1.7b, Linux: 30b)
120
+ - **14 tools** - shell, editor, files, python, calculator, tcp, etc.
121
+ - **History aware** - Remembers shell/conversation context
122
+ - **Multi-protocol** - TCP, WebSocket, MCP, CLI, Python
123
+
124
+ ## Create Tool
125
+
126
+ ```python
127
+ # ./tools/greet.py
128
+ from strands import tool
129
+
130
+ @tool
131
+ def greet(name: str) -> str:
132
+ return f"Hello {name}!"
133
+ ```
134
+
135
+ Save. Done. Use immediately.
136
+
137
+ ## Multi-Model
138
+
139
+ ```bash
140
+ export MODEL_PROVIDER="bedrock"
141
+ export STRANDS_MODEL_ID="us.anthropic.claude-sonnet-4-5-20250929-v1:0"
142
+ export STRANDS_ADDITIONAL_REQUEST_FIELDS='{"anthropic_beta": ["interleaved-thinking-2025-05-14", "context-1m-2025-08-07"], "thinking": {"type": "enabled", "budget_tokens": 2048}}'
143
+ export STRANDS_MAX_TOKENS="64000"
144
+
145
+ devduck "analyze data"
146
+ ```
147
+
148
+ ---
149
+
150
+ **Quack.** 🦆
151
+
152
+ *Built with [Strands Agents SDK](https://github.com/strands-agents/sdk-python)*
@@ -0,0 +1,107 @@
1
+ # 🦆 DevDuck
2
+
3
+ **One file. Self-healing. Adaptive.**
4
+
5
+ Minimalist AI agent that fixes itself when things break.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ # Minimal install
11
+ pipx install devduck
12
+
13
+ # Full install (all tools)
14
+ pipx install "devduck[all]"
15
+ ```
16
+
17
+ Requires: Python 3.10+, Ollama running (or set MODEL_PROVIDER)
18
+
19
+ ## Use
20
+
21
+ ```bash
22
+ # Start DevDuck (auto-starts TCP, WebSocket, MCP servers)
23
+ devduck
24
+
25
+ # CLI mode
26
+ devduck "what's the time?"
27
+
28
+ # Python
29
+ import devduck
30
+ devduck("calculate 2+2")
31
+ ```
32
+
33
+ ## Auto-Started Servers
34
+
35
+ When you run `devduck`, three servers start automatically:
36
+
37
+ - **🌐 Web UI**: [http://cagataycali.github.io/devduck](http://cagataycali.github.io/devduck) (auto-connects)
38
+ - **🔌 TCP**: `nc localhost 9999` (raw socket)
39
+ - **🌊 WebSocket**: `ws://localhost:8080` (structured JSON)
40
+ - **🔗 MCP**: `http://localhost:8000/mcp` (Model Context Protocol)
41
+
42
+ ### Connect via MCP
43
+
44
+ Add to your MCP client (e.g., Claude Desktop):
45
+
46
+ ```json
47
+ {
48
+ "mcpServers": {
49
+ "devduck": {
50
+ "command": "uvx",
51
+ "args": [
52
+ "strands-mcp-server",
53
+ "--upstream-url",
54
+ "http://localhost:8000/mcp/"
55
+ ],
56
+ "disabled": false
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ ### Connect via Terminal
63
+
64
+ ```bash
65
+ # Direct TCP connection
66
+ nc localhost 9999
67
+ > what's the time?
68
+ ```
69
+
70
+ ## Features
71
+
72
+ - **Self-healing** - Auto-fixes deps, models, errors
73
+ - **Hot-reload** - Create tools in `./tools/*.py`, use instantly
74
+ - **Adaptive** - Picks model based on OS (macOS: 1.7b, Linux: 30b)
75
+ - **14 tools** - shell, editor, files, python, calculator, tcp, etc.
76
+ - **History aware** - Remembers shell/conversation context
77
+ - **Multi-protocol** - TCP, WebSocket, MCP, CLI, Python
78
+
79
+ ## Create Tool
80
+
81
+ ```python
82
+ # ./tools/greet.py
83
+ from strands import tool
84
+
85
+ @tool
86
+ def greet(name: str) -> str:
87
+ return f"Hello {name}!"
88
+ ```
89
+
90
+ Save. Done. Use immediately.
91
+
92
+ ## Multi-Model
93
+
94
+ ```bash
95
+ export MODEL_PROVIDER="bedrock"
96
+ export STRANDS_MODEL_ID="us.anthropic.claude-sonnet-4-5-20250929-v1:0"
97
+ export STRANDS_ADDITIONAL_REQUEST_FIELDS='{"anthropic_beta": ["interleaved-thinking-2025-05-14", "context-1m-2025-08-07"], "thinking": {"type": "enabled", "budget_tokens": 2048}}'
98
+ export STRANDS_MAX_TOKENS="64000"
99
+
100
+ devduck "analyze data"
101
+ ```
102
+
103
+ ---
104
+
105
+ **Quack.** 🦆
106
+
107
+ *Built with [Strands Agents SDK](https://github.com/strands-agents/sdk-python)*
@@ -1,4 +1,4 @@
1
- name: 'DevDuck Action'
1
+ name: 'DevDuck'
2
2
  description: 'Quack.'
3
3
  author: 'Cagatay Cali'
4
4
 
@@ -42,7 +42,7 @@ inputs:
42
42
  tools:
43
43
  description: 'Comma-separated list of tools to enable'
44
44
  required: false
45
- default: 'strands_tools:current_time'
45
+ default: 'current_time'
46
46
 
47
47
  # Authentication & Access
48
48
  github_token:
@@ -100,7 +100,15 @@ outputs:
100
100
  runs:
101
101
  using: 'composite'
102
102
  steps:
103
+ - name: Use Homebrew Python 3.13
104
+ if: runner.os == 'macOS'
105
+ shell: bash
106
+ run: |
107
+ echo "/opt/homebrew/opt/python@3.13/libexec/bin" >> $GITHUB_PATH
108
+ echo "/opt/homebrew/bin" >> $GITHUB_PATH
109
+
103
110
  - name: Set up Python
111
+ if: runner.os != 'macOS'
104
112
  uses: actions/setup-python@v4
105
113
  with:
106
114
  python-version: '3.13'
@@ -127,16 +135,22 @@ runs:
127
135
  curl -LsSf https://astral.sh/uv/install.sh | sh
128
136
  echo "$HOME/.cargo/bin" >> $GITHUB_PATH
129
137
 
130
- - name: Install DevDuck
138
+ - name: Install Strands Agents
139
+ shell: bash
140
+ run: |
141
+ uv pip install --system -r requirements.txt --quiet
142
+
143
+ - name: Install Local Dependencies
144
+ if: runner.os == 'macOS'
131
145
  shell: bash
132
146
  run: |
133
- uv pip install devduck --system --quiet
147
+ uv pip install --system -r requirements-local.txt --quiet
134
148
 
135
149
  - name: Configure Git
136
150
  shell: bash
137
151
  run: |
138
152
  git config --global user.name "DevDuck" 2>/dev/null
139
- git config --global user.email "hey@redduck.dev" 2>/dev/null
153
+ git config --global user.email "hey@strands.my" 2>/dev/null
140
154
 
141
155
  - name: Configure AWS credentials
142
156
  if: inputs.aws_role_arn != ''