whitesmith 0.0.0 → 0.0.1
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 +228 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/harnesses/agent-harness.d.ts +13 -0
- package/dist/harnesses/agent-harness.d.ts.map +1 -1
- package/dist/harnesses/index.d.ts +1 -1
- package/dist/harnesses/index.d.ts.map +1 -1
- package/dist/harnesses/pi.d.ts +5 -5
- package/dist/harnesses/pi.d.ts.map +1 -1
- package/dist/harnesses/pi.js +34 -7
- package/dist/harnesses/pi.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +6 -0
- package/dist/orchestrator.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/cli.ts +9 -1
- package/src/harnesses/agent-harness.ts +15 -0
- package/src/harnesses/index.ts +1 -1
- package/src/harnesses/pi.ts +42 -8
- package/src/orchestrator.ts +7 -0
- package/src/types.ts +4 -0
package/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# whitesmith
|
|
2
|
+
|
|
3
|
+
AI-powered issue-to-PR pipeline. Whitesmith monitors your GitHub issues, breaks them into tasks, and implements them as pull requests — all autonomously.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
Whitesmith runs a loop with three phases:
|
|
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.
|
|
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.
|
|
12
|
+
|
|
13
|
+
3. **Reconcile** — When all tasks for an issue are completed and merged, closes the original issue.
|
|
14
|
+
|
|
15
|
+
### Issue Lifecycle
|
|
16
|
+
|
|
17
|
+
Issues move through labels automatically:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
(new issue, no labels)
|
|
21
|
+
→ whitesmith:investigating — agent is generating tasks
|
|
22
|
+
→ whitesmith:tasks-proposed — task PR opened for review
|
|
23
|
+
→ whitesmith:tasks-accepted — task PR merged, implementation begins
|
|
24
|
+
→ whitesmith:completed — all tasks done, issue closed
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g whitesmith
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
You also need [pi](https://github.com/nicholasgasior/pi-coding-agent) (the default agent harness):
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install -g @mariozechner/pi-coding-agent
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Setup
|
|
40
|
+
|
|
41
|
+
### 1. Configure AI Provider
|
|
42
|
+
|
|
43
|
+
Whitesmith uses `pi` as its agent harness. Configure authentication by creating `~/.pi/agent/auth.json`:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"anthropic": {
|
|
48
|
+
"type": "api_key",
|
|
49
|
+
"key": "sk-ant-..."
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 2. GitHub Authentication
|
|
55
|
+
|
|
56
|
+
Whitesmith uses the `gh` CLI. Make sure you're authenticated:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
gh auth login
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Usage
|
|
63
|
+
|
|
64
|
+
### Run the Loop
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
whitesmith run . --provider anthropic --model claude-opus-4-6
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### Options
|
|
71
|
+
|
|
72
|
+
| Option | Description | Default |
|
|
73
|
+
|---|---|---|
|
|
74
|
+
| `--provider <name>` | AI provider (e.g. `anthropic`, `openai`) | *required* |
|
|
75
|
+
| `--model <id>` | AI model ID (e.g. `claude-opus-4-6`) | *required* |
|
|
76
|
+
| `--agent-cmd <cmd>` | Agent harness command | `pi` |
|
|
77
|
+
| `--max-iterations <n>` | Max loop iterations | `10` |
|
|
78
|
+
| `--repo <owner/repo>` | GitHub repo (auto-detected if omitted) | — |
|
|
79
|
+
| `--log-file <path>` | Log agent output to file | — |
|
|
80
|
+
| `--no-push` | Skip pushing branches and PR creation | `false` |
|
|
81
|
+
| `--no-sleep` | Skip sleep between iterations | `false` |
|
|
82
|
+
|
|
83
|
+
### Check Status
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
whitesmith status .
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Shows all issues grouped by their whitesmith label and any pending tasks.
|
|
90
|
+
|
|
91
|
+
### Reconcile
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
whitesmith reconcile .
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Checks for completed issues (all tasks merged) and closes them. No AI needed.
|
|
98
|
+
|
|
99
|
+
## GitHub Actions
|
|
100
|
+
|
|
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 |
|
|
175
|
+
|---|---|
|
|
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 |
|
|
179
|
+
|
|
180
|
+
## Task File Format
|
|
181
|
+
|
|
182
|
+
Tasks are stored as markdown files with YAML frontmatter in `tasks/<issue-number>/`:
|
|
183
|
+
|
|
184
|
+
```markdown
|
|
185
|
+
---
|
|
186
|
+
id: "42-001"
|
|
187
|
+
issue: 42
|
|
188
|
+
title: "Add input validation"
|
|
189
|
+
depends_on: []
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Description
|
|
193
|
+
Add validation for user input...
|
|
194
|
+
|
|
195
|
+
## Acceptance Criteria
|
|
196
|
+
- Input is validated before processing
|
|
197
|
+
- Error messages are clear
|
|
198
|
+
|
|
199
|
+
## Implementation Notes
|
|
200
|
+
Modify `src/handler.ts`...
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
- **id**: `<issue>-<seq>` format (e.g. `42-001`)
|
|
204
|
+
- **depends_on**: List of task IDs that must be completed first
|
|
205
|
+
- Tasks are deleted when implemented (marking them as complete)
|
|
206
|
+
|
|
207
|
+
## Development
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Install dependencies
|
|
211
|
+
pnpm install
|
|
212
|
+
|
|
213
|
+
# Build
|
|
214
|
+
pnpm build
|
|
215
|
+
|
|
216
|
+
# Watch mode
|
|
217
|
+
pnpm dev
|
|
218
|
+
|
|
219
|
+
# Run tests
|
|
220
|
+
pnpm test
|
|
221
|
+
|
|
222
|
+
# Format
|
|
223
|
+
pnpm format
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## License
|
|
227
|
+
|
|
228
|
+
MIT
|
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;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AA2BlC,wBAAgB,QAAQ,IAAI,OAAO,CA4IlC;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE"}
|
package/dist/cli.js
CHANGED
|
@@ -12,7 +12,11 @@ const DEFAULT_AGENT_CMD = 'pi';
|
|
|
12
12
|
const DEFAULT_MAX_ITERATIONS = 10;
|
|
13
13
|
function createOrchestrator(config) {
|
|
14
14
|
const issues = new GitHubProvider(config.workDir, config.repo);
|
|
15
|
-
const agent = new PiHarness(
|
|
15
|
+
const agent = new PiHarness({
|
|
16
|
+
cmd: config.agentCmd,
|
|
17
|
+
provider: config.provider,
|
|
18
|
+
model: config.model,
|
|
19
|
+
});
|
|
16
20
|
return new Orchestrator(config, issues, agent);
|
|
17
21
|
}
|
|
18
22
|
const packageName = pkg.name;
|
|
@@ -26,6 +30,8 @@ export function buildCli() {
|
|
|
26
30
|
.description('Run the main whitesmith loop: investigate issues, implement tasks')
|
|
27
31
|
.argument('[work_dir]', 'Working directory', '.')
|
|
28
32
|
.option('--agent-cmd <cmd>', 'Agent harness command', DEFAULT_AGENT_CMD)
|
|
33
|
+
.requiredOption('--provider <name>', 'AI provider (e.g. anthropic, openai)')
|
|
34
|
+
.requiredOption('--model <id>', 'AI model ID (e.g. claude-opus-4-6)')
|
|
29
35
|
.option('--max-iterations <n>', 'Max iterations', String(DEFAULT_MAX_ITERATIONS))
|
|
30
36
|
.option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
|
|
31
37
|
.option('--log-file <path>', 'Log agent output to file')
|
|
@@ -34,6 +40,8 @@ export function buildCli() {
|
|
|
34
40
|
.action(async (workDir, opts) => {
|
|
35
41
|
const config = {
|
|
36
42
|
agentCmd: opts.agentCmd,
|
|
43
|
+
provider: opts.provider,
|
|
44
|
+
model: opts.model,
|
|
37
45
|
maxIterations: parseInt(opts.maxIterations, 10),
|
|
38
46
|
workDir: path.resolve(workDir),
|
|
39
47
|
noPush: opts.push === false,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAClC,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAM,IAAI,EAAE,MAAM,EAAC,CAAC;AAEtD,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,SAAS,kBAAkB,CAAC,MAAsB;IACjD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
* Implementations wrap specific tools (pi, claude CLI, aider, etc.)
|
|
4
4
|
*/
|
|
5
5
|
export interface AgentHarness {
|
|
6
|
+
/**
|
|
7
|
+
* Validate that the agent is available and properly configured.
|
|
8
|
+
* Throws an error with a descriptive message if validation fails.
|
|
9
|
+
*/
|
|
10
|
+
validate(): Promise<void>;
|
|
6
11
|
/**
|
|
7
12
|
* Run the agent with a prompt and return its output.
|
|
8
13
|
* The agent is expected to execute in the given working directory.
|
|
@@ -16,4 +21,12 @@ export interface AgentHarness {
|
|
|
16
21
|
exitCode: number;
|
|
17
22
|
}>;
|
|
18
23
|
}
|
|
24
|
+
export interface AgentHarnessConfig {
|
|
25
|
+
/** Command to invoke the agent (e.g. 'pi') */
|
|
26
|
+
cmd: string;
|
|
27
|
+
/** AI provider name (e.g. 'anthropic', 'openai') */
|
|
28
|
+
provider: string;
|
|
29
|
+
/** AI model ID (e.g. 'claude-opus-4-6') */
|
|
30
|
+
model: string;
|
|
31
|
+
}
|
|
19
32
|
//# sourceMappingURL=agent-harness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../../src/harnesses/agent-harness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAChD"}
|
|
1
|
+
{"version":3,"file":"agent-harness.d.ts","sourceRoot":"","sources":["../../src/harnesses/agent-harness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IAClC,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harnesses/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/harnesses/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC"}
|
package/dist/harnesses/pi.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentHarness } from './agent-harness.js';
|
|
1
|
+
import type { AgentHarness, AgentHarnessConfig } from './agent-harness.js';
|
|
2
2
|
/**
|
|
3
3
|
* Agent harness for @mariozechner/pi-coding-agent.
|
|
4
4
|
*
|
|
@@ -6,10 +6,10 @@ import type { AgentHarness } from './agent-harness.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class PiHarness implements AgentHarness {
|
|
8
8
|
private cmd;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
private provider;
|
|
10
|
+
private model;
|
|
11
|
+
constructor(config: AgentHarnessConfig);
|
|
12
|
+
validate(): Promise<void>;
|
|
13
13
|
run(options: {
|
|
14
14
|
prompt: string;
|
|
15
15
|
workDir: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAEzE;;;;GAIG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC7C,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,kBAAkB;IAMhC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCzB,GAAG,CAAC,OAAO,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAC;IAsB/C,OAAO,CAAC,IAAI;CAmCZ"}
|
package/dist/harnesses/pi.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { exec } from 'node:child_process';
|
|
1
|
+
import { exec, execSync } from 'node:child_process';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
/**
|
|
@@ -8,18 +8,45 @@ import * as path from 'node:path';
|
|
|
8
8
|
*/
|
|
9
9
|
export class PiHarness {
|
|
10
10
|
cmd;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.
|
|
11
|
+
provider;
|
|
12
|
+
model;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.cmd = config.cmd;
|
|
15
|
+
this.provider = config.provider;
|
|
16
|
+
this.model = config.model;
|
|
17
|
+
}
|
|
18
|
+
async validate() {
|
|
19
|
+
// Check if the command exists
|
|
20
|
+
try {
|
|
21
|
+
execSync(`which ${this.cmd}`, { stdio: 'pipe' });
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
throw new Error(`Agent command '${this.cmd}' not found. ` +
|
|
25
|
+
`Make sure it is installed and available in PATH. ` +
|
|
26
|
+
`For pi-coding-agent: npm install -g @mariozechner/pi-coding-agent`);
|
|
27
|
+
}
|
|
28
|
+
// Validate auth by making a minimal API call
|
|
29
|
+
try {
|
|
30
|
+
const result = execSync(`${this.cmd} --print --no-tools --provider ${this.provider} --model ${this.model} "respond with OK"`, { stdio: 'pipe', timeout: 30_000 });
|
|
31
|
+
const output = result.toString().trim();
|
|
32
|
+
if (!output) {
|
|
33
|
+
throw new Error('Empty response');
|
|
34
|
+
}
|
|
35
|
+
console.log(`Auth check passed (response: ${output.slice(0, 20)})`);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const stderr = error.stderr?.toString() || error.message || '';
|
|
39
|
+
throw new Error(`Agent auth validation failed. Ensure valid credentials are configured.\n` +
|
|
40
|
+
`Set ANTHROPIC_API_KEY or configure OAuth via ~/.pi/agent/auth.json\n` +
|
|
41
|
+
`Details: ${stderr.slice(0, 500)}`);
|
|
42
|
+
}
|
|
16
43
|
}
|
|
17
44
|
async run(options) {
|
|
18
45
|
// Write prompt to a temp file to avoid shell escaping issues
|
|
19
46
|
const promptFile = path.join(options.workDir, '.whitesmith-prompt.md');
|
|
20
47
|
fs.writeFileSync(promptFile, options.prompt, 'utf-8');
|
|
21
48
|
try {
|
|
22
|
-
const result = await this.exec(`${this.cmd} --prompt-file "${promptFile}" --yes`, options.workDir, options.logFile);
|
|
49
|
+
const result = await this.exec(`${this.cmd} --prompt-file "${promptFile}" --yes --provider ${this.provider} --model ${this.model}`, options.workDir, options.logFile);
|
|
23
50
|
return result;
|
|
24
51
|
}
|
|
25
52
|
finally {
|
package/dist/harnesses/pi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAsB,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAK/D;;;;;;;GAOG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,GAAG,CAAa;gBAEZ,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY;IAQ9E;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAsB,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAK/D;;;;;;;GAOG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,GAAG,CAAa;gBAEZ,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY;IAQ9E;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD1B;;OAEG;YACW,YAAY;IA2B1B;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;YACW,SAAS;IAevB;;OAEG;YACW,WAAW;IA4EzB;;OAEG;YACW,SAAS;CAqDvB"}
|
package/dist/orchestrator.js
CHANGED
|
@@ -31,6 +31,12 @@ export class Orchestrator {
|
|
|
31
31
|
console.log(`Working directory: ${this.config.workDir}`);
|
|
32
32
|
console.log(`Max iterations: ${this.config.maxIterations}`);
|
|
33
33
|
console.log(`Agent command: ${this.config.agentCmd}`);
|
|
34
|
+
console.log(`Provider: ${this.config.provider}`);
|
|
35
|
+
console.log(`Model: ${this.config.model}`);
|
|
36
|
+
console.log('');
|
|
37
|
+
// Validate agent is available before doing anything
|
|
38
|
+
await this.agent.validate();
|
|
39
|
+
console.log('Agent validated successfully.');
|
|
34
40
|
console.log('');
|
|
35
41
|
// Ensure labels exist
|
|
36
42
|
await this.issues.ensureLabels(Object.values(LABELS));
|
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -60,6 +60,10 @@ export declare const LABELS: {
|
|
|
60
60
|
export interface DevPulseConfig {
|
|
61
61
|
/** Command to run the agent harness */
|
|
62
62
|
agentCmd: string;
|
|
63
|
+
/** AI provider name (e.g. 'anthropic', 'openai') */
|
|
64
|
+
provider: string;
|
|
65
|
+
/** AI model ID (e.g. 'claude-opus-4-6') */
|
|
66
|
+
model: string;
|
|
63
67
|
/** Maximum iterations per run */
|
|
64
68
|
maxIterations: number;
|
|
65
69
|
/** Working directory (the repo) */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,IAAI;IACpB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB,+CAA+C;;IAE/C,gDAAgD;;IAEhD,kDAAkD;;IAElD,mDAAmD;;CAE1C,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GACf;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,GACjC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,GACnC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,GAC7C;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,IAAI;IACpB,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB,+CAA+C;;IAE/C,gDAAgD;;IAEhD,kDAAkD;;IAElD,mDAAmD;;CAE1C,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GACf;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,GACjC;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,GACnC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,GAC7C;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "whitesmith",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"dist",
|
|
19
19
|
"src"
|
|
20
20
|
],
|
|
21
|
+
"packageManager": "pnpm@10.28.1",
|
|
21
22
|
"dependencies": {
|
|
22
23
|
"commander": "^14.0.3",
|
|
23
24
|
"simple-git": "^3.33.0",
|
package/src/cli.ts
CHANGED
|
@@ -16,7 +16,11 @@ const DEFAULT_MAX_ITERATIONS = 10;
|
|
|
16
16
|
|
|
17
17
|
function createOrchestrator(config: DevPulseConfig): Orchestrator {
|
|
18
18
|
const issues = new GitHubProvider(config.workDir, config.repo);
|
|
19
|
-
const agent = new PiHarness(
|
|
19
|
+
const agent = new PiHarness({
|
|
20
|
+
cmd: config.agentCmd,
|
|
21
|
+
provider: config.provider,
|
|
22
|
+
model: config.model,
|
|
23
|
+
});
|
|
20
24
|
return new Orchestrator(config, issues, agent);
|
|
21
25
|
}
|
|
22
26
|
|
|
@@ -34,6 +38,8 @@ export function buildCli(): Command {
|
|
|
34
38
|
.description('Run the main whitesmith loop: investigate issues, implement tasks')
|
|
35
39
|
.argument('[work_dir]', 'Working directory', '.')
|
|
36
40
|
.option('--agent-cmd <cmd>', 'Agent harness command', DEFAULT_AGENT_CMD)
|
|
41
|
+
.requiredOption('--provider <name>', 'AI provider (e.g. anthropic, openai)')
|
|
42
|
+
.requiredOption('--model <id>', 'AI model ID (e.g. claude-opus-4-6)')
|
|
37
43
|
.option('--max-iterations <n>', 'Max iterations', String(DEFAULT_MAX_ITERATIONS))
|
|
38
44
|
.option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
|
|
39
45
|
.option('--log-file <path>', 'Log agent output to file')
|
|
@@ -42,6 +48,8 @@ export function buildCli(): Command {
|
|
|
42
48
|
.action(async (workDir: string, opts) => {
|
|
43
49
|
const config: DevPulseConfig = {
|
|
44
50
|
agentCmd: opts.agentCmd,
|
|
51
|
+
provider: opts.provider,
|
|
52
|
+
model: opts.model,
|
|
45
53
|
maxIterations: parseInt(opts.maxIterations, 10),
|
|
46
54
|
workDir: path.resolve(workDir),
|
|
47
55
|
noPush: opts.push === false,
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
* Implementations wrap specific tools (pi, claude CLI, aider, etc.)
|
|
4
4
|
*/
|
|
5
5
|
export interface AgentHarness {
|
|
6
|
+
/**
|
|
7
|
+
* Validate that the agent is available and properly configured.
|
|
8
|
+
* Throws an error with a descriptive message if validation fails.
|
|
9
|
+
*/
|
|
10
|
+
validate(): Promise<void>;
|
|
11
|
+
|
|
6
12
|
/**
|
|
7
13
|
* Run the agent with a prompt and return its output.
|
|
8
14
|
* The agent is expected to execute in the given working directory.
|
|
@@ -13,3 +19,12 @@ export interface AgentHarness {
|
|
|
13
19
|
logFile?: string;
|
|
14
20
|
}): Promise<{output: string; exitCode: number}>;
|
|
15
21
|
}
|
|
22
|
+
|
|
23
|
+
export interface AgentHarnessConfig {
|
|
24
|
+
/** Command to invoke the agent (e.g. 'pi') */
|
|
25
|
+
cmd: string;
|
|
26
|
+
/** AI provider name (e.g. 'anthropic', 'openai') */
|
|
27
|
+
provider: string;
|
|
28
|
+
/** AI model ID (e.g. 'claude-opus-4-6') */
|
|
29
|
+
model: string;
|
|
30
|
+
}
|
package/src/harnesses/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type {AgentHarness} from './agent-harness.js';
|
|
1
|
+
export type {AgentHarness, AgentHarnessConfig} from './agent-harness.js';
|
|
2
2
|
export {PiHarness} from './pi.js';
|
package/src/harnesses/pi.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {exec} from 'node:child_process';
|
|
1
|
+
import {exec, execSync} from 'node:child_process';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
|
-
import type {AgentHarness} from './agent-harness.js';
|
|
4
|
+
import type {AgentHarness, AgentHarnessConfig} from './agent-harness.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Agent harness for @mariozechner/pi-coding-agent.
|
|
@@ -10,12 +10,46 @@ import type {AgentHarness} from './agent-harness.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export class PiHarness implements AgentHarness {
|
|
12
12
|
private cmd: string;
|
|
13
|
+
private provider: string;
|
|
14
|
+
private model: string;
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
constructor(config: AgentHarnessConfig) {
|
|
17
|
+
this.cmd = config.cmd;
|
|
18
|
+
this.provider = config.provider;
|
|
19
|
+
this.model = config.model;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async validate(): Promise<void> {
|
|
23
|
+
// Check if the command exists
|
|
24
|
+
try {
|
|
25
|
+
execSync(`which ${this.cmd}`, {stdio: 'pipe'});
|
|
26
|
+
} catch {
|
|
27
|
+
throw new Error(
|
|
28
|
+
`Agent command '${this.cmd}' not found. ` +
|
|
29
|
+
`Make sure it is installed and available in PATH. ` +
|
|
30
|
+
`For pi-coding-agent: npm install -g @mariozechner/pi-coding-agent`,
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Validate auth by making a minimal API call
|
|
35
|
+
try {
|
|
36
|
+
const result = execSync(
|
|
37
|
+
`${this.cmd} --print --no-tools --provider ${this.provider} --model ${this.model} "respond with OK"`,
|
|
38
|
+
{stdio: 'pipe', timeout: 30_000},
|
|
39
|
+
);
|
|
40
|
+
const output = result.toString().trim();
|
|
41
|
+
if (!output) {
|
|
42
|
+
throw new Error('Empty response');
|
|
43
|
+
}
|
|
44
|
+
console.log(`Auth check passed (response: ${output.slice(0, 20)})`);
|
|
45
|
+
} catch (error: any) {
|
|
46
|
+
const stderr = error.stderr?.toString() || error.message || '';
|
|
47
|
+
throw new Error(
|
|
48
|
+
`Agent auth validation failed. Ensure valid credentials are configured.\n` +
|
|
49
|
+
`Set ANTHROPIC_API_KEY or configure OAuth via ~/.pi/agent/auth.json\n` +
|
|
50
|
+
`Details: ${stderr.slice(0, 500)}`,
|
|
51
|
+
);
|
|
52
|
+
}
|
|
19
53
|
}
|
|
20
54
|
|
|
21
55
|
async run(options: {
|
|
@@ -29,7 +63,7 @@ export class PiHarness implements AgentHarness {
|
|
|
29
63
|
|
|
30
64
|
try {
|
|
31
65
|
const result = await this.exec(
|
|
32
|
-
`${this.cmd} --prompt-file "${promptFile}" --yes`,
|
|
66
|
+
`${this.cmd} --prompt-file "${promptFile}" --yes --provider ${this.provider} --model ${this.model}`,
|
|
33
67
|
options.workDir,
|
|
34
68
|
options.logFile,
|
|
35
69
|
);
|
package/src/orchestrator.ts
CHANGED
|
@@ -37,6 +37,13 @@ export class Orchestrator {
|
|
|
37
37
|
console.log(`Working directory: ${this.config.workDir}`);
|
|
38
38
|
console.log(`Max iterations: ${this.config.maxIterations}`);
|
|
39
39
|
console.log(`Agent command: ${this.config.agentCmd}`);
|
|
40
|
+
console.log(`Provider: ${this.config.provider}`);
|
|
41
|
+
console.log(`Model: ${this.config.model}`);
|
|
42
|
+
console.log('');
|
|
43
|
+
|
|
44
|
+
// Validate agent is available before doing anything
|
|
45
|
+
await this.agent.validate();
|
|
46
|
+
console.log('Agent validated successfully.');
|
|
40
47
|
console.log('');
|
|
41
48
|
|
|
42
49
|
// Ensure labels exist
|
package/src/types.ts
CHANGED
|
@@ -64,6 +64,10 @@ export const LABELS = {
|
|
|
64
64
|
export interface DevPulseConfig {
|
|
65
65
|
/** Command to run the agent harness */
|
|
66
66
|
agentCmd: string;
|
|
67
|
+
/** AI provider name (e.g. 'anthropic', 'openai') */
|
|
68
|
+
provider: string;
|
|
69
|
+
/** AI model ID (e.g. 'claude-opus-4-6') */
|
|
70
|
+
model: string;
|
|
67
71
|
/** Maximum iterations per run */
|
|
68
72
|
maxIterations: number;
|
|
69
73
|
/** Working directory (the repo) */
|