whitesmith 0.0.0 → 0.0.2

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 (71) hide show
  1. package/README.md +228 -0
  2. package/dist/auto-work.d.ts +11 -0
  3. package/dist/auto-work.d.ts.map +1 -0
  4. package/dist/auto-work.js +22 -0
  5. package/dist/auto-work.js.map +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +108 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/comment.d.ts +29 -0
  10. package/dist/comment.d.ts.map +1 -0
  11. package/dist/comment.js +390 -0
  12. package/dist/comment.js.map +1 -0
  13. package/dist/git.d.ts +12 -0
  14. package/dist/git.d.ts.map +1 -1
  15. package/dist/git.js +57 -14
  16. package/dist/git.js.map +1 -1
  17. package/dist/harnesses/agent-harness.d.ts +13 -0
  18. package/dist/harnesses/agent-harness.d.ts.map +1 -1
  19. package/dist/harnesses/index.d.ts +1 -1
  20. package/dist/harnesses/index.d.ts.map +1 -1
  21. package/dist/harnesses/pi.d.ts +7 -5
  22. package/dist/harnesses/pi.d.ts.map +1 -1
  23. package/dist/harnesses/pi.js +122 -9
  24. package/dist/harnesses/pi.js.map +1 -1
  25. package/dist/install-ci.d.ts +7 -0
  26. package/dist/install-ci.d.ts.map +1 -0
  27. package/dist/install-ci.js +760 -0
  28. package/dist/install-ci.js.map +1 -0
  29. package/dist/orchestrator.d.ts +24 -4
  30. package/dist/orchestrator.d.ts.map +1 -1
  31. package/dist/orchestrator.js +254 -63
  32. package/dist/orchestrator.js.map +1 -1
  33. package/dist/prompts.d.ts.map +1 -1
  34. package/dist/prompts.js +1 -0
  35. package/dist/prompts.js.map +1 -1
  36. package/dist/providers/github-ci.d.ts +16 -0
  37. package/dist/providers/github-ci.d.ts.map +1 -0
  38. package/dist/providers/github-ci.js +733 -0
  39. package/dist/providers/github-ci.js.map +1 -0
  40. package/dist/providers/github.d.ts +21 -0
  41. package/dist/providers/github.d.ts.map +1 -1
  42. package/dist/providers/github.js +88 -3
  43. package/dist/providers/github.js.map +1 -1
  44. package/dist/providers/index.d.ts +1 -0
  45. package/dist/providers/index.d.ts.map +1 -1
  46. package/dist/providers/issue-provider.d.ts +26 -0
  47. package/dist/providers/issue-provider.d.ts.map +1 -1
  48. package/dist/task-manager.d.ts +4 -0
  49. package/dist/task-manager.d.ts.map +1 -1
  50. package/dist/task-manager.js +6 -0
  51. package/dist/task-manager.js.map +1 -1
  52. package/dist/types.d.ts +13 -0
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/types.js +2 -0
  55. package/dist/types.js.map +1 -1
  56. package/package.json +3 -1
  57. package/src/auto-work.ts +26 -0
  58. package/src/cli.ts +123 -1
  59. package/src/comment.ts +531 -0
  60. package/src/git.ts +58 -12
  61. package/src/harnesses/agent-harness.ts +15 -0
  62. package/src/harnesses/index.ts +1 -1
  63. package/src/harnesses/pi.ts +146 -10
  64. package/src/orchestrator.ts +290 -72
  65. package/src/prompts.ts +1 -0
  66. package/src/providers/github-ci.ts +840 -0
  67. package/src/providers/github.ts +118 -5
  68. package/src/providers/index.ts +1 -0
  69. package/src/providers/issue-provider.ts +25 -1
  70. package/src/task-manager.ts +7 -0
  71. package/src/types.ts +11 -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
@@ -0,0 +1,11 @@
1
+ import type { DevPulseConfig, Issue } from './types.js';
2
+ /**
3
+ * Check whether auto-work mode is enabled for a given issue.
4
+ *
5
+ * Returns true if any of these conditions are met:
6
+ * 1. `config.autoWork` is `true` (global config / CLI flag)
7
+ * 2. The issue has the `whitesmith:auto-work` label
8
+ * 3. The issue body contains the string `whitesmith:auto-work`
9
+ */
10
+ export declare function isAutoWorkEnabled(config: DevPulseConfig, issue: Issue): boolean;
11
+ //# sourceMappingURL=auto-work.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-work.d.ts","sourceRoot":"","sources":["../src/auto-work.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,KAAK,EAAC,MAAM,YAAY,CAAC;AAGtD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAc/E"}
@@ -0,0 +1,22 @@
1
+ import { LABELS } from './types.js';
2
+ /**
3
+ * Check whether auto-work mode is enabled for a given issue.
4
+ *
5
+ * Returns true if any of these conditions are met:
6
+ * 1. `config.autoWork` is `true` (global config / CLI flag)
7
+ * 2. The issue has the `whitesmith:auto-work` label
8
+ * 3. The issue body contains the string `whitesmith:auto-work`
9
+ */
10
+ export function isAutoWorkEnabled(config, issue) {
11
+ if (config.autoWork) {
12
+ return true;
13
+ }
14
+ if (issue.labels.includes(LABELS.AUTO_WORK)) {
15
+ return true;
16
+ }
17
+ if (issue.body.includes('whitesmith:auto-work')) {
18
+ return true;
19
+ }
20
+ return false;
21
+ }
22
+ //# sourceMappingURL=auto-work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-work.js","sourceRoot":"","sources":["../src/auto-work.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB,EAAE,KAAY;IACrE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
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;AA6BlC,wBAAgB,QAAQ,IAAI,OAAO,CA4PlC;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE"}
package/dist/cli.js CHANGED
@@ -7,12 +7,17 @@ import { Orchestrator } from './orchestrator.js';
7
7
  import { GitHubProvider } from './providers/github.js';
8
8
  import { PiHarness } from './harnesses/pi.js';
9
9
  import { TaskManager } from './task-manager.js';
10
+ import { handlePRComment, handleIssueComment, isPullRequest } from './comment.js';
10
11
  import pkg from '../package.json' with { type: 'json' };
11
12
  const DEFAULT_AGENT_CMD = 'pi';
12
13
  const DEFAULT_MAX_ITERATIONS = 10;
13
14
  function createOrchestrator(config) {
14
15
  const issues = new GitHubProvider(config.workDir, config.repo);
15
- const agent = new PiHarness(config.agentCmd);
16
+ const agent = new PiHarness({
17
+ cmd: config.agentCmd,
18
+ provider: config.provider,
19
+ model: config.model,
20
+ });
16
21
  return new Orchestrator(config, issues, agent);
17
22
  }
18
23
  const packageName = pkg.name;
@@ -26,18 +31,26 @@ export function buildCli() {
26
31
  .description('Run the main whitesmith loop: investigate issues, implement tasks')
27
32
  .argument('[work_dir]', 'Working directory', '.')
28
33
  .option('--agent-cmd <cmd>', 'Agent harness command', DEFAULT_AGENT_CMD)
34
+ .requiredOption('--provider <name>', 'AI provider (e.g. anthropic, openai)')
35
+ .requiredOption('--model <id>', 'AI model ID (e.g. claude-opus-4-6)')
29
36
  .option('--max-iterations <n>', 'Max iterations', String(DEFAULT_MAX_ITERATIONS))
30
37
  .option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
31
38
  .option('--log-file <path>', 'Log agent output to file')
32
39
  .option('--no-push', 'Skip pushing and PR creation')
33
40
  .option('--no-sleep', 'Skip sleep between iterations')
41
+ .option('--dry-run', 'Print what would be done without executing it')
42
+ .option('--auto-work', 'Enable auto-work mode (auto-approve task PRs)')
34
43
  .action(async (workDir, opts) => {
35
44
  const config = {
36
45
  agentCmd: opts.agentCmd,
46
+ provider: opts.provider,
47
+ model: opts.model,
37
48
  maxIterations: parseInt(opts.maxIterations, 10),
38
49
  workDir: path.resolve(workDir),
39
50
  noPush: opts.push === false,
40
51
  noSleep: opts.sleep === false,
52
+ dryRun: opts.dryRun ?? false,
53
+ autoWork: opts.autoWork ?? false,
41
54
  logFile: opts.logFile,
42
55
  repo: opts.repo,
43
56
  };
@@ -98,6 +111,76 @@ export function buildCli() {
98
111
  console.log('');
99
112
  }
100
113
  });
114
+ // --- comment ---
115
+ program
116
+ .command('comment')
117
+ .description('Handle a comment on an issue or PR (auto-detects which)')
118
+ .argument('[work_dir]', 'Working directory', '.')
119
+ .requiredOption('--number <n>', 'Issue or PR number')
120
+ .option('--body <text>', 'Comment body text (or use --body-file)')
121
+ .option('--body-file <path>', 'Read comment body from file instead of --body')
122
+ .option('--agent-cmd <cmd>', 'Agent harness command', DEFAULT_AGENT_CMD)
123
+ .requiredOption('--provider <name>', 'AI provider (e.g. anthropic, openai)')
124
+ .requiredOption('--model <id>', 'AI model ID (e.g. claude-opus-4-6)')
125
+ .option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
126
+ .option('--log-file <path>', 'Log agent output to file')
127
+ .option('--post', 'Post the response as a GitHub comment (issue-only, otherwise prints to stdout)')
128
+ .action(async (workDir, opts) => {
129
+ const resolvedDir = path.resolve(workDir);
130
+ if (!fs.existsSync(resolvedDir)) {
131
+ console.error(`ERROR: Directory '${resolvedDir}' does not exist`);
132
+ process.exit(1);
133
+ }
134
+ // Read body from file if --body-file is provided, otherwise use --body
135
+ let commentBody;
136
+ if (opts.bodyFile) {
137
+ const bodyFilePath = path.resolve(opts.bodyFile);
138
+ if (!fs.existsSync(bodyFilePath)) {
139
+ console.error(`ERROR: Body file '${bodyFilePath}' does not exist`);
140
+ process.exit(1);
141
+ }
142
+ commentBody = fs.readFileSync(bodyFilePath, 'utf-8');
143
+ }
144
+ else if (opts.body) {
145
+ commentBody = opts.body;
146
+ }
147
+ else {
148
+ console.error('ERROR: Either --body or --body-file is required');
149
+ process.exit(1);
150
+ }
151
+ process.chdir(resolvedDir);
152
+ const issues = new GitHubProvider(resolvedDir, opts.repo);
153
+ const agent = new PiHarness({
154
+ cmd: opts.agentCmd,
155
+ provider: opts.provider,
156
+ model: opts.model,
157
+ });
158
+ await agent.validate();
159
+ const number = parseInt(opts.number, 10);
160
+ const commentConfig = {
161
+ number,
162
+ commentBody,
163
+ workDir: resolvedDir,
164
+ repo: opts.repo,
165
+ logFile: opts.logFile,
166
+ post: opts.post === true,
167
+ };
168
+ try {
169
+ const isPR = await isPullRequest(issues, number);
170
+ if (isPR) {
171
+ console.log(`Detected PR #${number}`);
172
+ await handlePRComment(commentConfig, issues, agent);
173
+ }
174
+ else {
175
+ console.log(`Detected issue #${number}`);
176
+ await handleIssueComment(commentConfig, issues, agent);
177
+ }
178
+ }
179
+ catch (error) {
180
+ console.error('ERROR:', error instanceof Error ? error.message : error);
181
+ process.exit(1);
182
+ }
183
+ });
101
184
  // --- reconcile ---
102
185
  program
103
186
  .command('reconcile')
@@ -134,6 +217,30 @@ export function buildCli() {
134
217
  }
135
218
  console.log('Reconcile complete.');
136
219
  });
220
+ // --- install-ci ---
221
+ program
222
+ .command('install-ci')
223
+ .description('Set up GitHub Actions workflows for whitesmith CI')
224
+ .argument('[work_dir]', 'Working directory (target repository)', '.')
225
+ .option('--auth-json', 'Use pi auth.json instead of models.json (requires PI_AUTH_JSON and GH_PAT secrets)')
226
+ .option('--repo <owner/repo>', 'GitHub repo (auto-detected if omitted)')
227
+ .option('--fake', 'Write workflows to .fake/workflows/ instead of .github/workflows/ (for testing)')
228
+ .action(async (workDir, opts) => {
229
+ const resolvedDir = path.resolve(workDir);
230
+ if (!fs.existsSync(resolvedDir)) {
231
+ console.error(`ERROR: Directory '${resolvedDir}' does not exist`);
232
+ process.exit(1);
233
+ }
234
+ const authMode = opts.authJson ? 'auth-json' : 'models-json';
235
+ try {
236
+ const provider = new GitHubProvider(resolvedDir, opts.repo);
237
+ await provider.installCI({ authMode, fake: opts.fake ?? false });
238
+ }
239
+ catch (error) {
240
+ console.error('ERROR:', error instanceof Error ? error.message : error);
241
+ process.exit(1);
242
+ }
243
+ });
137
244
  return program;
138
245
  }
139
246
  export async function main(args = process.argv) {
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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"}
@@ -0,0 +1,29 @@
1
+ import type { AgentHarness } from './harnesses/agent-harness.js';
2
+ import type { IssueProvider } from './providers/issue-provider.js';
3
+ export interface CommentConfig {
4
+ /** Issue or PR number */
5
+ number: number;
6
+ /** The comment body text */
7
+ commentBody: string;
8
+ /** Working directory (the repo) */
9
+ workDir: string;
10
+ /** GitHub repo in "owner/repo" format (auto-detected if not set) */
11
+ repo?: string;
12
+ /** Log file path */
13
+ logFile?: string;
14
+ /** Whether to post the response as a GitHub comment (issue-only) */
15
+ post: boolean;
16
+ }
17
+ /**
18
+ * Handle a comment on a PR.
19
+ */
20
+ export declare function handlePRComment(config: CommentConfig, issues: IssueProvider, agent: AgentHarness): Promise<void>;
21
+ /**
22
+ * Handle a comment on an issue (not a PR).
23
+ */
24
+ export declare function handleIssueComment(config: CommentConfig, issues: IssueProvider, agent: AgentHarness): Promise<void>;
25
+ /**
26
+ * Detect whether a given number is a PR or an issue.
27
+ */
28
+ export declare function isPullRequest(issues: IssueProvider, number: number): Promise<boolean>;
29
+ //# sourceMappingURL=comment.d.ts.map
@@ -0,0 +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"}