whitesmith 0.0.2 → 0.0.3

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 (50) hide show
  1. package/README.md +286 -88
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +89 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/comment.d.ts.map +1 -1
  6. package/dist/comment.js +18 -11
  7. package/dist/comment.js.map +1 -1
  8. package/dist/git.d.ts +5 -3
  9. package/dist/git.d.ts.map +1 -1
  10. package/dist/git.js +20 -29
  11. package/dist/git.js.map +1 -1
  12. package/dist/harnesses/pi.d.ts.map +1 -1
  13. package/dist/harnesses/pi.js +22 -6
  14. package/dist/harnesses/pi.js.map +1 -1
  15. package/dist/index.d.ts +3 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/orchestrator.d.ts +31 -3
  20. package/dist/orchestrator.d.ts.map +1 -1
  21. package/dist/orchestrator.js +214 -10
  22. package/dist/orchestrator.js.map +1 -1
  23. package/dist/prompts.d.ts +52 -0
  24. package/dist/prompts.d.ts.map +1 -1
  25. package/dist/prompts.js +197 -0
  26. package/dist/prompts.js.map +1 -1
  27. package/dist/providers/github-ci.d.ts +38 -0
  28. package/dist/providers/github-ci.d.ts.map +1 -1
  29. package/dist/providers/github-ci.js +462 -213
  30. package/dist/providers/github-ci.js.map +1 -1
  31. package/dist/providers/index.d.ts +1 -1
  32. package/dist/providers/index.d.ts.map +1 -1
  33. package/dist/review.d.ts +48 -0
  34. package/dist/review.d.ts.map +1 -0
  35. package/dist/review.js +221 -0
  36. package/dist/review.js.map +1 -0
  37. package/dist/types.d.ts +4 -0
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +1 -1
  40. package/src/cli.ts +115 -3
  41. package/src/comment.ts +20 -14
  42. package/src/git.ts +23 -30
  43. package/src/harnesses/pi.ts +27 -6
  44. package/src/index.ts +9 -1
  45. package/src/orchestrator.ts +253 -14
  46. package/src/prompts.ts +239 -0
  47. package/src/providers/github-ci.ts +508 -217
  48. package/src/providers/index.ts +1 -1
  49. package/src/review.ts +290 -0
  50. package/src/types.ts +4 -0
package/README.md CHANGED
@@ -4,13 +4,15 @@ AI-powered issue-to-PR pipeline. Whitesmith monitors your GitHub issues, breaks
4
4
 
5
5
  ## How It Works
6
6
 
7
- Whitesmith runs a loop with three phases:
7
+ Whitesmith runs a loop with four phases:
8
8
 
9
- 1. **Investigate** — Picks up unlabeled GitHub issues, explores the codebase, and breaks each issue into concrete implementation tasks (stored as markdown files in `tasks/<issue>/`). Opens a PR for human review.
9
+ 1. **Investigate** — Picks up unlabeled GitHub issues, explores the codebase, and breaks each issue into concrete implementation tasks (stored as markdown files in `tasks/<issue>/`). Opens a PR on `investigate/<issue-number>` for human review.
10
10
 
11
- 2. **Implement** — Once a task PR is merged (tasks accepted), picks up available tasks respecting dependency order, implements the changes, deletes the task file, and opens a PR.
11
+ 2. **Auto-approve** *(optional)* If [auto-work mode](#auto-work-mode) is enabled for an issue, the task-proposal PR is automatically merged (with an optional AI review first).
12
12
 
13
- 3. **Reconcile** — When all tasks for an issue are completed and merged, closes the original issue.
13
+ 3. **Implement** — Once a task PR is merged (tasks accepted), picks up available tasks respecting dependency order, implements the changes on the `issue/<issue-number>` branch, deletes the task file, and opens a PR when all tasks are complete.
14
+
15
+ 4. **Reconcile** — When all tasks for an issue are completed and merged, closes the original issue.
14
16
 
15
17
  ### Issue Lifecycle
16
18
 
@@ -20,10 +22,50 @@ Issues move through labels automatically:
20
22
  (new issue, no labels)
21
23
  → whitesmith:investigating — agent is generating tasks
22
24
  → whitesmith:tasks-proposed — task PR opened for review
23
- → whitesmith:tasks-accepted — task PR merged, implementation begins
25
+ → whitesmith:tasks-accepted — task PR merged (or auto-approved), implementation begins
24
26
  → whitesmith:completed — all tasks done, issue closed
25
27
  ```
26
28
 
29
+ ### Labels
30
+
31
+ | Label | Description |
32
+ |---|---|
33
+ | `whitesmith:investigating` | Agent is generating tasks for this issue |
34
+ | `whitesmith:tasks-proposed` | A PR with generated tasks has been opened for review |
35
+ | `whitesmith:tasks-accepted` | Task PR has been merged — implementation in progress |
36
+ | `whitesmith:completed` | All tasks have been implemented and merged |
37
+ | `whitesmith:auto-work` | Enables [auto-work mode](#auto-work-mode) for this issue |
38
+
39
+ ### Branch Naming Convention
40
+
41
+ Whitesmith uses specific branch naming conventions:
42
+
43
+ | Branch | Purpose |
44
+ |---|---|
45
+ | `investigate/<issue-number>` | Task proposal PRs — contains generated task files |
46
+ | `issue/<issue-number>` | Implementation PRs — contains the actual code changes |
47
+
48
+ ### Review System
49
+
50
+ After creating task-proposal PRs or implementation PRs, whitesmith automatically runs an AI review. Reviews produce a verdict:
51
+
52
+ - **APPROVE** — The PR looks good
53
+ - **REQUEST_CHANGES** — The review found issues that need attention
54
+
55
+ The review is posted as a comment on the PR. Disable automatic reviews with the `--no-review` flag on the `run` command.
56
+
57
+ ### Auto-Work Mode
58
+
59
+ Auto-work mode enables fully autonomous operation — task-proposal PRs are automatically merged without waiting for human review.
60
+
61
+ Auto-work is enabled for an issue when **any** of these conditions are met:
62
+
63
+ 1. The `--auto-work` CLI flag is passed to `whitesmith run`
64
+ 2. The issue has the `whitesmith:auto-work` label
65
+ 3. The issue body contains the string `whitesmith:auto-work`
66
+
67
+ When auto-work is enabled and the review system is active, whitesmith runs an AI review before merging. If the review returns REQUEST_CHANGES, the auto-merge is skipped and a comment is posted asking for manual review.
68
+
27
69
  ## Installation
28
70
 
29
71
  ```bash
@@ -40,7 +82,11 @@ npm install -g @mariozechner/pi-coding-agent
40
82
 
41
83
  ### 1. Configure AI Provider
42
84
 
43
- Whitesmith uses `pi` as its agent harness. Configure authentication by creating `~/.pi/agent/auth.json`:
85
+ Whitesmith uses `pi` as its agent harness. You can configure authentication in two ways:
86
+
87
+ #### Option A: `auth.json` (OAuth / API key)
88
+
89
+ Create `~/.pi/agent/auth.json`:
44
90
 
45
91
  ```json
46
92
  {
@@ -51,6 +97,30 @@ Whitesmith uses `pi` as its agent harness. Configure authentication by creating
51
97
  }
52
98
  ```
53
99
 
100
+ #### Option B: `models.json` (provider configuration)
101
+
102
+ Create `~/.pi/agent/models.json` to configure providers with custom base URLs, API types, and models:
103
+
104
+ ```json
105
+ {
106
+ "providers": {
107
+ "anthropic": {
108
+ "apiKey": "ANTHROPIC_API_KEY"
109
+ },
110
+ "my-custom-provider": {
111
+ "baseUrl": "https://api.example.com/v1",
112
+ "api": "openai-completions",
113
+ "apiKey": "MY_API_KEY",
114
+ "models": [{ "id": "my-model" }]
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
120
+ For built-in providers (`anthropic`, `openai`), the `apiKey` field references an environment variable name that contains the actual key. For custom providers, you also specify `baseUrl`, `api` type (`anthropic-messages` or `openai-completions`), and available `models`.
121
+
122
+ This is the default auth mode used by `install-ci` for CI/CD setups.
123
+
54
124
  ### 2. GitHub Authentication
55
125
 
56
126
  Whitesmith uses the `gh` CLI. Make sure you're authenticated:
@@ -61,12 +131,14 @@ gh auth login
61
131
 
62
132
  ## Usage
63
133
 
64
- ### Run the Loop
134
+ ### `whitesmith run` — Run the Main Loop
65
135
 
66
136
  ```bash
67
137
  whitesmith run . --provider anthropic --model claude-opus-4-6
68
138
  ```
69
139
 
140
+ Runs the full investigate → auto-approve → implement → reconcile loop.
141
+
70
142
  #### Options
71
143
 
72
144
  | Option | Description | Default |
@@ -79,8 +151,11 @@ whitesmith run . --provider anthropic --model claude-opus-4-6
79
151
  | `--log-file <path>` | Log agent output to file | — |
80
152
  | `--no-push` | Skip pushing branches and PR creation | `false` |
81
153
  | `--no-sleep` | Skip sleep between iterations | `false` |
154
+ | `--dry-run` | Print what would be done without executing it | `false` |
155
+ | `--auto-work` | Enable [auto-work mode](#auto-work-mode) (auto-approve task PRs) | `false` |
156
+ | `--no-review` | Disable the automatic [review step](#review-system) after PRs are created | `false` |
82
157
 
83
- ### Check Status
158
+ ### `whitesmith status` — Check Status
84
159
 
85
160
  ```bash
86
161
  whitesmith status .
@@ -88,94 +163,217 @@ whitesmith status .
88
163
 
89
164
  Shows all issues grouped by their whitesmith label and any pending tasks.
90
165
 
91
- ### Reconcile
166
+ #### Options
167
+
168
+ | Option | Description | Default |
169
+ |---|---|---|
170
+ | `--repo <owner/repo>` | GitHub repo | auto-detected |
171
+
172
+ ### `whitesmith reconcile` — Reconcile Issues
92
173
 
93
174
  ```bash
94
175
  whitesmith reconcile .
95
176
  ```
96
177
 
97
- Checks for completed issues (all tasks merged) and closes them. No AI needed.
178
+ Checks for completed issues (all tasks merged) and closes them. Also handles the `tasks-proposed` → `tasks-accepted` transition when a task PR has been merged. No AI needed.
98
179
 
99
- ## GitHub Actions
180
+ #### Options
181
+
182
+ | Option | Description | Default |
183
+ |---|---|---|
184
+ | `--repo <owner/repo>` | GitHub repo | auto-detected |
185
+
186
+ ### `whitesmith comment` — Handle Comments
187
+
188
+ ```bash
189
+ whitesmith comment . --number 42 --body "Please add tests" --provider anthropic --model claude-opus-4-6
190
+ ```
191
+
192
+ Handles a comment on an issue or PR. Whitesmith auto-detects whether the target is a PR or an issue and handles each appropriately:
193
+
194
+ - **PR comments**: Checks out the PR branch, lets the agent make changes, commits and pushes any modifications, and optionally posts a response.
195
+ - **Issue comments**: The agent analyzes the issue and related context (task PRs, implementation PRs, pending tasks) and generates a response. If related PRs exist with open branches, the agent can check them out and make changes.
196
+
197
+ #### Options
198
+
199
+ | Option | Description | Default |
200
+ |---|---|---|
201
+ | `--number <n>` | Issue or PR number | *required* |
202
+ | `--body <text>` | Comment body text | — |
203
+ | `--body-file <path>` | Read comment body from a file (alternative to `--body`) | — |
204
+ | `--provider <name>` | AI provider | *required* |
205
+ | `--model <id>` | AI model ID | *required* |
206
+ | `--agent-cmd <cmd>` | Agent harness command | `pi` |
207
+ | `--repo <owner/repo>` | GitHub repo | auto-detected |
208
+ | `--log-file <path>` | Log agent output to file | — |
209
+ | `--post` | Post the response as a GitHub comment (otherwise prints to stdout) | `false` |
210
+
211
+ Either `--body` or `--body-file` must be provided.
212
+
213
+ ### `whitesmith review` — Review PRs and Tasks
214
+
215
+ ```bash
216
+ whitesmith review . --number 42 --provider anthropic --model claude-opus-4-6
217
+ ```
218
+
219
+ Reviews a PR, task proposal, or completed task implementation. Produces a verdict: **APPROVE** or **REQUEST_CHANGES**.
220
+
221
+ #### Review Types
222
+
223
+ | Type | Description |
224
+ |---|---|
225
+ | `pr` | Review a generic PR (examine the diff, check for bugs, quality) |
226
+ | `issue-tasks` | Review a task proposal — check that tasks are detailed and precise enough |
227
+ | `issue-tasks-completed` | Review completed tasks — verify implementation follows the plan, check for bugs |
228
+
229
+ If `--type` is omitted, the review type is auto-detected based on the target:
100
230
 
101
- Whitesmith can run on a schedule via GitHub Actions. Add the workflow file at `.github/workflows/whitesmith.yml`:
102
-
103
- ```yaml
104
- name: whitesmith
105
-
106
- on:
107
- schedule:
108
- - cron: '*/15 * * * *'
109
- workflow_dispatch:
110
- inputs:
111
- max_iterations:
112
- description: 'Maximum iterations'
113
- default: '3'
114
- type: string
115
- provider:
116
- description: 'AI provider'
117
- required: true
118
- type: string
119
- model:
120
- description: 'AI model ID'
121
- required: true
122
- type: string
123
-
124
- concurrency:
125
- group: whitesmith-loop
126
- cancel-in-progress: false
127
-
128
- permissions:
129
- contents: write
130
- issues: write
131
- pull-requests: write
132
-
133
- jobs:
134
- run:
135
- runs-on: ubuntu-latest
136
- steps:
137
- - uses: actions/checkout@v4
138
- with:
139
- fetch-depth: 0
140
-
141
- - uses: actions/setup-node@v4
142
- with:
143
- node-version: '22'
144
-
145
- - name: Configure git
146
- run: |
147
- git config user.name "whitesmith[bot]"
148
- git config user.email "whitesmith[bot]@users.noreply.github.com"
149
-
150
- - name: Install whitesmith & pi
151
- run: |
152
- npm install -g whitesmith
153
- npm install -g @mariozechner/pi-coding-agent
154
-
155
- - name: Configure pi auth
156
- run: |
157
- mkdir -p ~/.pi/agent
158
- echo '${{ secrets.PI_AUTH_JSON }}' > ~/.pi/agent/auth.json
159
- chmod 600 ~/.pi/agent/auth.json
160
-
161
- - name: Run whitesmith
162
- env:
163
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
164
- run: |
165
- whitesmith run . \
166
- --agent-cmd "pi" \
167
- --provider "${{ inputs.provider || vars.WHITESMITH_PROVIDER }}" \
168
- --model "${{ inputs.model || vars.WHITESMITH_MODEL }}" \
169
- --max-iterations ${{ inputs.max_iterations || '3' }}
170
- ```
171
-
172
- ### Required Configuration
173
-
174
- | Secret/Variable | Description |
231
+ - PR on `investigate/<N>` branch `issue-tasks`
232
+ - PR on `issue/<N>` branch → `issue-tasks-completed`
233
+ - Other PR → `pr`
234
+ - Issue with `whitesmith:tasks-accepted` label → `issue-tasks-completed`
235
+ - Issue with `whitesmith:tasks-proposed` label → `issue-tasks`
236
+
237
+ #### Options
238
+
239
+ | Option | Description | Default |
240
+ |---|---|---|
241
+ | `--number <n>` | PR or issue number to review | *required* |
242
+ | `--type <type>` | Review type: `pr`, `issue-tasks`, `issue-tasks-completed` | auto-detected |
243
+ | `--provider <name>` | AI provider | *required* |
244
+ | `--model <id>` | AI model ID | *required* |
245
+ | `--agent-cmd <cmd>` | Agent harness command | `pi` |
246
+ | `--repo <owner/repo>` | GitHub repo | auto-detected |
247
+ | `--log-file <path>` | Log agent output to file | — |
248
+ | `--post` | Post the review as a GitHub comment (otherwise prints to stdout) | `false` |
249
+
250
+ ### `whitesmith install-ci` — Set Up GitHub Actions
251
+
252
+ ```bash
253
+ whitesmith install-ci .
254
+ ```
255
+
256
+ Interactive setup wizard that generates GitHub Actions workflows, a shared composite action, and configures GitHub secrets. This is the recommended way to set up whitesmith for CI/CD.
257
+
258
+ #### What Gets Generated
259
+
260
+ | File | Description |
175
261
  |---|---|
176
- | `PI_AUTH_JSON` (secret) | Contents of `~/.pi/agent/auth.json` AI provider credentials |
177
- | `WHITESMITH_PROVIDER` (variable) | Default AI provider for scheduled runs |
178
- | `WHITESMITH_MODEL` (variable) | Default AI model for scheduled runs |
262
+ | `.github/actions/setup-whitesmith/action.yml` | Composite action: Node.js setup, git config, install whitesmith + pi, configure auth |
263
+ | `.github/workflows/whitesmith.yml` | Main workflow manual dispatch for catch-up or debugging (event-driven workflows handle normal operation) |
264
+ | `.github/workflows/whitesmith-issue.yml` | Triggered on new issues begins investigation immediately |
265
+ | `.github/workflows/whitesmith-comment.yml` | Responds to issue/PR comments (triggered by `/whitesmith` or comments on managed branches) |
266
+ | `.github/workflows/whitesmith-reconcile.yml` | Reconciles on PR merge to `main` — triggers implementation or closes completed issues |
267
+ | `.github/workflows/whitesmith-review.yml` | *(optional)* Reviews PRs on open/synchronize |
268
+
269
+ #### Auth Modes
270
+
271
+ - **`models-json`** *(default)* — Each provider's API key is stored as a separate GitHub secret. The setup wizard generates a `models.json` configuration inline in the composite action.
272
+ - **`auth-json`** (`--auth-json` flag) — Uses a single `PI_AUTH_JSON` GitHub secret containing the full `auth.json` file. Also requires a `GH_PAT` secret for OAuth token refresh.
273
+
274
+ #### Interactive Usage
275
+
276
+ ```bash
277
+ whitesmith install-ci .
278
+ ```
279
+
280
+ The wizard prompts you to:
281
+ 1. Add providers (Anthropic, OpenAI, or custom)
282
+ 2. Configure models for each provider
283
+ 3. Select default provider and model
284
+ 4. Enter API keys (set as GitHub secrets automatically)
285
+
286
+ #### Non-Interactive Usage
287
+
288
+ Export a configuration file:
289
+
290
+ ```bash
291
+ whitesmith install-ci . --export-config config.json --include-secrets
292
+ ```
293
+
294
+ Re-use the configuration later:
295
+
296
+ ```bash
297
+ whitesmith install-ci . --config config.json
298
+ ```
299
+
300
+ #### Options
301
+
302
+ | Option | Description | Default |
303
+ |---|---|---|
304
+ | `--auth-json` | Use `auth.json` mode instead of `models.json` | `false` |
305
+ | `--repo <owner/repo>` | GitHub repo | auto-detected |
306
+ | `--fake` | Write workflows to `.fake/` instead of `.github/` (for testing) | `false` |
307
+ | `--config <path>` | Load provider config from a JSON file (skip interactive prompts) | — |
308
+ | `--export-config <path>` | Write the provider config as JSON to a file (instead of generating workflows) | — |
309
+ | `--include-secrets` | With `--export-config`, prompt for API keys and include them in the JSON output | `false` |
310
+ | `--no-secrets` | Skip setting GitHub secrets (useful when reconfiguring workflows only) | `false` |
311
+ | `--dev` | Build whitesmith from source (pnpm) instead of npm install | `false` |
312
+ | `--review-workflow` | Generate the optional PR review workflow | `false` |
313
+ | `--no-review-step` | Disable the review step in the main loop (the review workflow will cover all PRs) | `false` |
314
+
315
+ ## GitHub Actions
316
+
317
+ ### Quick Setup
318
+
319
+ The easiest way to set up GitHub Actions is with the `install-ci` command:
320
+
321
+ ```bash
322
+ whitesmith install-ci .
323
+ ```
324
+
325
+ This generates all necessary workflows, the shared setup action, and configures your GitHub secrets interactively. See [`whitesmith install-ci`](#whitesmith-install-ci--set-up-github-actions) for details.
326
+
327
+ ### Architecture
328
+
329
+ The generated CI setup uses an **event-driven architecture** — whitesmith reacts to GitHub events immediately instead of polling on a schedule:
330
+
331
+ - **Issue created** → investigate immediately
332
+ - **Task PR merged** → implement immediately
333
+ - **Implementation PR merged** → reconcile immediately
334
+ - **Comment on issue/PR** → respond immediately
335
+ - **Manual `workflow_dispatch`** → fallback for catch-up or debugging
336
+
337
+ The setup consists of:
338
+
339
+ 1. **Composite action** (`.github/actions/setup-whitesmith/action.yml`) — Shared setup logic used by all workflows: installs Node.js, configures git, installs whitesmith + pi, sets up AI provider authentication. Supports npm caching for faster CI runs.
340
+
341
+ 2. **Issue workflow** (`whitesmith-issue.yml`) — Triggered when a new issue is opened. Runs `whitesmith run --issue <N>` to immediately begin investigation.
342
+
343
+ 3. **Main workflow** (`whitesmith.yml`) — Manual `workflow_dispatch` trigger for catch-up or debugging. Accepts an optional `issue` input to target a specific issue, or runs a global scan when omitted. Uses per-issue or global concurrency groups to prevent overlapping runs.
344
+
345
+ 4. **Comment workflow** (`whitesmith-comment.yml`) — Triggered by `issue_comment` events. Runs when:
346
+ - The comment body contains `/whitesmith` (slash command trigger)
347
+ - The comment is on a PR whose branch matches `investigate/*` or `task/*` (whitesmith-managed branches)
348
+
349
+ The workflow reacts to the comment with 👀, runs the agent, then reacts with 👍 on success or 👎 on failure.
350
+
351
+ 5. **Reconcile workflow** (`whitesmith-reconcile.yml`) — Triggered when a PR is merged to `main`. Handles two cases:
352
+ - **Task PR merged** (branch `investigate/<N>`) → runs `whitesmith run --issue <N>` to begin implementation immediately.
353
+ - **Implementation PR merged** (branch `issue/<N>`) or other merges → runs `whitesmith reconcile` to transition issue labels and close completed issues.
354
+
355
+ 6. **Review workflow** (`whitesmith-review.yml`, optional) — Triggered on PR open/synchronize. Runs an AI review and posts the result as a comment. When the review step is enabled in the main loop, this workflow skips whitesmith-managed branches (already reviewed inline). Pass `--review-workflow` to `install-ci` to generate this workflow.
356
+
357
+ ### Required Repository Settings
358
+
359
+ Enable in your repository settings:
360
+
361
+ **Settings → Actions → General → "Allow GitHub Actions to create and approve pull requests"**
362
+
363
+ ### Secrets
364
+
365
+ Secrets are set automatically by `install-ci`, or can be added manually:
366
+
367
+ **models-json mode** (default):
368
+ - One secret per provider API key (e.g. `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`)
369
+
370
+ **auth-json mode** (`--auth-json`):
371
+ - `PI_AUTH_JSON` — Contents of `~/.pi/agent/auth.json`
372
+ - `GH_PAT` — GitHub personal access token with repo scope (for OAuth token refresh)
373
+
374
+ ### `/whitesmith` Slash Command
375
+
376
+ In the comment workflow, any comment containing `/whitesmith` triggers the agent. This works on both issues and PRs. Comments on whitesmith-managed PR branches (`investigate/*` or `task/*`) also trigger automatically without needing the slash command.
179
377
 
180
378
  ## Task File Format
181
379
 
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AA6BlC,wBAAgB,QAAQ,IAAI,OAAO,CA4PlC;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AA8BlC,wBAAgB,QAAQ,IAAI,OAAO,CA2WlC;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE"}
package/dist/cli.js CHANGED
@@ -8,6 +8,7 @@ import { GitHubProvider } from './providers/github.js';
8
8
  import { PiHarness } from './harnesses/pi.js';
9
9
  import { TaskManager } from './task-manager.js';
10
10
  import { handlePRComment, handleIssueComment, isPullRequest } from './comment.js';
11
+ import { performReview, detectReviewTarget } from './review.js';
11
12
  import pkg from '../package.json' with { type: 'json' };
12
13
  const DEFAULT_AGENT_CMD = 'pi';
13
14
  const DEFAULT_MAX_ITERATIONS = 10;
@@ -40,6 +41,8 @@ export function buildCli() {
40
41
  .option('--no-sleep', 'Skip sleep between iterations')
41
42
  .option('--dry-run', 'Print what would be done without executing it')
42
43
  .option('--auto-work', 'Enable auto-work mode (auto-approve task PRs)')
44
+ .option('--no-review', 'Disable review step after PRs are created')
45
+ .option('--issue <number>', 'Target a single issue number (run full pipeline for it)')
43
46
  .action(async (workDir, opts) => {
44
47
  const config = {
45
48
  agentCmd: opts.agentCmd,
@@ -51,8 +54,10 @@ export function buildCli() {
51
54
  noSleep: opts.sleep === false,
52
55
  dryRun: opts.dryRun ?? false,
53
56
  autoWork: opts.autoWork ?? false,
57
+ review: opts.review !== false,
54
58
  logFile: opts.logFile,
55
59
  repo: opts.repo,
60
+ issueNumber: opts.issue ? parseInt(opts.issue, 10) : undefined,
56
61
  };
57
62
  if (!fs.existsSync(config.workDir)) {
58
63
  console.error(`ERROR: Directory '${config.workDir}' does not exist`);
@@ -217,6 +222,71 @@ export function buildCli() {
217
222
  }
218
223
  console.log('Reconcile complete.');
219
224
  });
225
+ // --- review ---
226
+ program
227
+ .command('review')
228
+ .description('Review a PR, task proposal, or completed tasks')
229
+ .argument('[work_dir]', 'Working directory', '.')
230
+ .requiredOption('--number <n>', 'PR or issue number to review')
231
+ .option('--type <type>', 'Review type: pr, issue-tasks, issue-tasks-completed (auto-detected if omitted)')
232
+ .option('--agent-cmd <cmd>', 'Agent harness command', DEFAULT_AGENT_CMD)
233
+ .requiredOption('--provider <name>', 'AI provider (e.g. anthropic, openai)')
234
+ .requiredOption('--model <id>', 'AI model ID (e.g. claude-opus-4-6)')
235
+ .option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
236
+ .option('--log-file <path>', 'Log agent output to file')
237
+ .option('--post', 'Post the review as a GitHub comment (otherwise prints to stdout)')
238
+ .action(async (workDir, opts) => {
239
+ const resolvedDir = path.resolve(workDir);
240
+ if (!fs.existsSync(resolvedDir)) {
241
+ console.error(`ERROR: Directory '${resolvedDir}' does not exist`);
242
+ process.exit(1);
243
+ }
244
+ process.chdir(resolvedDir);
245
+ const issues = new GitHubProvider(resolvedDir, opts.repo);
246
+ const agent = new PiHarness({
247
+ cmd: opts.agentCmd,
248
+ provider: opts.provider,
249
+ model: opts.model,
250
+ });
251
+ await agent.validate();
252
+ const number = parseInt(opts.number, 10);
253
+ try {
254
+ let target;
255
+ if (opts.type) {
256
+ // Explicit type provided
257
+ switch (opts.type) {
258
+ case 'pr':
259
+ target = { type: 'pr', number };
260
+ break;
261
+ case 'issue-tasks':
262
+ target = { type: 'issue-tasks', issueNumber: number };
263
+ break;
264
+ case 'issue-tasks-completed':
265
+ target = { type: 'issue-tasks-completed', issueNumber: number };
266
+ break;
267
+ default:
268
+ console.error(`ERROR: Unknown review type '${opts.type}'. Use: pr, issue-tasks, issue-tasks-completed`);
269
+ process.exit(1);
270
+ }
271
+ }
272
+ else {
273
+ // Auto-detect
274
+ target = await detectReviewTarget(number, issues);
275
+ console.log(`Auto-detected review type: ${target.type}`);
276
+ }
277
+ const result = await performReview(target, {
278
+ workDir: resolvedDir,
279
+ repo: opts.repo,
280
+ logFile: opts.logFile,
281
+ post: opts.post === true,
282
+ }, issues, agent);
283
+ console.log(`\nVerdict: ${result.verdict}`);
284
+ }
285
+ catch (error) {
286
+ console.error('ERROR:', error instanceof Error ? error.message : error);
287
+ process.exit(1);
288
+ }
289
+ });
220
290
  // --- install-ci ---
221
291
  program
222
292
  .command('install-ci')
@@ -224,7 +294,14 @@ export function buildCli() {
224
294
  .argument('[work_dir]', 'Working directory (target repository)', '.')
225
295
  .option('--auth-json', 'Use pi auth.json instead of models.json (requires PI_AUTH_JSON and GH_PAT secrets)')
226
296
  .option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
227
- .option('--fake', 'Write workflows to .fake/workflows/ instead of .github/workflows/ (for testing)')
297
+ .option('--fake', 'Write workflows to .fake/ instead of .github/ (for testing/comparison)')
298
+ .option('--config <path>', 'Load provider config from a JSON file (skip interactive prompts)')
299
+ .option('--export-config <path>', 'Write the provider config as JSON to a file instead of generating workflows')
300
+ .option('--include-secrets', 'With --export-config, prompt for API keys and include them in the JSON output')
301
+ .option('--no-secrets', 'Skip setting GitHub secrets (useful when reconfiguring workflows only)')
302
+ .option('--dev', 'Build whitesmith from source (pnpm i + link --global) instead of npm install')
303
+ .option('--review-workflow', 'Generate a GitHub Actions workflow for PR reviews')
304
+ .option('--no-review-step', 'Indicate the review step is disabled in the main loop (review workflow will cover all PRs)')
228
305
  .action(async (workDir, opts) => {
229
306
  const resolvedDir = path.resolve(workDir);
230
307
  if (!fs.existsSync(resolvedDir)) {
@@ -234,7 +311,17 @@ export function buildCli() {
234
311
  const authMode = opts.authJson ? 'auth-json' : 'models-json';
235
312
  try {
236
313
  const provider = new GitHubProvider(resolvedDir, opts.repo);
237
- await provider.installCI({ authMode, fake: opts.fake ?? false });
314
+ await provider.installCI({
315
+ authMode,
316
+ fake: opts.fake ?? false,
317
+ configFile: opts.config,
318
+ exportConfig: opts.exportConfig,
319
+ includeSecrets: opts.includeSecrets ?? false,
320
+ dev: opts.dev,
321
+ reviewWorkflow: opts.reviewWorkflow ?? false,
322
+ reviewStepEnabled: opts.reviewStep !== false,
323
+ skipSecrets: opts.secrets === false,
324
+ });
238
325
  }
239
326
  catch (error) {
240
327
  console.error('ERROR:', error instanceof Error ? error.message : error);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAKjE,MAAM,WAAW,aAAa;IAC7B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;CACd;AA2BD;;GAEG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA6Ef;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3F"}
1
+ {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../src/comment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAKjE,MAAM,WAAW,aAAa;IAC7B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;CACd;AA2BD;;GAEG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CA0Ef;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAyDf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3F"}