hauba 0.1.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.
Files changed (132) hide show
  1. hauba-0.1.0/.gitignore +59 -0
  2. hauba-0.1.0/LICENSE +21 -0
  3. hauba-0.1.0/PKG-INFO +325 -0
  4. hauba-0.1.0/README.md +257 -0
  5. hauba-0.1.0/pyproject.toml +152 -0
  6. hauba-0.1.0/src/hauba/__init__.py +5 -0
  7. hauba-0.1.0/src/hauba/__main__.py +5 -0
  8. hauba-0.1.0/src/hauba/agents/__init__.py +6 -0
  9. hauba-0.1.0/src/hauba/agents/base.py +133 -0
  10. hauba-0.1.0/src/hauba/agents/computer_use.py +225 -0
  11. hauba-0.1.0/src/hauba/agents/coworker.py +74 -0
  12. hauba-0.1.0/src/hauba/agents/director.py +568 -0
  13. hauba-0.1.0/src/hauba/agents/registry.py +115 -0
  14. hauba-0.1.0/src/hauba/agents/subagent.py +218 -0
  15. hauba-0.1.0/src/hauba/agents/worker.py +191 -0
  16. hauba-0.1.0/src/hauba/brain/__init__.py +1 -0
  17. hauba-0.1.0/src/hauba/brain/deliberation.py +260 -0
  18. hauba-0.1.0/src/hauba/brain/intent.py +143 -0
  19. hauba-0.1.0/src/hauba/brain/llm.py +213 -0
  20. hauba-0.1.0/src/hauba/brain/planner.py +57 -0
  21. hauba-0.1.0/src/hauba/bundled_skills/api-design-and-integration.md +64 -0
  22. hauba-0.1.0/src/hauba/bundled_skills/code-generation.md +60 -0
  23. hauba-0.1.0/src/hauba/bundled_skills/data-engineering.md +61 -0
  24. hauba-0.1.0/src/hauba/bundled_skills/debugging-and-repair.md +62 -0
  25. hauba-0.1.0/src/hauba/bundled_skills/devops-and-deployment.md +64 -0
  26. hauba-0.1.0/src/hauba/bundled_skills/full-stack-engineering.md +65 -0
  27. hauba-0.1.0/src/hauba/bundled_skills/refactoring-and-migration.md +64 -0
  28. hauba-0.1.0/src/hauba/bundled_skills/research-and-analysis.md +62 -0
  29. hauba-0.1.0/src/hauba/bundled_skills/security-hardening.md +63 -0
  30. hauba-0.1.0/src/hauba/bundled_skills/testing-and-quality.md +62 -0
  31. hauba-0.1.0/src/hauba/bundled_strategies/api-development.yaml +72 -0
  32. hauba-0.1.0/src/hauba/bundled_strategies/bug-fixing.yaml +69 -0
  33. hauba-0.1.0/src/hauba/bundled_strategies/code-review-and-refactor.yaml +71 -0
  34. hauba-0.1.0/src/hauba/bundled_strategies/data-pipeline.yaml +72 -0
  35. hauba-0.1.0/src/hauba/bundled_strategies/research-and-prototype.yaml +69 -0
  36. hauba-0.1.0/src/hauba/bundled_strategies/saas-building.yaml +76 -0
  37. hauba-0.1.0/src/hauba/channels/__init__.py +3 -0
  38. hauba-0.1.0/src/hauba/channels/discord.py +124 -0
  39. hauba-0.1.0/src/hauba/channels/gateway.py +143 -0
  40. hauba-0.1.0/src/hauba/channels/telegram.py +145 -0
  41. hauba-0.1.0/src/hauba/channels/voice.py +169 -0
  42. hauba-0.1.0/src/hauba/cli.py +408 -0
  43. hauba-0.1.0/src/hauba/compose/__init__.py +1 -0
  44. hauba-0.1.0/src/hauba/compose/parser.py +148 -0
  45. hauba-0.1.0/src/hauba/compose/runner.py +175 -0
  46. hauba-0.1.0/src/hauba/core/__init__.py +7 -0
  47. hauba-0.1.0/src/hauba/core/config.py +129 -0
  48. hauba-0.1.0/src/hauba/core/constants.py +133 -0
  49. hauba-0.1.0/src/hauba/core/dag.py +188 -0
  50. hauba-0.1.0/src/hauba/core/events.py +70 -0
  51. hauba-0.1.0/src/hauba/core/notifier.py +185 -0
  52. hauba-0.1.0/src/hauba/core/quality.py +295 -0
  53. hauba-0.1.0/src/hauba/core/replay.py +79 -0
  54. hauba-0.1.0/src/hauba/core/setup.py +60 -0
  55. hauba-0.1.0/src/hauba/core/types.py +218 -0
  56. hauba-0.1.0/src/hauba/doctor.py +193 -0
  57. hauba-0.1.0/src/hauba/exceptions.py +63 -0
  58. hauba-0.1.0/src/hauba/ledger/__init__.py +1 -0
  59. hauba-0.1.0/src/hauba/ledger/gates.py +97 -0
  60. hauba-0.1.0/src/hauba/ledger/tracker.py +373 -0
  61. hauba-0.1.0/src/hauba/ledger/wal.py +179 -0
  62. hauba-0.1.0/src/hauba/memory/__init__.py +5 -0
  63. hauba-0.1.0/src/hauba/memory/store.py +151 -0
  64. hauba-0.1.0/src/hauba/py.typed +0 -0
  65. hauba-0.1.0/src/hauba/security.py +157 -0
  66. hauba-0.1.0/src/hauba/skills/__init__.py +1 -0
  67. hauba-0.1.0/src/hauba/skills/cli.py +132 -0
  68. hauba-0.1.0/src/hauba/skills/loader.py +156 -0
  69. hauba-0.1.0/src/hauba/skills/matcher.py +118 -0
  70. hauba-0.1.0/src/hauba/skills/strategy.py +254 -0
  71. hauba-0.1.0/src/hauba/tools/__init__.py +29 -0
  72. hauba-0.1.0/src/hauba/tools/base.py +19 -0
  73. hauba-0.1.0/src/hauba/tools/bash.py +89 -0
  74. hauba-0.1.0/src/hauba/tools/browser.py +450 -0
  75. hauba-0.1.0/src/hauba/tools/files.py +119 -0
  76. hauba-0.1.0/src/hauba/tools/git.py +72 -0
  77. hauba-0.1.0/src/hauba/tools/screen.py +194 -0
  78. hauba-0.1.0/src/hauba/tools/web.py +145 -0
  79. hauba-0.1.0/src/hauba/ui/__init__.py +5 -0
  80. hauba-0.1.0/src/hauba/ui/replay.py +126 -0
  81. hauba-0.1.0/src/hauba/ui/terminal.py +148 -0
  82. hauba-0.1.0/src/hauba/ui/web.py +226 -0
  83. hauba-0.1.0/tests/__init__.py +0 -0
  84. hauba-0.1.0/tests/conftest.py +35 -0
  85. hauba-0.1.0/tests/e2e/__init__.py +0 -0
  86. hauba-0.1.0/tests/integration/__init__.py +0 -0
  87. hauba-0.1.0/tests/integration/test_e2e_pipeline.py +144 -0
  88. hauba-0.1.0/tests/integration/test_phase2_pipeline.py +210 -0
  89. hauba-0.1.0/tests/integration/test_phase3_pipeline.py +151 -0
  90. hauba-0.1.0/tests/integration/test_phase4_pipeline.py +97 -0
  91. hauba-0.1.0/tests/integration/test_phase5_pipeline.py +151 -0
  92. hauba-0.1.0/tests/unit/__init__.py +0 -0
  93. hauba-0.1.0/tests/unit/agents/__init__.py +0 -0
  94. hauba-0.1.0/tests/unit/agents/test_computer_use.py +196 -0
  95. hauba-0.1.0/tests/unit/brain/__init__.py +0 -0
  96. hauba-0.1.0/tests/unit/brain/test_intent.py +44 -0
  97. hauba-0.1.0/tests/unit/channels/__init__.py +0 -0
  98. hauba-0.1.0/tests/unit/channels/test_discord.py +71 -0
  99. hauba-0.1.0/tests/unit/channels/test_gateway.py +145 -0
  100. hauba-0.1.0/tests/unit/channels/test_telegram.py +69 -0
  101. hauba-0.1.0/tests/unit/channels/test_voice.py +91 -0
  102. hauba-0.1.0/tests/unit/compose/__init__.py +0 -0
  103. hauba-0.1.0/tests/unit/compose/test_parser.py +217 -0
  104. hauba-0.1.0/tests/unit/compose/test_runner.py +142 -0
  105. hauba-0.1.0/tests/unit/core/__init__.py +0 -0
  106. hauba-0.1.0/tests/unit/core/test_config.py +64 -0
  107. hauba-0.1.0/tests/unit/core/test_dag.py +96 -0
  108. hauba-0.1.0/tests/unit/core/test_events.py +88 -0
  109. hauba-0.1.0/tests/unit/core/test_notifier.py +171 -0
  110. hauba-0.1.0/tests/unit/core/test_quality.py +77 -0
  111. hauba-0.1.0/tests/unit/core/test_replay.py +132 -0
  112. hauba-0.1.0/tests/unit/ledger/__init__.py +0 -0
  113. hauba-0.1.0/tests/unit/ledger/test_gates.py +92 -0
  114. hauba-0.1.0/tests/unit/ledger/test_tracker.py +174 -0
  115. hauba-0.1.0/tests/unit/ledger/test_wal.py +67 -0
  116. hauba-0.1.0/tests/unit/memory/__init__.py +0 -0
  117. hauba-0.1.0/tests/unit/memory/test_store.py +54 -0
  118. hauba-0.1.0/tests/unit/skills/__init__.py +0 -0
  119. hauba-0.1.0/tests/unit/skills/test_loader.py +77 -0
  120. hauba-0.1.0/tests/unit/skills/test_matcher.py +60 -0
  121. hauba-0.1.0/tests/unit/skills/test_skill_cli.py +139 -0
  122. hauba-0.1.0/tests/unit/skills/test_strategy.py +85 -0
  123. hauba-0.1.0/tests/unit/tools/__init__.py +0 -0
  124. hauba-0.1.0/tests/unit/tools/test_bash.py +39 -0
  125. hauba-0.1.0/tests/unit/tools/test_browser.py +171 -0
  126. hauba-0.1.0/tests/unit/tools/test_files.py +78 -0
  127. hauba-0.1.0/tests/unit/tools/test_git.py +32 -0
  128. hauba-0.1.0/tests/unit/tools/test_screen.py +231 -0
  129. hauba-0.1.0/tests/unit/tools/test_web.py +168 -0
  130. hauba-0.1.0/tests/unit/ui/__init__.py +0 -0
  131. hauba-0.1.0/tests/unit/ui/test_replay_player.py +142 -0
  132. hauba-0.1.0/tests/unit/ui/test_web.py +138 -0
hauba-0.1.0/.gitignore ADDED
@@ -0,0 +1,59 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.egg-info/
6
+ dist/
7
+ build/
8
+ *.egg
9
+ .eggs/
10
+
11
+ # Virtual environments
12
+ .venv/
13
+ venv/
14
+ env/
15
+
16
+ # IDE
17
+ .idea/
18
+ .vscode/
19
+ *.swp
20
+ *.swo
21
+ *~
22
+
23
+ # Testing
24
+ .coverage
25
+ htmlcov/
26
+ .pytest_cache/
27
+
28
+ # Type checking
29
+ .pyright/
30
+ .mypy_cache/
31
+
32
+ # OS
33
+ .DS_Store
34
+ Thumbs.db
35
+ desktop.ini
36
+
37
+ # Environment
38
+ .env
39
+ .env.local
40
+
41
+ # Hauba data (user-specific)
42
+ ~/.hauba/
43
+
44
+ # SQLite databases
45
+ *.db
46
+ *.sqlite
47
+ *.sqlite3
48
+
49
+ # Logs
50
+ *.log
51
+
52
+ # Ruff cache
53
+ .ruff_cache/
54
+
55
+ # Docs (generated/internal)
56
+ ARCHITECTURE_V2.md
57
+ BUILD_PHASES_V2.md
58
+ PROGRESS.md
59
+ workflow-guidelines.md
hauba-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hauba AI
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.
hauba-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,325 @@
1
+ Metadata-Version: 2.4
2
+ Name: hauba
3
+ Version: 0.1.0
4
+ Summary: Your AI Engineering Team — In One Command
5
+ Project-URL: Homepage, https://github.com/NikeGunn/haubaa
6
+ Project-URL: Documentation, https://github.com/NikeGunn/haubaa#readme
7
+ Project-URL: Repository, https://github.com/NikeGunn/haubaa
8
+ Project-URL: Issues, https://github.com/NikeGunn/haubaa/issues
9
+ Project-URL: Changelog, https://github.com/NikeGunn/haubaa/releases
10
+ Author: Hauba AI
11
+ License-Expression: MIT
12
+ License-File: LICENSE
13
+ Keywords: agent,ai,automation,llm,multi-agent,orchestration
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
22
+ Classifier: Typing :: Typed
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: aiosqlite<1.0,>=0.20
25
+ Requires-Dist: anyio<5.0,>=4.0
26
+ Requires-Dist: httpx<1.0,>=0.27
27
+ Requires-Dist: litellm<2.0,>=1.40
28
+ Requires-Dist: pydantic<3.0,>=2.5
29
+ Requires-Dist: pyyaml<7.0,>=6.0
30
+ Requires-Dist: rich<14.0,>=13.0
31
+ Requires-Dist: structlog<25.0,>=24.1
32
+ Requires-Dist: typer<1.0,>=0.12
33
+ Provides-Extra: all
34
+ Requires-Dist: discord-py<3.0,>=2.3; extra == 'all'
35
+ Requires-Dist: edge-tts<7.0,>=6.1; extra == 'all'
36
+ Requires-Dist: fastapi<1.0,>=0.110; extra == 'all'
37
+ Requires-Dist: openai-whisper>=20231117; extra == 'all'
38
+ Requires-Dist: pillow<11.0,>=10.0; extra == 'all'
39
+ Requires-Dist: playwright<2.0,>=1.40; extra == 'all'
40
+ Requires-Dist: pyautogui<1.0,>=0.9; extra == 'all'
41
+ Requires-Dist: python-telegram-bot<22.0,>=21.0; extra == 'all'
42
+ Requires-Dist: sounddevice<1.0,>=0.4; extra == 'all'
43
+ Requires-Dist: uvicorn<1.0,>=0.27; extra == 'all'
44
+ Requires-Dist: websockets<14.0,>=12.0; extra == 'all'
45
+ Provides-Extra: channels
46
+ Requires-Dist: discord-py<3.0,>=2.3; extra == 'channels'
47
+ Requires-Dist: python-telegram-bot<22.0,>=21.0; extra == 'channels'
48
+ Provides-Extra: computer-use
49
+ Requires-Dist: pillow<11.0,>=10.0; extra == 'computer-use'
50
+ Requires-Dist: playwright<2.0,>=1.40; extra == 'computer-use'
51
+ Requires-Dist: pyautogui<1.0,>=0.9; extra == 'computer-use'
52
+ Provides-Extra: dev
53
+ Requires-Dist: pre-commit<4.0,>=3.7; extra == 'dev'
54
+ Requires-Dist: pyright<2.0,>=1.1; extra == 'dev'
55
+ Requires-Dist: pytest-asyncio<1.0,>=0.23; extra == 'dev'
56
+ Requires-Dist: pytest-cov<6.0,>=5.0; extra == 'dev'
57
+ Requires-Dist: pytest<9.0,>=8.0; extra == 'dev'
58
+ Requires-Dist: ruff<1.0,>=0.5; extra == 'dev'
59
+ Provides-Extra: voice
60
+ Requires-Dist: edge-tts<7.0,>=6.1; extra == 'voice'
61
+ Requires-Dist: openai-whisper>=20231117; extra == 'voice'
62
+ Requires-Dist: sounddevice<1.0,>=0.4; extra == 'voice'
63
+ Provides-Extra: web
64
+ Requires-Dist: fastapi<1.0,>=0.110; extra == 'web'
65
+ Requires-Dist: uvicorn<1.0,>=0.27; extra == 'web'
66
+ Requires-Dist: websockets<14.0,>=12.0; extra == 'web'
67
+ Description-Content-Type: text/markdown
68
+
69
+ <p align="center">
70
+ <h1 align="center">Hauba</h1>
71
+ <p align="center"><strong>Your AI Engineering Team — In One Command</strong></p>
72
+ <p align="center">
73
+ <a href="https://github.com/NikeGunn/haubaa/actions"><img src="https://github.com/NikeGunn/haubaa/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
74
+ <a href="https://pypi.org/project/hauba/"><img src="https://img.shields.io/pypi/v/hauba.svg" alt="PyPI"></a>
75
+ <a href="https://pypi.org/project/hauba/"><img src="https://img.shields.io/pypi/pyversions/hauba.svg" alt="Python"></a>
76
+ <a href="https://github.com/NikeGunn/haubaa/blob/main/LICENSE"><img src="https://img.shields.io/github/license/NikeGunn/haubaa.svg" alt="License"></a>
77
+ </p>
78
+ <p align="center">
79
+ <a href="#install">Install</a> &bull;
80
+ <a href="#quickstart">Quickstart</a> &bull;
81
+ <a href="#features">Features</a> &bull;
82
+ <a href="#architecture">Architecture</a> &bull;
83
+ <a href="CONTRIBUTING.md">Contributing</a>
84
+ </p>
85
+ </p>
86
+
87
+ ---
88
+
89
+ Hauba is an open-source AI agent framework that orchestrates a full engineering team — architect, backend, frontend, DevOps — controlled by a Director agent that **thinks before it acts**.
90
+
91
+ One command. Zero external dependencies. Works offline with Ollama.
92
+
93
+ ```bash
94
+ pip install hauba
95
+ hauba init
96
+ hauba run "build me a landing page with modern design"
97
+ ```
98
+
99
+ ## Why Hauba?
100
+
101
+ | Feature | Hauba | Others |
102
+ |---------|-------|--------|
103
+ | Multi-agent collaboration | Director → SubAgent → Worker hierarchy | Single agent or basic chains |
104
+ | Zero-hallucination tracking | TaskLedger with SHA-256 hash verification | Trust-based, no verification |
105
+ | Works offline | First-class Ollama support | Requires cloud API |
106
+ | Declarative teams | `hauba.yaml` (like docker-compose for AI) | Code-only configuration |
107
+ | Browser automation | Persistent sessions, stealth mode, crash recovery | Basic or none |
108
+ | Voice mode | Talk to your AI team | Text-only |
109
+ | Replay mode | Watch & share agent sessions | No replay |
110
+ | Single install | `pip install hauba` — no Docker, Redis, or Postgres | Complex setup |
111
+
112
+ ## Install
113
+
114
+ ```bash
115
+ # From PyPI (recommended)
116
+ pip install hauba
117
+
118
+ # From source
119
+ git clone https://github.com/NikeGunn/haubaa.git
120
+ cd haubaa
121
+ pip install -e ".[dev]"
122
+
123
+ # Optional extras
124
+ pip install hauba[computer-use] # Browser + screen control
125
+ pip install hauba[voice] # Voice mode (Whisper + TTS)
126
+ pip install hauba[web] # Web dashboard
127
+ pip install hauba[all] # Everything
128
+ ```
129
+
130
+ **Requirements:** Python 3.11+ — nothing else.
131
+
132
+ ## Quickstart
133
+
134
+ ### 1. Initialize
135
+
136
+ ```bash
137
+ hauba init
138
+ ```
139
+
140
+ Pick your LLM provider (Anthropic, OpenAI, Ollama, DeepSeek) and enter your API key.
141
+
142
+ ### 2. Run a task
143
+
144
+ ```bash
145
+ hauba run "create a REST API with user authentication"
146
+ ```
147
+
148
+ The Director agent will:
149
+ 1. **Deliberate** — understand your request and assess complexity
150
+ 2. **Plan** — decompose into steps with a dependency DAG
151
+ 3. **Execute** — use tools (bash, files, git, browser) to build it
152
+ 4. **Verify** — TaskLedger ensures every step completed with hash verification
153
+ 5. **Deliver** — only after all 5 verification gates pass
154
+
155
+ ### 3. Check system health
156
+
157
+ ```bash
158
+ hauba doctor
159
+ ```
160
+
161
+ ## Hauba Compose
162
+
163
+ Define your AI team declaratively:
164
+
165
+ ```yaml
166
+ # hauba.yaml
167
+ team: "my-saas"
168
+ model: "claude-sonnet-4-5-20250929"
169
+
170
+ agents:
171
+ architect:
172
+ role: "Senior Software Architect"
173
+ skills: [system-design, database-design, api-design]
174
+
175
+ backend:
176
+ role: "Backend Engineer"
177
+ skills: [fastapi, postgresql, auth]
178
+ depends_on: [architect]
179
+
180
+ frontend:
181
+ role: "Frontend Engineer"
182
+ skills: [nextjs, tailwind, react]
183
+ depends_on: [architect]
184
+
185
+ devops:
186
+ role: "DevOps Engineer"
187
+ skills: [docker, ci-cd, monitoring]
188
+ depends_on: [backend, frontend]
189
+ ```
190
+
191
+ ```bash
192
+ hauba compose up "build a SaaS dashboard with auth and billing"
193
+ ```
194
+
195
+ ## Features
196
+
197
+ ### Multi-Agent Hierarchy
198
+ - **Director** — receives your task, deliberates, creates a project plan
199
+ - **SubAgent** — manages a milestone, coordinates workers
200
+ - **Worker** — executes specific tasks with retry logic
201
+ - **CoWorker** — ephemeral helpers for sub-tasks
202
+
203
+ ### TaskLedger (Zero-Hallucination System)
204
+ Every task is tracked with a bit-vector and SHA-256 hash chain. Five verification gates ensure nothing is skipped or faked:
205
+ 1. **Pre-execution** — Ledger must exist before work begins
206
+ 2. **Dependency** — All dependencies verified before task starts
207
+ 3. **Completion** — Output hashed and verified on disk
208
+ 4. **Delivery** — Full ledger gate check at each level
209
+ 5. **Reconciliation** — Plan count matches ledger count
210
+
211
+ ### Browser Automation (Persistent Sessions)
212
+ ```bash
213
+ hauba run "scrape product data from the competitor website"
214
+ ```
215
+ - Persistent browser context — sessions survive crashes
216
+ - Stealth mode — anti-bot detection evasion
217
+ - Auto-retry with crash recovery
218
+
219
+ ### Voice Mode
220
+ ```bash
221
+ hauba voice
222
+ ```
223
+ Talk to your AI team. Uses Whisper (local) for speech-to-text and edge-tts for responses. Works fully offline with Ollama.
224
+
225
+ ### Replay Mode
226
+ ```bash
227
+ hauba replay <task_id>
228
+ hauba replay <task_id> --speed 5
229
+ ```
230
+ Every agent action is recorded and replayable with speed control.
231
+
232
+ ### Skills & Strategies
233
+ 10 built-in skills and 6 strategies ship with Hauba:
234
+ ```bash
235
+ hauba skill list # See all available skills
236
+ hauba skill show code-generation # View a skill's details
237
+ hauba skill install ./my-skill.md # Install a custom skill
238
+ ```
239
+
240
+ ### Web Dashboard
241
+ ```bash
242
+ hauba serve
243
+ ```
244
+ Real-time web dashboard with WebSocket event streaming at `http://localhost:8420`.
245
+
246
+ ### Channels
247
+ ```bash
248
+ hauba voice # Voice conversation
249
+ hauba serve # Web dashboard
250
+ ```
251
+ Plus Telegram and Discord bot integrations.
252
+
253
+ ## CLI Reference
254
+
255
+ ```
256
+ hauba init # Interactive setup wizard
257
+ hauba run "task description" # Execute a task
258
+ hauba status # Show config and status
259
+ hauba doctor # Diagnose setup issues
260
+ hauba logs # View recent logs
261
+ hauba config <key> [value] # Get/set configuration
262
+
263
+ hauba compose up "task" [-f file] # Run with agent team
264
+ hauba compose validate # Check hauba.yaml syntax
265
+
266
+ hauba skill list # List all skills
267
+ hauba skill show <name> # View skill details
268
+ hauba skill install <path> # Install a skill
269
+ hauba skill create <name> # Scaffold new skill
270
+
271
+ hauba voice # Voice conversation mode
272
+ hauba serve [--port 8420] # Start web dashboard
273
+ hauba replay <task_id> [--speed 2] # Replay a session
274
+ ```
275
+
276
+ ## Configuration
277
+
278
+ ```bash
279
+ # Anthropic (default)
280
+ hauba config llm.provider anthropic
281
+ hauba config llm.api_key sk-ant-...
282
+
283
+ # OpenAI
284
+ hauba config llm.provider openai
285
+ hauba config llm.api_key sk-...
286
+
287
+ # Ollama (offline, free)
288
+ hauba config llm.provider ollama
289
+ hauba config llm.model llama3.2
290
+ ```
291
+
292
+ ## Architecture
293
+
294
+ ```
295
+ Director (1 per task)
296
+ ├── SubAgent (per milestone)
297
+ │ ├── Worker (per task)
298
+ │ │ └── CoWorker (ephemeral)
299
+ │ └── Worker
300
+ └── SubAgent
301
+ └── Worker
302
+ ```
303
+
304
+ **Stack:** Python 3.11+ | asyncio | SQLite | litellm | Typer | Rich | Pydantic v2
305
+
306
+ ## Contributing
307
+
308
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
309
+
310
+ ```bash
311
+ git clone https://github.com/NikeGunn/haubaa.git
312
+ cd haubaa
313
+ pip install -e ".[dev]"
314
+ pytest tests/ -v
315
+ ```
316
+
317
+ ## License
318
+
319
+ MIT License — see [LICENSE](LICENSE) for details.
320
+
321
+ ---
322
+
323
+ <p align="center">
324
+ <strong>Hauba doesn't guess. Hauba verifies.</strong>
325
+ </p>
hauba-0.1.0/README.md ADDED
@@ -0,0 +1,257 @@
1
+ <p align="center">
2
+ <h1 align="center">Hauba</h1>
3
+ <p align="center"><strong>Your AI Engineering Team — In One Command</strong></p>
4
+ <p align="center">
5
+ <a href="https://github.com/NikeGunn/haubaa/actions"><img src="https://github.com/NikeGunn/haubaa/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
6
+ <a href="https://pypi.org/project/hauba/"><img src="https://img.shields.io/pypi/v/hauba.svg" alt="PyPI"></a>
7
+ <a href="https://pypi.org/project/hauba/"><img src="https://img.shields.io/pypi/pyversions/hauba.svg" alt="Python"></a>
8
+ <a href="https://github.com/NikeGunn/haubaa/blob/main/LICENSE"><img src="https://img.shields.io/github/license/NikeGunn/haubaa.svg" alt="License"></a>
9
+ </p>
10
+ <p align="center">
11
+ <a href="#install">Install</a> &bull;
12
+ <a href="#quickstart">Quickstart</a> &bull;
13
+ <a href="#features">Features</a> &bull;
14
+ <a href="#architecture">Architecture</a> &bull;
15
+ <a href="CONTRIBUTING.md">Contributing</a>
16
+ </p>
17
+ </p>
18
+
19
+ ---
20
+
21
+ Hauba is an open-source AI agent framework that orchestrates a full engineering team — architect, backend, frontend, DevOps — controlled by a Director agent that **thinks before it acts**.
22
+
23
+ One command. Zero external dependencies. Works offline with Ollama.
24
+
25
+ ```bash
26
+ pip install hauba
27
+ hauba init
28
+ hauba run "build me a landing page with modern design"
29
+ ```
30
+
31
+ ## Why Hauba?
32
+
33
+ | Feature | Hauba | Others |
34
+ |---------|-------|--------|
35
+ | Multi-agent collaboration | Director → SubAgent → Worker hierarchy | Single agent or basic chains |
36
+ | Zero-hallucination tracking | TaskLedger with SHA-256 hash verification | Trust-based, no verification |
37
+ | Works offline | First-class Ollama support | Requires cloud API |
38
+ | Declarative teams | `hauba.yaml` (like docker-compose for AI) | Code-only configuration |
39
+ | Browser automation | Persistent sessions, stealth mode, crash recovery | Basic or none |
40
+ | Voice mode | Talk to your AI team | Text-only |
41
+ | Replay mode | Watch & share agent sessions | No replay |
42
+ | Single install | `pip install hauba` — no Docker, Redis, or Postgres | Complex setup |
43
+
44
+ ## Install
45
+
46
+ ```bash
47
+ # From PyPI (recommended)
48
+ pip install hauba
49
+
50
+ # From source
51
+ git clone https://github.com/NikeGunn/haubaa.git
52
+ cd haubaa
53
+ pip install -e ".[dev]"
54
+
55
+ # Optional extras
56
+ pip install hauba[computer-use] # Browser + screen control
57
+ pip install hauba[voice] # Voice mode (Whisper + TTS)
58
+ pip install hauba[web] # Web dashboard
59
+ pip install hauba[all] # Everything
60
+ ```
61
+
62
+ **Requirements:** Python 3.11+ — nothing else.
63
+
64
+ ## Quickstart
65
+
66
+ ### 1. Initialize
67
+
68
+ ```bash
69
+ hauba init
70
+ ```
71
+
72
+ Pick your LLM provider (Anthropic, OpenAI, Ollama, DeepSeek) and enter your API key.
73
+
74
+ ### 2. Run a task
75
+
76
+ ```bash
77
+ hauba run "create a REST API with user authentication"
78
+ ```
79
+
80
+ The Director agent will:
81
+ 1. **Deliberate** — understand your request and assess complexity
82
+ 2. **Plan** — decompose into steps with a dependency DAG
83
+ 3. **Execute** — use tools (bash, files, git, browser) to build it
84
+ 4. **Verify** — TaskLedger ensures every step completed with hash verification
85
+ 5. **Deliver** — only after all 5 verification gates pass
86
+
87
+ ### 3. Check system health
88
+
89
+ ```bash
90
+ hauba doctor
91
+ ```
92
+
93
+ ## Hauba Compose
94
+
95
+ Define your AI team declaratively:
96
+
97
+ ```yaml
98
+ # hauba.yaml
99
+ team: "my-saas"
100
+ model: "claude-sonnet-4-5-20250929"
101
+
102
+ agents:
103
+ architect:
104
+ role: "Senior Software Architect"
105
+ skills: [system-design, database-design, api-design]
106
+
107
+ backend:
108
+ role: "Backend Engineer"
109
+ skills: [fastapi, postgresql, auth]
110
+ depends_on: [architect]
111
+
112
+ frontend:
113
+ role: "Frontend Engineer"
114
+ skills: [nextjs, tailwind, react]
115
+ depends_on: [architect]
116
+
117
+ devops:
118
+ role: "DevOps Engineer"
119
+ skills: [docker, ci-cd, monitoring]
120
+ depends_on: [backend, frontend]
121
+ ```
122
+
123
+ ```bash
124
+ hauba compose up "build a SaaS dashboard with auth and billing"
125
+ ```
126
+
127
+ ## Features
128
+
129
+ ### Multi-Agent Hierarchy
130
+ - **Director** — receives your task, deliberates, creates a project plan
131
+ - **SubAgent** — manages a milestone, coordinates workers
132
+ - **Worker** — executes specific tasks with retry logic
133
+ - **CoWorker** — ephemeral helpers for sub-tasks
134
+
135
+ ### TaskLedger (Zero-Hallucination System)
136
+ Every task is tracked with a bit-vector and SHA-256 hash chain. Five verification gates ensure nothing is skipped or faked:
137
+ 1. **Pre-execution** — Ledger must exist before work begins
138
+ 2. **Dependency** — All dependencies verified before task starts
139
+ 3. **Completion** — Output hashed and verified on disk
140
+ 4. **Delivery** — Full ledger gate check at each level
141
+ 5. **Reconciliation** — Plan count matches ledger count
142
+
143
+ ### Browser Automation (Persistent Sessions)
144
+ ```bash
145
+ hauba run "scrape product data from the competitor website"
146
+ ```
147
+ - Persistent browser context — sessions survive crashes
148
+ - Stealth mode — anti-bot detection evasion
149
+ - Auto-retry with crash recovery
150
+
151
+ ### Voice Mode
152
+ ```bash
153
+ hauba voice
154
+ ```
155
+ Talk to your AI team. Uses Whisper (local) for speech-to-text and edge-tts for responses. Works fully offline with Ollama.
156
+
157
+ ### Replay Mode
158
+ ```bash
159
+ hauba replay <task_id>
160
+ hauba replay <task_id> --speed 5
161
+ ```
162
+ Every agent action is recorded and replayable with speed control.
163
+
164
+ ### Skills & Strategies
165
+ 10 built-in skills and 6 strategies ship with Hauba:
166
+ ```bash
167
+ hauba skill list # See all available skills
168
+ hauba skill show code-generation # View a skill's details
169
+ hauba skill install ./my-skill.md # Install a custom skill
170
+ ```
171
+
172
+ ### Web Dashboard
173
+ ```bash
174
+ hauba serve
175
+ ```
176
+ Real-time web dashboard with WebSocket event streaming at `http://localhost:8420`.
177
+
178
+ ### Channels
179
+ ```bash
180
+ hauba voice # Voice conversation
181
+ hauba serve # Web dashboard
182
+ ```
183
+ Plus Telegram and Discord bot integrations.
184
+
185
+ ## CLI Reference
186
+
187
+ ```
188
+ hauba init # Interactive setup wizard
189
+ hauba run "task description" # Execute a task
190
+ hauba status # Show config and status
191
+ hauba doctor # Diagnose setup issues
192
+ hauba logs # View recent logs
193
+ hauba config <key> [value] # Get/set configuration
194
+
195
+ hauba compose up "task" [-f file] # Run with agent team
196
+ hauba compose validate # Check hauba.yaml syntax
197
+
198
+ hauba skill list # List all skills
199
+ hauba skill show <name> # View skill details
200
+ hauba skill install <path> # Install a skill
201
+ hauba skill create <name> # Scaffold new skill
202
+
203
+ hauba voice # Voice conversation mode
204
+ hauba serve [--port 8420] # Start web dashboard
205
+ hauba replay <task_id> [--speed 2] # Replay a session
206
+ ```
207
+
208
+ ## Configuration
209
+
210
+ ```bash
211
+ # Anthropic (default)
212
+ hauba config llm.provider anthropic
213
+ hauba config llm.api_key sk-ant-...
214
+
215
+ # OpenAI
216
+ hauba config llm.provider openai
217
+ hauba config llm.api_key sk-...
218
+
219
+ # Ollama (offline, free)
220
+ hauba config llm.provider ollama
221
+ hauba config llm.model llama3.2
222
+ ```
223
+
224
+ ## Architecture
225
+
226
+ ```
227
+ Director (1 per task)
228
+ ├── SubAgent (per milestone)
229
+ │ ├── Worker (per task)
230
+ │ │ └── CoWorker (ephemeral)
231
+ │ └── Worker
232
+ └── SubAgent
233
+ └── Worker
234
+ ```
235
+
236
+ **Stack:** Python 3.11+ | asyncio | SQLite | litellm | Typer | Rich | Pydantic v2
237
+
238
+ ## Contributing
239
+
240
+ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
241
+
242
+ ```bash
243
+ git clone https://github.com/NikeGunn/haubaa.git
244
+ cd haubaa
245
+ pip install -e ".[dev]"
246
+ pytest tests/ -v
247
+ ```
248
+
249
+ ## License
250
+
251
+ MIT License — see [LICENSE](LICENSE) for details.
252
+
253
+ ---
254
+
255
+ <p align="center">
256
+ <strong>Hauba doesn't guess. Hauba verifies.</strong>
257
+ </p>