-
Notifications
You must be signed in to change notification settings - Fork 1
Contributing
Ömer Tarık Yılmaz edited this page Apr 5, 2026
·
1 revision
git clone https://github.com/Hesper-Labs/white-ops.git
cd white-ops
cp .env.example .env
make dev # Start with hot reload- Formatter:
ruff format - Linter:
ruff check - Type checker:
mypy --strict - Tests:
pytest
- Strict mode enabled
- ESLint for linting
-
npx tsc --noEmitfor type checking
- Create file in
worker/agent/tools/<category>/your_tool.py - Extend
BaseTool:
from typing import Any
from agent.tools.base import BaseTool
class MyTool(BaseTool):
name = "my_tool"
description = "What this tool does"
parameters = {
"type": "object",
"properties": {
"action": {"type": "string", "enum": ["create", "read"]},
"data": {"type": "string"},
},
"required": ["action"],
}
async def execute(self, **kwargs: Any) -> Any:
action = kwargs["action"]
if action == "create":
return "Created"
return "Done"- Tool is auto-discovered at startup. No registration needed.
- Add tests in
worker/tests/
See Tool Reference for all existing tools.
- Create
server/app/api/v1/your_module.py - Add router in
server/app/main.py:app.include_router(your_module.router, prefix="/api/v1/your-module", tags=["your-module"])
- Add Pydantic schemas in
server/app/schemas/ - Add audit logging for important actions
- Create
web/src/pages/YourPage.tsx - Add route in
web/src/App.tsx - Add sidebar entry in
web/src/components/layout/Layout.tsx - Add mock data in
web/src/api/mock.tsfor demo mode
- Fork the repo
- Create a feature branch:
git checkout -b feat/my-feature - Follow code standards
- Run
make lint && make test - Submit PR with description
feat: add new Excel chart types
fix: resolve WebSocket reconnection issue
docs: update deployment guide
test: add auth endpoint tests
refactor: simplify task orchestrator