Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
faba893
Add ticket platform registry, adapters, and updated guide/dashboard
Jun 17, 2026
110c3fe
Add CI workflow, docker compose, dashboard mockup
Jun 17, 2026
dfdcf09
Add skill manifest and docker compose files
Jun 17, 2026
ca92ea9
Add self-hosted container stacks (STT, TTS, browser, honcho, search, …
Jun 17, 2026
b7f50bc
Update guide with compose commands and add self-hosted addon compose …
Jun 17, 2026
16c85aa
Add persona-customer-support skill from hazelugo/fav_gits
Jun 17, 2026
cb6a0ce
Add self-hosted storage stack: Postgres + MinIO
Jun 17, 2026
cdf9f0f
Add self-hosted stacks: mail automation, git docs, and monitoring
Jun 17, 2026
99c659a
Harden compose port mapping; add automation, mail, git, and monitorin…
Jun 17, 2026
22b9c2b
docs: update README references after rename to CommandDesk
OneByJorah Jun 17, 2026
3e0eafe
docs: migrate legacy references in README
OneByJorah Jun 17, 2026
07a1021
feat: full helpdesk stack - docker-compose, agent configs, freshdesk …
OneByJorah Jun 20, 2026
36e0873
feat: searxng config, n8n workflows, setup script searxng-settings.yml
OneByJorah Jun 20, 2026
8f3ce18
feat: WhatsApp webhook, Freshdesk MCP client, human queue, health mon…
OneByJorah Jun 20, 2026
7bf82c6
feat: WhatsApp webhook, human takeover, tools-ui, Makefile, CI, scree…
OneByJorah Jun 20, 2026
a5c1001
feat: n8n workflows, MCP registry, mobile PWA, analytics, production …
OneByJorah Jun 20, 2026
744172a
feat: J1 Dev Ops dashboard (kanban workspace for subagent team)
OneByJorah Jun 20, 2026
c11cc97
build(deps): bump requests from 2.32.3 to 2.33.0
dependabot[bot] Jul 2, 2026
d1ae62f
build(deps): bump python-multipart from 0.0.20 to 0.0.31
dependabot[bot] Jul 2, 2026
451d9d5
build(deps): bump python-dotenv from 1.0.1 to 1.2.2
dependabot[bot] Jul 2, 2026
b5b08a9
docs: comprehensive README with features, quick start, architecture, …
villon Jul 4, 2026
e72cdf4
Apply ruff auto-fixes and portfolio standardization
Jul 4, 2026
e213570
chore(release): v1.0.0 — initial changelog
Jul 7, 2026
996e1ee
docs: add screenshot placeholder to README
Jul 7, 2026
a11394e
fix: bump yanked openai==1.59.0 -> 1.59.2 (build was failing, version…
Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# ═══════════════════════════════════════════════════
# Helpdesk Agent - Environment Configuration
# Copy to .env and fill in your values
# ═══════════════════════════════════════════════════

# ── LLM ──────────────────────────────────────────────
LLAMA_MODEL_PATH=/models/qwen2.5-7b-instruct-q4_k_m.gguf
LLAMA_PORT=8081
LLAMA_CTX_SIZE=65536
LLAMA_THREADS=6

# ── Hermes Agent ─────────────────────────────────────
HERMES_API_KEY=change...n
ADMIN_API_KEY=change...n

# ── PostgreSQL ───────────────────────────────────────
DB_HOST=postgres
DB_PORT=5432
DB_NAME=helpdesk
DB_USER=helpdesk
DB_PASSWORD=change...n

# ── Redis ────────────────────────────────────────────
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=change...n

# ── ChromaDB ─────────────────────────────────────────
CHROMA_HOST=chroma
CHROMA_PORT=8000
CHROMA_AUTH_TOKEN=change...n

# ── SearXNG ──────────────────────────────────────────
SEARX_HOST=searxng
SEARX_PORT=8080

# ── n8n ──────────────────────────────────────────────
N8N_HOST=n8n
N8N_PORT=5678
N8N_WEBHOOK_URL=http://localhost:5678
JWT_SECRET=change...n

# ── Email (IMAP) ─────────────────────────────────────
IMAP_HOST=imap.example.com
IMAP_PORT=993
IMAP_USER=helpdesk@example.com
IMAP_PASSWORD=change...n
POLL_INTERVAL=60
TICKET_PLATFORM=osticket

# ── osTicket API ─────────────────────────────────────
OSTICKET_URL=https://support.example.com/api/tickets.json
OSTICKET_API_KEY=change...n

# ── Freshdesk API (free plan) ────────────────────────
FRESHDESK_URL=https://yourcompany.freshdesk.com
FRESHDESK_API_KEY=change...n

# ── Security / Rate Limiting ─────────────────────────
RATE_LIMIT_PER_SESSION=50
RATE_LIMIT_WINDOW=3600
MAX_MESSAGE_LENGTH=4000
MAX_SESSION_DURATION=7200

# ── Agent Mode ───────────────────────────────────────
HELPDESK_MODE=self-service
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug Report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''

---

**Describe the Bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected Behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
- OS: [e.g. Ubuntu 22.04]
- Python Version: [e.g. 3.11]
- Docker Version: [e.g. 24.0]

**Additional Context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature Request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the Solution You'd Like**
A clear and concise description of what you want to happen.

**Describe Alternatives You've Considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional Context**
Add any other context or screenshots about the feature request here.
23 changes: 23 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Description

Please include a summary of the change and which issue is fixed.

Fixes # (issue)

## Type of Change

- [ ] Bug fix (non-breaking change)
- [ ] New feature (non-breaking change)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Security fix

## Checklist

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
21 changes: 21 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
69 changes: 69 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: CI

on:
push:
branches: [main, master]
pull_request:
branches: [main, master]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Validate docker-compose
run: |
docker compose config --quiet

- name: Lint Dockerfile
uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: Dockerfile
failure-threshold: warning

- name: Lint Python
run: |
pip install flake8
flake8 scripts/ --max-line-length=120 --ignore=E501,W503

test-configs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check YAML syntax
run: |
pip install pyyaml
python3 -c "
import yaml, sys, glob
for f in glob.glob('config/*.yaml') + glob.glob('config/*.yml'):
try:
yaml.safe_load(open(f))
print(f'OK: {f}')
except Exception as e:
print(f'FAIL: {f} - {e}')
sys.exit(1)
"

- name: Check SQL syntax
run: |
echo "SQL syntax check passed (manual review required)"

build:
runs-on: ubuntu-latest
needs: [lint, test-configs]
steps:
- uses: actions/checkout@v4

- name: Build containers
run: |
docker compose build --parallel

- name: Smoke test
run: |
docker compose up -d postgres redis
sleep 5
docker compose exec -T postgres pg_isready -U helpdesk
docker compose exec -T redis redis-cli ping
docker compose down -v
37 changes: 37 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: CodeQL
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
schedule:
- cron: '0 0 * * 0'

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: ['python', 'javascript', 'typescript']

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}

- name: Autobuild
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
34 changes: 26 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,29 @@
*.pyc
__pycache__
# Secrets
.env
.secrets/
certs/
*.pem
*.key

# Models
models/
*.gguf
*.ggml

# Data
data/
knowledge-base/*.json
knowledge-base/*.txt
email-queue/

# IDE
.idea/
.vscode/
*.swp

# OS
.DS_Store
.venv
venv
node_modules
dist
build
Thumbs.db

# Logs
*.log
data/logs/
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Changelog

## [1.0.0] - 2026-07-07
### Added
- Initial release
48 changes: 48 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes
- Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior:

- The use of sexualized language or imagery, and sexual attention or advances
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the project team at security@jorahone.com. All complaints will
be reviewed and investigated and will result in a response that is deemed
necessary and appropriate to the circumstances.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

[homepage]: https://www.contributor-covenant.org
Loading