@pruddiman/dispatch 1.4.2 → 1.4.4
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 +68 -27
- package/dist/cli.js +7459 -1532
- package/dist/cli.js.map +1 -1
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
AI agent orchestration CLI — parse work items from GitHub Issues, Azure DevOps, or local markdown files, dispatch each unit of work to a coding agent (OpenCode, GitHub Copilot, Claude Code, or OpenAI Codex), and commit results with conventional commits.
|
|
4
4
|
|
|
5
|
+
> **Note:** **Claude Code** (`--provider claude`) and **OpenAI Codex** (`--provider codex`) are largely untested. Expect rough edges and potential failures when using these providers.
|
|
6
|
+
|
|
5
7
|
## What it does
|
|
6
8
|
|
|
7
9
|
Dispatch closes the gap between issue trackers and AI coding agents. It:
|
|
@@ -76,26 +78,9 @@ export OPENAI_API_KEY=sk-...
|
|
|
76
78
|
|
|
77
79
|
Default model: `o4-mini`. Available models: `o4-mini`, `o3-mini`, `codex-mini-latest`.
|
|
78
80
|
|
|
79
|
-
### Issue tracker
|
|
80
|
-
|
|
81
|
-
**GitHub** (`--source github`):
|
|
81
|
+
### Issue tracker
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
# Install the GitHub CLI
|
|
85
|
-
# https://cli.github.com/
|
|
86
|
-
|
|
87
|
-
gh auth login
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
**Azure DevOps** (`--source azdevops`):
|
|
91
|
-
|
|
92
|
-
```sh
|
|
93
|
-
# Install the Azure CLI
|
|
94
|
-
# https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
|
|
95
|
-
|
|
96
|
-
az login
|
|
97
|
-
az extension add --name azure-devops
|
|
98
|
-
```
|
|
83
|
+
**GitHub** (`--source github`), **Azure DevOps** (`--source azdevops`): No external CLI tools required — Dispatch authenticates directly via browser-based OAuth device flow. See [Authentication](#authentication) below.
|
|
99
84
|
|
|
100
85
|
**Local markdown** (`--source md`): No external tools or authentication required.
|
|
101
86
|
|
|
@@ -135,15 +120,43 @@ dispatch --provider copilot
|
|
|
135
120
|
|
|
136
121
|
# Generate specs from issues (before dispatching)
|
|
137
122
|
dispatch --spec 42,43
|
|
123
|
+
|
|
124
|
+
# Generate a spec from an inline text description
|
|
125
|
+
dispatch --spec "add dark mode toggle to settings page"
|
|
126
|
+
|
|
127
|
+
# Regenerate all existing specs
|
|
128
|
+
dispatch --respec
|
|
129
|
+
|
|
130
|
+
# Group issues into a single feature branch and PR
|
|
131
|
+
dispatch --feature my-feature
|
|
132
|
+
|
|
133
|
+
# Run tests and fix failures via AI
|
|
134
|
+
dispatch --fix-tests
|
|
138
135
|
```
|
|
139
136
|
|
|
137
|
+
## Authentication
|
|
138
|
+
|
|
139
|
+
Dispatch authenticates with GitHub and Azure DevOps using the **OAuth device flow** — no external CLI tools (`gh`, `az`) are required.
|
|
140
|
+
|
|
141
|
+
On first use (or when a cached token is missing/expired), Dispatch will:
|
|
142
|
+
|
|
143
|
+
1. Display a **one-time code** and open your browser to the provider's verification page.
|
|
144
|
+
2. You sign in and authorize Dispatch in the browser.
|
|
145
|
+
3. The token is cached locally at **`~/.dispatch/auth.json`** for future runs.
|
|
146
|
+
|
|
147
|
+
Authentication happens **early in the CLI lifecycle** — during `dispatch config` (right after datasource selection) or at startup for `dispatch` and `dispatch --spec` runs — before any pipeline work begins. If tokens are already cached the check is instant; otherwise the device-code prompt appears while the terminal is still free, so it is never buried under pipeline output. No separate login step is needed.
|
|
148
|
+
|
|
149
|
+
**Re-authenticating:** Delete `~/.dispatch/auth.json` (or just the relevant platform key inside it) and run `dispatch` again to re-trigger the device flow.
|
|
150
|
+
|
|
140
151
|
## Pipeline modes
|
|
141
152
|
|
|
142
153
|
| Mode | Flag | Description |
|
|
143
154
|
|------|------|-------------|
|
|
144
155
|
| **Dispatch** | *(default)* | Plan and execute tasks; manage full git lifecycle |
|
|
145
156
|
| **Spec generation** | `--spec` | Convert issues into structured markdown spec files |
|
|
157
|
+
| **Respec** | `--respec` | Regenerate existing specs (all, by ID, or by glob) |
|
|
146
158
|
| **Fix tests** | `--fix-tests` | Detect and auto-fix failing tests via AI |
|
|
159
|
+
| **Feature** | `--feature [name]` | Group issues into a single feature branch and PR |
|
|
147
160
|
|
|
148
161
|
## Task files
|
|
149
162
|
|
|
@@ -192,7 +205,14 @@ Config is stored at `.dispatch/config.json` (relative to the working directory w
|
|
|
192
205
|
| `provider` | AI backend: `opencode` (default), `copilot`, `claude`, or `codex` |
|
|
193
206
|
| `model` | Model to use when spawning agents (provider-specific format) |
|
|
194
207
|
| `source` | Issue tracker: `github`, `azdevops`, or `md` |
|
|
195
|
-
| `testTimeout` | Test execution timeout in
|
|
208
|
+
| `testTimeout` | Test execution timeout in minutes (default: 5, range: 1–120) |
|
|
209
|
+
| `planTimeout` | Planning timeout in minutes (default: 30, range: 1–120) |
|
|
210
|
+
| `concurrency` | Max parallel dispatches (range: 1–64) |
|
|
211
|
+
| `org` | Azure DevOps organization URL |
|
|
212
|
+
| `project` | Azure DevOps project name |
|
|
213
|
+
| `workItemType` | Azure DevOps work item type filter |
|
|
214
|
+
| `iteration` | Azure DevOps iteration path filter |
|
|
215
|
+
| `area` | Azure DevOps area path filter |
|
|
196
216
|
|
|
197
217
|
## Options reference
|
|
198
218
|
|
|
@@ -206,22 +226,36 @@ Config is stored at `.dispatch/config.json` (relative to the working directory w
|
|
|
206
226
|
| `--dry-run` | `false` | List tasks without executing |
|
|
207
227
|
| `--no-plan` | `false` | Skip planner phase, execute directly |
|
|
208
228
|
| `--no-branch` | `false` | Skip branch/push/PR lifecycle |
|
|
209
|
-
| `--
|
|
210
|
-
| `--
|
|
211
|
-
| `--
|
|
229
|
+
| `--no-worktree` | `false` | Skip git worktree isolation for parallel issues |
|
|
230
|
+
| `--feature [name]` | *(off)* | Group issues into a single feature branch and PR |
|
|
231
|
+
| `--force` | `false` | Ignore prior run state and re-run all tasks |
|
|
232
|
+
| `--concurrency <n>` | *(cpu/memory)* | Max parallel dispatches (max: 64) |
|
|
233
|
+
| `--plan-timeout <min>` | `30` | Planning timeout in minutes |
|
|
234
|
+
| `--retries <n>` | `3` | Retry attempts for all agents |
|
|
235
|
+
| `--plan-retries <n>` | *(from --retries)* | Retry attempts for the planner agent (overrides `--retries`) |
|
|
236
|
+
| `--test-timeout <min>` | `5` | Test timeout in minutes |
|
|
212
237
|
| `--server-url <url>` | *(none)* | Connect to a running provider server |
|
|
213
238
|
| `--cwd <dir>` | `process.cwd()` | Working directory |
|
|
214
239
|
| `--verbose` | `false` | Show detailed debug output |
|
|
215
240
|
|
|
241
|
+
In interactive dispatch runs, exhausted automatic retries pause the failed task in the dispatch UI so you can manually rerun it in place. A rerun re-enters the normal task lifecycle, including planning unless `--no-plan` is set; verbose or non-interactive runs will not wait for input and instead stop predictably with the task left failed.
|
|
242
|
+
|
|
216
243
|
### Spec mode
|
|
217
244
|
|
|
218
245
|
| Option | Description |
|
|
219
246
|
|--------|-------------|
|
|
220
|
-
| `--spec
|
|
247
|
+
| `--spec <values...>` | Issue numbers, glob pattern, or inline text description. Activates spec mode. |
|
|
248
|
+
| `--respec [values...]` | Regenerate specs: issue numbers, glob, or omit to regenerate all existing specs. |
|
|
221
249
|
| `--source <name>` | Datasource override (auto-detected if omitted) |
|
|
222
250
|
| `--output-dir <dir>` | Output directory for spec files (default: `.dispatch/specs`) |
|
|
223
|
-
| `--org <url>` | Azure DevOps organization URL
|
|
224
|
-
| `--project <name>` | Azure DevOps project name
|
|
251
|
+
| `--org <url>` | Azure DevOps organization URL |
|
|
252
|
+
| `--project <name>` | Azure DevOps project name |
|
|
253
|
+
|
|
254
|
+
### Fix tests mode
|
|
255
|
+
|
|
256
|
+
| Option | Description |
|
|
257
|
+
|--------|-------------|
|
|
258
|
+
| `--fix-tests [issue-ids...]` | Run tests and fix failures via AI. Optionally pass issue IDs to target specific branches in worktrees. |
|
|
225
259
|
|
|
226
260
|
## Datasource auto-detection
|
|
227
261
|
|
|
@@ -249,14 +283,21 @@ For local-only workflows, pass `--source md` explicitly.
|
|
|
249
283
|
Full documentation is in the [`docs/`](docs/) directory:
|
|
250
284
|
|
|
251
285
|
- [Architecture Overview](docs/architecture.md)
|
|
286
|
+
- [Agent System](docs/agent-system/overview.md)
|
|
252
287
|
- [CLI & Orchestration](docs/cli-orchestration/overview.md)
|
|
253
288
|
- [Datasource System](docs/datasource-system/overview.md)
|
|
254
|
-
- [Provider System](docs/provider-system/
|
|
289
|
+
- [Provider System](docs/provider-system/overview.md)
|
|
255
290
|
- [Task Parsing](docs/task-parsing/overview.md)
|
|
256
291
|
- [Planning & Dispatch](docs/planning-and-dispatch/overview.md)
|
|
257
292
|
- [Spec Generation](docs/spec-generation/overview.md)
|
|
293
|
+
- [Issue Fetching](docs/issue-fetching/overview.md)
|
|
294
|
+
- [Git & Worktree](docs/git-and-worktree/overview.md)
|
|
295
|
+
- [Prerequisites & Safety](docs/prereqs-and-safety/overview.md)
|
|
296
|
+
- [Shared Types](docs/shared-types/overview.md)
|
|
297
|
+
- [Shared Utilities](docs/shared-utilities/overview.md)
|
|
258
298
|
- [Testing](docs/testing/overview.md)
|
|
259
299
|
- [Windows](docs/windows.md)
|
|
300
|
+
- [Changelog](docs/changelog.md)
|
|
260
301
|
|
|
261
302
|
## License
|
|
262
303
|
|