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 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;AAuBlC,wBAAgB,QAAQ,IAAI,OAAO,CAwIlC;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;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(config.agentCmd);
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":"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"}
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,3 +1,3 @@
1
- export type { AgentHarness } from './agent-harness.js';
1
+ export type { AgentHarness, AgentHarnessConfig } from './agent-harness.js';
2
2
  export { PiHarness } from './pi.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -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;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,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"}
@@ -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
- * @param cmd - Command to invoke pi (default: "pi")
11
- */
12
- constructor(cmd?: string);
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;AAErD;;;;GAIG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC7C,OAAO,CAAC,GAAG,CAAS;IAEpB;;OAEG;gBACS,GAAG,GAAE,MAAa;IAIxB,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"}
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"}
@@ -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
- * @param cmd - Command to invoke pi (default: "pi")
13
- */
14
- constructor(cmd = 'pi') {
15
- this.cmd = cmd;
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 {
@@ -1 +1 @@
1
- {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACb,GAAG,CAAS;IAEpB;;OAEG;IACH,YAAY,MAAc,IAAI;QAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAIT;QACA,6DAA6D;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACvE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC7B,GAAG,IAAI,CAAC,GAAG,mBAAmB,UAAU,SAAS,EACjD,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CACf,CAAC;YACF,OAAO,MAAM,CAAC;QACf,CAAC;gBAAS,CAAC;YACV,uBAAuB;YACvB,IAAI,CAAC;gBACJ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;IACF,CAAC;IAEO,IAAI,CACX,GAAW,EACX,OAAe,EACf,OAAgB;QAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;gBACvB,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,oBAAoB;aAC7C,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,OAAO;gBACxB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC;YAER,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,SAAS,EAAE,GAAG,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
1
+ {"version":3,"file":"pi.js","sourceRoot":"","sources":["../../src/harnesses/pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACb,GAAG,CAAS;IACZ,QAAQ,CAAS;IACjB,KAAK,CAAS;IAEtB,YAAY,MAA0B;QACrC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,8BAA8B;QAC9B,IAAI,CAAC;YACJ,QAAQ,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,KAAK,CACd,kBAAkB,IAAI,CAAC,GAAG,eAAe;gBACxC,mDAAmD;gBACnD,mEAAmE,CACpE,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,QAAQ,CACtB,GAAG,IAAI,CAAC,GAAG,kCAAkC,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,KAAK,oBAAoB,EACpG,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAC,CAChC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACd,0EAA0E;gBACzE,sEAAsE;gBACtE,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACnC,CAAC;QACH,CAAC;IACF,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAIT;QACA,6DAA6D;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACvE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC7B,GAAG,IAAI,CAAC,GAAG,mBAAmB,UAAU,sBAAsB,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,KAAK,EAAE,EACnG,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,CACf,CAAC;YACF,OAAO,MAAM,CAAC;QACf,CAAC;gBAAS,CAAC;YACV,uBAAuB;YACvB,IAAI,CAAC;gBACJ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;QACF,CAAC;IACF,CAAC;IAEO,IAAI,CACX,GAAW,EACX,OAAe,EACf,OAAgB;QAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;gBACvB,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAC3B,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,oBAAoB;aAC7C,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,OAAO;gBACxB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC;YAER,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACzC,MAAM,IAAI,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC1B,SAAS,EAAE,GAAG,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -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;IA+C1B;;OAEG;YACW,YAAY;IA2B1B;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;YACW,SAAS;IAevB;;OAEG;YACW,WAAW;IA4EzB;;OAEG;YACW,SAAS;CAqDvB"}
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"}
@@ -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));
@@ -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) */
@@ -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.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(config.agentCmd);
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
+ }
@@ -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';
@@ -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
- * @param cmd - Command to invoke pi (default: "pi")
16
- */
17
- constructor(cmd: string = 'pi') {
18
- this.cmd = cmd;
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
  );
@@ -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) */