quadwork 0.1.3 → 1.0.0
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.
- package/README.md +58 -83
- package/bin/quadwork.js +372 -58
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +1 -1
- package/out/__next._full.txt +2 -2
- package/out/__next._head.txt +1 -1
- package/out/__next._index.txt +2 -2
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/0ahp74n0wkel0.js +1 -0
- package/out/_next/static/chunks/{038g944ax83al.js → 0dmi9pk2bd712.js} +3 -3
- package/out/_next/static/chunks/0ezniz80psxr6.js +1 -0
- package/out/_next/static/chunks/0g-nq4.uckan-.js +1 -0
- package/out/_next/static/chunks/0io_y3d0p5v~b.js +2 -0
- package/out/_next/static/chunks/0jt42fqe6jaw6.js +1 -0
- package/out/_next/static/chunks/{0wda-2lcle8c4.js → 0q5hwcek8vu2q.js} +12 -12
- package/out/_next/static/chunks/0r_tb4lmfa_yb.js +1 -0
- package/out/_next/static/chunks/0s8jbc4nxw6y6.css +2 -0
- package/out/_next/static/chunks/0z~0.4hivi.f2.js +31 -0
- package/out/_next/static/chunks/135rms05ismy4.js +13 -0
- package/out/_next/static/chunks/14kr4rvjq-2md.js +1 -0
- package/out/_next/static/chunks/turbopack-0sammtvunroor.js +1 -0
- package/out/_not-found/__next._full.txt +2 -2
- package/out/_not-found/__next._head.txt +1 -1
- package/out/_not-found/__next._index.txt +2 -2
- package/out/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/out/_not-found/__next._not-found.txt +1 -1
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +2 -2
- package/out/app-shell/__next._full.txt +18 -0
- package/out/app-shell/__next._head.txt +6 -0
- package/out/app-shell/__next._index.txt +6 -0
- package/out/app-shell/__next._tree.txt +3 -0
- package/out/app-shell/__next.app-shell.__PAGE__.txt +5 -0
- package/out/app-shell/__next.app-shell.txt +5 -0
- package/out/app-shell.html +1 -0
- package/out/app-shell.txt +18 -0
- package/out/index.html +1 -1
- package/out/index.txt +2 -2
- package/out/project/_/__next._full.txt +3 -4
- package/out/project/_/__next._head.txt +1 -1
- package/out/project/_/__next._index.txt +2 -2
- package/out/project/_/__next._tree.txt +2 -3
- package/out/project/_/__next.project.$d$id.__PAGE__.txt +2 -3
- package/out/project/_/__next.project.$d$id.txt +1 -1
- package/out/project/_/__next.project.txt +1 -1
- package/out/project/_/memory/__next._full.txt +3 -3
- package/out/project/_/memory/__next._head.txt +1 -1
- package/out/project/_/memory/__next._index.txt +2 -2
- package/out/project/_/memory/__next._tree.txt +2 -2
- package/out/project/_/memory/__next.project.$d$id.memory.__PAGE__.txt +2 -2
- package/out/project/_/memory/__next.project.$d$id.memory.txt +1 -1
- package/out/project/_/memory/__next.project.$d$id.txt +1 -1
- package/out/project/_/memory/__next.project.txt +1 -1
- package/out/project/_/memory.html +1 -1
- package/out/project/_/memory.txt +3 -3
- package/out/project/_/queue/__next._full.txt +3 -3
- package/out/project/_/queue/__next._head.txt +1 -1
- package/out/project/_/queue/__next._index.txt +2 -2
- package/out/project/_/queue/__next._tree.txt +2 -2
- package/out/project/_/queue/__next.project.$d$id.queue.__PAGE__.txt +2 -2
- package/out/project/_/queue/__next.project.$d$id.queue.txt +1 -1
- package/out/project/_/queue/__next.project.$d$id.txt +1 -1
- package/out/project/_/queue/__next.project.txt +1 -1
- package/out/project/_/queue.html +1 -1
- package/out/project/_/queue.txt +3 -3
- package/out/project/_.html +1 -1
- package/out/project/_.txt +3 -4
- package/out/settings/__next._full.txt +3 -3
- package/out/settings/__next._head.txt +1 -1
- package/out/settings/__next._index.txt +2 -2
- package/out/settings/__next._tree.txt +2 -2
- package/out/settings/__next.settings.__PAGE__.txt +2 -2
- package/out/settings/__next.settings.txt +1 -1
- package/out/settings.html +1 -1
- package/out/settings.txt +3 -3
- package/out/setup/__next._full.txt +3 -3
- package/out/setup/__next._head.txt +1 -1
- package/out/setup/__next._index.txt +2 -2
- package/out/setup/__next._tree.txt +2 -2
- package/out/setup/__next.setup.__PAGE__.txt +2 -2
- package/out/setup/__next.setup.txt +1 -1
- package/out/setup.html +1 -1
- package/out/setup.txt +3 -3
- package/package.json +1 -1
- package/server/config.js +25 -1
- package/server/index.js +248 -15
- package/server/routes.js +91 -2
- package/out/_next/static/chunks/0.dzh0qf9zq1l.js +0 -2
- package/out/_next/static/chunks/02ul7y114vj2f.js +0 -13
- package/out/_next/static/chunks/0gy_9ugdx7ueh.js +0 -1
- package/out/_next/static/chunks/0idtc5k0469of.js +0 -1
- package/out/_next/static/chunks/0yxmvmvm1dx_d.css +0 -2
- package/out/_next/static/chunks/13uu.sohs74zg.js +0 -31
- package/out/_next/static/chunks/turbopack-06pqx~0d8czn_.js +0 -1
- /package/out/_next/static/{91YUiFoMbLQ9sZW4uk45J → 4vrILyy2mh_Ox4JMTaqx8}/_buildManifest.js +0 -0
- /package/out/_next/static/{91YUiFoMbLQ9sZW4uk45J → 4vrILyy2mh_Ox4JMTaqx8}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{91YUiFoMbLQ9sZW4uk45J → 4vrILyy2mh_Ox4JMTaqx8}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -1,73 +1,70 @@
|
|
|
1
1
|
# QuadWork
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Your AI dev team in a box. Four agents — one Head, one Dev, two Reviewers — that code, review, and ship while you sleep.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Getting Started
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
| | T3 Terminal | T2b Terminal |
|
|
13
|
-
| [Home] | (Builder) | (Reviewer) |
|
|
14
|
-
| [Proj] +----------------------------+----------------------------+
|
|
15
|
-
| [+] | Agent Chat (AgentChattr) | GitHub (Issues + PRs) |
|
|
16
|
-
| [Set] | | |
|
|
17
|
-
+--------+----------------------------+----------------------------+
|
|
7
|
+
1. Install [Node.js 20+](https://nodejs.org) if you don't have it
|
|
8
|
+
2. Open your terminal and run:
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx quadwork init
|
|
18
12
|
```
|
|
19
13
|
|
|
20
|
-
|
|
14
|
+
3. The wizard installs everything else and opens your dashboard.
|
|
21
15
|
|
|
22
|
-
|
|
23
|
-
- **Agent chat** — AgentChattr integration for real-time agent coordination
|
|
24
|
-
- **GitHub board** — Issues, PRs, and review status at a glance
|
|
25
|
-
- **Task queue** — Build and dispatch work queues to T1 with one click
|
|
26
|
-
- **Shared memory** — Memory cards, butler scripts, and cross-agent context
|
|
27
|
-
- **Telegram bridge** — Optional Telegram bot integration for mobile notifications
|
|
28
|
-
- **Single-port server** — Everything on `http://127.0.0.1:8400` (API + WebSocket + UI)
|
|
29
|
-
- **Backend indicator** — Clear offline/online status in the sidebar
|
|
16
|
+
That's it. The wizard handles Python, GitHub CLI, AI tools, and authentication — you just follow the prompts.
|
|
30
17
|
|
|
31
|
-
##
|
|
18
|
+
## How It Works
|
|
32
19
|
|
|
33
|
-
|
|
34
|
-
- **Python 3.10+** (for AgentChattr)
|
|
35
|
-
- **GitHub CLI** (`gh`) — [install](https://cli.github.com)
|
|
36
|
-
- **Claude Code** or **Codex CLI** — at least one AI agent CLI
|
|
20
|
+
QuadWork runs a team of 4 AI agents on your local machine:
|
|
37
21
|
|
|
38
|
-
|
|
22
|
+
| Agent | Role | What it does |
|
|
23
|
+
|-------|------|-------------|
|
|
24
|
+
| **Head** | Coordinator | Creates issues, assigns tasks, merges approved PRs |
|
|
25
|
+
| **Dev** | Builder | Writes code, opens PRs, addresses review feedback |
|
|
26
|
+
| **Reviewer1** | Reviewer | Independent code review with veto authority |
|
|
27
|
+
| **Reviewer2** | Reviewer | Independent code review with veto authority |
|
|
39
28
|
|
|
40
|
-
|
|
41
|
-
npx quadwork init # Interactive setup: repo, worktrees, agents, config
|
|
42
|
-
npx quadwork start # Launches dashboard at http://127.0.0.1:8400
|
|
43
|
-
npx quadwork stop # Stops all processes
|
|
44
|
-
```
|
|
29
|
+
Every task follows a GitHub workflow: Issue → Branch → PR → 2 Reviews → Merge. Branch protection ensures no agent can skip the process.
|
|
45
30
|
|
|
46
|
-
##
|
|
31
|
+
## Dashboard
|
|
47
32
|
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
```
|
|
34
|
+
+--------+----------------------------+----------------------------+
|
|
35
|
+
| | Head Terminal | GitHub (Issues + PRs) |
|
|
36
|
+
| Side- | (Coordinator) | |
|
|
37
|
+
| bar +----------------------------+----------------------------+
|
|
38
|
+
| | Agent Chat | Reviewer1 | Reviewer2 |
|
|
39
|
+
| [Home] | (AgentChattr) | | |
|
|
40
|
+
| [Proj] | +-------------+--------------+
|
|
41
|
+
| [+] | | Dev Terminal |
|
|
42
|
+
| [Set] | | (Builder) |
|
|
43
|
+
+--------+----------------------------+----------------------------+
|
|
44
|
+
| Keep Alive | Server: Stop Restart Reset | System: Keep Awake |
|
|
45
|
+
+--------+----------------------------+----------------------------+
|
|
54
46
|
```
|
|
55
47
|
|
|
56
|
-
|
|
48
|
+
## Features
|
|
57
49
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
50
|
+
- **Terminal panels** — Live terminals for each agent with PTY sessions
|
|
51
|
+
- **Agent chat** — Real-time agent coordination via AgentChattr
|
|
52
|
+
- **GitHub board** — Issues, PRs, and review status at a glance
|
|
53
|
+
- **Task queue** — Build and dispatch work queues with one click
|
|
54
|
+
- **Keep Alive** — Scheduled check-in messages to keep agents active (with auto-stop duration)
|
|
55
|
+
- **Keep Awake** — Prevent your Mac from sleeping during overnight runs
|
|
56
|
+
- **Multi-project** — Each project gets its own AgentChattr instance and ports
|
|
57
|
+
- **Telegram bridge** — Optional mobile notifications via [agentchattr-telegram](https://github.com/realproject7/agentchattr-telegram)
|
|
62
58
|
|
|
63
59
|
## Commands
|
|
64
60
|
|
|
65
61
|
| Command | Description |
|
|
66
62
|
|---------|-------------|
|
|
67
|
-
| `quadwork init` |
|
|
68
|
-
| `quadwork start` | Start the server
|
|
69
|
-
| `quadwork stop` | Stop
|
|
70
|
-
|
|
63
|
+
| `npx quadwork init` | One-time setup — installs prerequisites and opens the dashboard |
|
|
64
|
+
| `npx quadwork start` | Start the dashboard server |
|
|
65
|
+
| `npx quadwork stop` | Stop all processes |
|
|
66
|
+
|
|
67
|
+
After init, create projects from the web UI at `http://127.0.0.1:8400/setup`.
|
|
71
68
|
|
|
72
69
|
## Configuration
|
|
73
70
|
|
|
@@ -76,59 +73,37 @@ Config is stored at `~/.quadwork/config.json`:
|
|
|
76
73
|
```json
|
|
77
74
|
{
|
|
78
75
|
"port": 8400,
|
|
79
|
-
"agentchattr_url": "http://127.0.0.1:8300",
|
|
80
76
|
"projects": [
|
|
81
77
|
{
|
|
82
78
|
"id": "my-project",
|
|
83
79
|
"name": "My Project",
|
|
84
80
|
"repo": "owner/repo",
|
|
85
81
|
"working_dir": "/path/to/project",
|
|
82
|
+
"agentchattr_url": "http://127.0.0.1:8300",
|
|
83
|
+
"mcp_http_port": 8200,
|
|
84
|
+
"mcp_sse_port": 8201,
|
|
86
85
|
"agents": {
|
|
87
|
-
"head": { "cwd": "/path/to/project-head", "command": "
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
86
|
+
"head": { "cwd": "/path/to/project-head", "command": "codex" },
|
|
87
|
+
"dev": { "cwd": "/path/to/project-dev", "command": "claude" },
|
|
88
|
+
"reviewer1": { "cwd": "/path/to/project-reviewer1", "command": "codex" },
|
|
89
|
+
"reviewer2": { "cwd": "/path/to/project-reviewer2", "command": "claude" }
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
92
|
]
|
|
94
93
|
}
|
|
95
94
|
```
|
|
96
95
|
|
|
97
|
-
Each
|
|
98
|
-
|
|
99
|
-
## Optional Add-ons
|
|
100
|
-
|
|
101
|
-
### AgentChattr
|
|
102
|
-
|
|
103
|
-
Shared chat server for agent coordination. Install separately:
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
pip install agentchattr
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
The setup wizard configures AgentChattr automatically. See [agentchattr](https://github.com/realproject7/agentchattr) for details.
|
|
110
|
-
|
|
111
|
-
### Telegram Bridge
|
|
112
|
-
|
|
113
|
-
Forward agent chat to a Telegram group. Configure in Settings or during `quadwork init`. Requires a Telegram bot token and chat ID.
|
|
114
|
-
|
|
115
|
-
### Shared Memory
|
|
116
|
-
|
|
117
|
-
Cross-agent memory system with memory cards and butler scripts. Set up during `quadwork init` or configure paths in Settings.
|
|
96
|
+
Each project gets its own AgentChattr instance, ports, and git worktrees.
|
|
118
97
|
|
|
119
98
|
## Architecture
|
|
120
99
|
|
|
121
100
|
QuadWork runs a single Express server that serves:
|
|
122
101
|
|
|
123
|
-
- **Static frontend** — Pre-built Next.js export
|
|
124
|
-
- **REST API** — Agent lifecycle, config, GitHub, chat proxy,
|
|
125
|
-
- **WebSocket** — Terminal PTY sessions
|
|
126
|
-
|
|
127
|
-
All on one port (`127.0.0.1:8400`), no CORS needed.
|
|
128
|
-
|
|
129
|
-
## Design
|
|
102
|
+
- **Static frontend** — Pre-built Next.js export
|
|
103
|
+
- **REST API** — Agent lifecycle, config, GitHub, chat proxy, triggers
|
|
104
|
+
- **WebSocket** — Terminal PTY sessions
|
|
130
105
|
|
|
131
|
-
|
|
106
|
+
All on one port (`127.0.0.1:8400`).
|
|
132
107
|
|
|
133
108
|
## License
|
|
134
109
|
|