ai-cmds 0.1.1 → 0.3.0

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 CHANGED
@@ -5,14 +5,17 @@ AI-powered CLI tool that uses OpenAI and Google Gemini models to review code cha
5
5
  ## Features
6
6
 
7
7
  - Multiple AI models: GPT-5, GPT-5-mini, GPT-4o-mini, Gemini 2.5 Pro, Gemini 2.0 Flash
8
- - Configurable review setups from very light to heavy
9
- - Custom setups with full control over reviewer, validator, and formatter models
10
- - Three commands: `review-code-changes` for local development, `review-pr` for CI, `create-pr` for PR creation
11
- - Parallel reviews with validation pass for higher accuracy
8
+ - Configurable review setups from light to heavy
9
+ - Custom setups with full control over reviewer and validator models
10
+ - Five commands: `commit` for AI commit messages, `review-code-changes` for local development, `advanced-review-changes` for guided/customized local review focus, `review-pr` for CI, `create-pr` for PR creation
11
+ - Parallel reviews with a single structured validation pass for higher accuracy
12
+ - Optional provider-aware concurrency limits for reviewer fan-out
13
+ - AI-generated commit messages with interactive editing
12
14
  - AI-generated PR titles and descriptions
13
15
  - Automatic filtering of import-only changes
14
16
  - Custom review instructions support
15
17
  - Token usage tracking and cost awareness
18
+ - Improved review visualization with severity totals, issue IDs (`C1`, `P1`, `S1`), and impacted file counts
16
19
 
17
20
  ## Installation
18
21
 
@@ -31,6 +34,27 @@ pnpm add ai-cmds
31
34
 
32
35
  ## Commands
33
36
 
37
+ ### `commit` - AI Commit Messages
38
+
39
+ Generate commit messages from staged changes using AI (Gemini primary, GPT-5-mini fallback).
40
+
41
+ ```bash
42
+ # Generate commit message and commit
43
+ ai-cmds commit
44
+
45
+ # Preview message without committing
46
+ ai-cmds commit --dry-run
47
+ ```
48
+
49
+ **Arguments:**
50
+ - `--dry-run` - Preview the generated message without committing
51
+
52
+ **Behavior:**
53
+ - If no files are staged, automatically stages all changes before generating
54
+ - Lockfiles are excluded from the diff sent to AI by default
55
+ - After generation, choose to: **Commit**, **Edit**, **Regenerate**, or **Cancel**
56
+ - If the primary model fails, automatically retries with the fallback model
57
+
34
58
  ### `review-code-changes` - Local Development
35
59
 
36
60
  Review local code changes (staged or all changes vs base branch). Best for local development workflow.
@@ -47,12 +71,45 @@ ai-cmds review-code-changes --setup light
47
71
 
48
72
  # Specify base branch
49
73
  ai-cmds review-code-changes --scope all --base-branch develop
74
+
75
+ # Save review to a custom file path
76
+ ai-cmds review-code-changes --scope all --output reviews/local-review.md
77
+ ```
78
+
79
+ **Arguments:**
80
+ - `--scope` - Review scope: `all`, `staged`, `globs`, `unViewed`, or custom scope id
81
+ - `--setup` - Review setup: `light`, `medium`, `heavy`, or custom setup id
82
+ - `--base-branch` - Base branch for diff comparison (if not specified, prompts for selection)
83
+ - `--output` - Output file path for the generated review markdown (default: `pr-review.md`)
84
+
85
+ ### `advanced-review-changes` - Advanced Local Development
86
+
87
+ Review local code changes with the same flow as `review-code-changes`, plus extra control over review guidance.
88
+
89
+ ```bash
90
+ # Guided mode (prompts for custom instruction and instruction inclusion)
91
+ ai-cmds advanced-review-changes
92
+
93
+ # Pass a custom review focus instruction
94
+ ai-cmds advanced-review-changes --custom-review-instruction "Focus on authentication and authorization issues"
95
+
96
+ # Disable default/configured instructions and only use your custom instruction
97
+ ai-cmds advanced-review-changes \
98
+ --custom-review-instruction "Focus on performance bottlenecks and N+1 queries" \
99
+ --include-default-review-instructions false
50
100
  ```
51
101
 
52
102
  **Arguments:**
53
103
  - `--scope` - Review scope: `all`, `staged`, `globs`, `unViewed`, or custom scope id
54
104
  - `--setup` - Review setup: `light`, `medium`, `heavy`, or custom setup id
55
105
  - `--base-branch` - Base branch for diff comparison (if not specified, prompts for selection)
106
+ - `--output` - Output file path for the generated review markdown (default: `pr-review.md`)
107
+ - `--custom-review-instruction` - Extra custom instruction that tells reviewers what to focus on
108
+ - `--include-default-review-instructions` - Whether to include configured/default instructions (`true` or `false`)
109
+
110
+ **Interactive behavior:**
111
+ - If `--include-default-review-instructions` is not provided, the CLI shows a confirm dialog.
112
+ - If `--custom-review-instruction` is not provided, the CLI asks whether you want to add one and prompts for it if confirmed.
56
113
 
57
114
  ### `review-pr` - CI/PR Review
58
115
 
@@ -71,13 +128,15 @@ ai-cmds review-pr --pr 123 --setup heavy
71
128
 
72
129
  **Arguments:**
73
130
  - `--pr` - PR number to review (**required**)
74
- - `--setup` - Review setup: `light`, `medium`, `heavy`, or custom setup label
131
+ - `--setup` - Review setup: `light`, `medium`, `heavy`, or custom setup id
75
132
  - `--test` - Test mode: skip posting review to PR, just save to file
76
133
  - `--skip-previous-check` - Skip checking if previous review issues are still present
77
134
 
78
135
  **Behavior:**
79
136
  - In GitHub Actions (`GITHUB_ACTIONS` env set): Posts review as PR comment
80
137
  - With `--test` flag or locally: Saves review to `pr-review-test.md`
138
+ - If the filtered diff has no reviewable code (for example import/export-only changes), the command skips AI calls and emits a no-issues review
139
+ - Reviewer fan-out respects `codeReview.concurrencyPerProvider` when configured
81
140
 
82
141
  **Previous Review Check:**
83
142
 
@@ -127,12 +186,9 @@ ai-cmds create-pr --title "Fix login validation"
127
186
 
128
187
  | Setup | Reviewers | Description |
129
188
  |-------|-----------|-------------|
130
- | `veryLight` | 1× GPT-5-mini | Fastest, lowest cost |
131
189
  | `light` | 1× GPT-5 | Balanced |
132
190
  | `medium` | 2× GPT-5 (high reasoning) | More thorough |
133
191
  | `heavy` | 4× GPT-5 (high reasoning) | Most comprehensive |
134
- | `lightGoogle` | 1× Gemini 2.5 Pro | Google alternative |
135
- | `mediumGoogle` | 2× Gemini 2.5 Pro | Google thorough |
136
192
 
137
193
  ## Review Scopes
138
194
 
@@ -169,7 +225,7 @@ This requires an open PR for the current branch. It uses the GitHub GraphQL API
169
225
 
170
226
  ## Configuration
171
227
 
172
- Create `ai-cli.config.ts` in your project root:
228
+ Create `ai-cmds.config.ts` in your project root:
173
229
 
174
230
  ```typescript
175
231
  import { defineConfig } from 'ai-cmds';
@@ -179,12 +235,22 @@ export default defineConfig({
179
235
  baseBranch: 'main',
180
236
  codeReviewDiffExcludePatterns: ['pnpm-lock.yaml', '**/*.svg', '**/*.test.ts'],
181
237
  reviewInstructionsPath: '.github/PR_REVIEW_AGENT.md',
238
+ includeAgentsFileInReviewPrompt: true,
239
+ concurrencyPerProvider: {
240
+ 'openai.responses': 2,
241
+ 'google.generative-ai': 1,
242
+ },
182
243
  },
183
244
  createPR: {
184
245
  baseBranch: 'main',
185
246
  diffExcludePatterns: ['pnpm-lock.yaml'],
186
247
  descriptionInstructions: 'Always mention Jira ticket if present in branch name',
187
248
  },
249
+ commit: {
250
+ maxDiffTokens: 10000,
251
+ excludePatterns: ['dist/**'],
252
+ instructions: 'Always include the Jira ticket number from the branch name',
253
+ },
188
254
  });
189
255
  ```
190
256
 
@@ -216,6 +282,7 @@ By default, `.env` is loaded automatically before the config file is imported, a
216
282
  | `loadDotEnv` | Controls `.env` file loading. `true` (default): load `.env`, `false`: skip, `string`: additional file path, `string[]`: multiple files (later override earlier) |
217
283
  | `codeReview` | Configuration for the review commands (see below) |
218
284
  | `createPR` | Configuration for the create-pr command (see below) |
285
+ | `commit` | Configuration for the commit command (see below) |
219
286
 
220
287
  #### `codeReview` Options
221
288
 
@@ -224,11 +291,13 @@ By default, `.env` is loaded automatically before the config file is imported, a
224
291
  | `baseBranch` | Base branch for diff comparison. Can be a string or function `(currentBranch) => string`. If not set, prompts for selection |
225
292
  | `codeReviewDiffExcludePatterns` | Glob patterns for files to exclude from review |
226
293
  | `reviewInstructionsPath` | Path to custom review instructions markdown file |
294
+ | `includeAgentsFileInReviewPrompt` | Include `<git-root>/AGENTS.md` content in reviewer prompts (default: `true`) |
295
+ | `reviewOutputPath` | Default output file path for `review-code-changes` (can be overridden by `--output`) |
227
296
  | `setup` | Array of custom named setups (see below) |
228
297
  | `scope` | Array of custom named scopes (see below) |
229
298
  | `defaultValidator` | Default validator model for custom setups |
230
- | `defaultFormatter` | Default formatter model for custom setups |
231
- | `logsDir` | Directory for logs (can also use `AI_CLI_LOGS_DIR` env var) |
299
+ | `concurrencyPerProvider` | Reviewer concurrency limit. Use a number for all providers or `{ [providerId]: number }` for per-provider limits (keys come from `model.provider`, e.g. `openai.responses`; unspecified providers default to unlimited) |
300
+ | `logsDir` | Directory for review run artifacts (can also use `AI_CLI_LOGS_DIR` env var) |
232
301
 
233
302
  #### `createPR` Options
234
303
 
@@ -241,6 +310,24 @@ By default, `.env` is loaded automatically before the config file is imported, a
241
310
  | `diffExcludePatterns` | Glob patterns for files to exclude from diff |
242
311
  | `maxDiffTokens` | Maximum tokens from diff to include in AI prompt (default: 50000) |
243
312
 
313
+ #### `commit` Options
314
+
315
+ | Option | Description |
316
+ |--------|-------------|
317
+ | `primaryModel` | Custom AI model for commit message generation (default: Gemini 2.5 Flash) |
318
+ | `fallbackModel` | Fallback AI model if primary fails (default: GPT-5-mini) |
319
+ | `maxDiffTokens` | Maximum tokens from diff to include in AI prompt (default: 10000) |
320
+ | `excludePatterns` | Additional glob patterns to exclude from diff (merged with default lockfile patterns) |
321
+ | `instructions` | Custom instructions for AI commit message generation |
322
+
323
+ When `codeReview.logsDir` (or `AI_CLI_LOGS_DIR`) is set, each review run stores artifacts under:
324
+
325
+ - `<logsDir>/advanced-review-changes/<run-id>/...` for advanced local reviews
326
+ - `<logsDir>/review-code-changes/<run-id>/...` for local reviews
327
+ - `<logsDir>/review-pr/<run-id>/...` for PR reviews
328
+
329
+ Each run includes `context.yaml`, `changed-files.txt`, `diff.diff`, `reviewers/*.md`, `reviewers/*-debug.yaml`, `validator.yaml`, `final-review.md`, and `summary.yaml`.
330
+
244
331
  ### Dynamic Base Branch
245
332
 
246
333
  The `baseBranch` option can be a function that receives the current branch name:
@@ -256,7 +343,7 @@ export default defineConfig({
256
343
 
257
344
  ### Custom Setups
258
345
 
259
- Define custom named setups with full control over which models are used. **When custom setups are configured, they replace built-in options** (veryLight, light, medium, heavy).
346
+ Define custom named setups with full control over which models are used. **When custom setups are configured, they replace built-in options** (light, medium, heavy).
260
347
 
261
348
  ```typescript
262
349
  import { defineConfig } from 'ai-cmds';
@@ -267,24 +354,24 @@ export default defineConfig({
267
354
  codeReview: {
268
355
  setup: [
269
356
  {
357
+ id: 'myCustomSetup',
270
358
  label: 'myCustomSetup',
271
359
  reviewers: [
272
360
  { label: 'GPT-5', model: openai('gpt-5.2'), providerOptions: { reasoningEffort: 'high' } },
273
361
  { model: google('gemini-2.5-pro') },
274
362
  ],
275
363
  validator: { model: openai('gpt-5.2') },
276
- formatter: { model: openai('gpt-5-mini') },
277
364
  },
278
365
  {
366
+ id: 'fastReview',
279
367
  label: 'fastReview',
280
368
  reviewers: [{ model: openai('gpt-5-mini') }],
281
- // validator and formatter use defaults
369
+ // validator uses defaultValidator
282
370
  },
283
371
  ],
284
372
 
285
- // Defaults for custom setups that don't specify validator/formatter
373
+ // Default validator for custom setups that don't specify one
286
374
  defaultValidator: { model: openai('gpt-5.2'), providerOptions: { reasoningEffort: 'high' } },
287
- defaultFormatter: { model: openai('gpt-5-mini') },
288
375
  },
289
376
  });
290
377
  ```
@@ -324,11 +411,13 @@ export default defineConfig({
324
411
  {
325
412
  id: 'src-only',
326
413
  label: 'Source files only',
414
+ diffSource: 'branch',
327
415
  getFiles: (ctx) => ctx.allFiles.filter((f) => f.startsWith('src/')),
328
416
  },
329
417
  {
330
418
  id: 'no-tests',
331
419
  label: 'Exclude tests',
420
+ diffSource: 'branch',
332
421
  getFiles: (ctx) => ctx.allFiles.filter((f) => !f.includes('.test.')),
333
422
  },
334
423
  ],
@@ -340,6 +429,10 @@ The `getFiles` function receives a context object with:
340
429
  - `stagedFiles`: Files currently staged for commit
341
430
  - `allFiles`: All files changed compared to base branch
342
431
 
432
+ The optional `diffSource` field controls which git diff source the scope uses:
433
+ - `'branch'` (default): compare against selected base branch
434
+ - `'staged'`: use staged changes
435
+
343
436
  To include built-in options alongside your custom scopes, use `BUILT_IN_SCOPE_OPTIONS`:
344
437
 
345
438
  ```typescript
@@ -26,9 +26,13 @@ type SetupConfig = {
26
26
  reviewers: CustomModelConfig[];
27
27
  /** Model that validates and consolidates findings from all reviewers. Defaults to first reviewer if not specified. */
28
28
  validator?: CustomModelConfig;
29
- /** Model that formats the final output to structured JSON. Defaults to gpt-5-mini if not specified. */
30
- formatter?: CustomModelConfig;
31
29
  };
30
+ /**
31
+ * Review concurrency settings.
32
+ * - number: applies the same concurrency limit to all providers
33
+ * - object: sets per-provider concurrency limits (fallback for unspecified providers is unlimited)
34
+ */
35
+ type ReviewConcurrencyConfig = number | Record<string, number>;
32
36
  /**
33
37
  * Context provided to scope's getFiles function with all available file lists.
34
38
  */
@@ -47,6 +51,13 @@ type ScopeConfig = {
47
51
  id: string;
48
52
  /** Display label shown in UI */
49
53
  label: string;
54
+ /**
55
+ * Which git diff source this scope should use.
56
+ * - `branch` compares against the selected base branch
57
+ * - `staged` reviews staged changes
58
+ * @default 'branch'
59
+ */
60
+ diffSource?: 'branch' | 'staged';
50
61
  /** Function that receives available file lists and returns the files to review */
51
62
  getFiles: (ctx: ScopeContext) => string[] | Promise<string[]>;
52
63
  showFileCount?: boolean;
@@ -73,7 +84,21 @@ type ReviewCodeChangesConfig = {
73
84
  */
74
85
  reviewInstructionsPath?: string;
75
86
  /**
76
- * Array of custom named setups with full control over reviewer, validator, and formatter models.
87
+ * Whether to include the repository AGENTS.md content in reviewer prompts.
88
+ * Uses `<git-root>/AGENTS.md` when available.
89
+ * @default true
90
+ */
91
+ includeAgentsFileInReviewPrompt?: boolean;
92
+ /**
93
+ * Output file path for local review markdown generated by
94
+ * `review-code-changes` or `advanced-review-changes`.
95
+ * Can be overridden via `--output`.
96
+ * @default 'pr-review.md'
97
+ * @example './reviews/local-review.md'
98
+ */
99
+ reviewOutputPath?: string;
100
+ /**
101
+ * Array of custom named setups with full control over reviewer and validator models.
77
102
  * Each setup has a label that can be selected via the CLI --setup flag.
78
103
  * Custom setups take precedence over built-in presets when labels match.
79
104
  */
@@ -89,17 +114,26 @@ type ReviewCodeChangesConfig = {
89
114
  * Falls back to first reviewer in the setup if not specified.
90
115
  */
91
116
  defaultValidator?: CustomModelConfig;
92
- /**
93
- * Default formatter model used when a setup doesn't specify one.
94
- * Falls back to gpt-5-mini if not specified.
95
- */
96
- defaultFormatter?: CustomModelConfig;
97
117
  /**
98
118
  * Directory for storing review logs.
99
119
  * Can also be set via `AI_CLI_LOGS_DIR` environment variable.
100
120
  * Config value takes precedence over env var.
101
121
  */
102
122
  logsDir?: string;
123
+ /**
124
+ * Concurrency limit for running independent reviewer models.
125
+ *
126
+ * - `number`: same limit for all providers
127
+ * - `Record<string, number>`: per-provider limits keyed by provider id
128
+ *
129
+ * Provider ids come from `model.provider` (for example, `openai.responses` and `google.generative-ai`).
130
+ * Unspecified providers default to unlimited concurrency.
131
+ *
132
+ * @default Number.POSITIVE_INFINITY
133
+ * @example 2
134
+ * @example { 'openai.responses': 2, 'google.generative-ai': 1 }
135
+ */
136
+ concurrencyPerProvider?: ReviewConcurrencyConfig;
103
137
  };
104
138
  type CreatePRConfig = {
105
139
  /**
@@ -137,15 +171,48 @@ type CreatePRConfig = {
137
171
  */
138
172
  maxDiffTokens?: number;
139
173
  };
174
+ type CommitConfig = {
175
+ /**
176
+ * Custom AI model for generating commit messages.
177
+ * Defaults to Google Gemini 2.5 Flash.
178
+ */
179
+ primaryModel?: CustomModelConfig;
180
+ /**
181
+ * Fallback AI model if the primary model fails.
182
+ * Defaults to OpenAI GPT-5-mini.
183
+ */
184
+ fallbackModel?: CustomModelConfig;
185
+ /**
186
+ * Maximum number of tokens from the diff to include in the AI prompt.
187
+ * @default 10000
188
+ */
189
+ maxDiffTokens?: number;
190
+ /**
191
+ * Additional glob patterns to exclude from the diff sent to AI.
192
+ * Merged with default lockfile patterns (package-lock.json, yarn.lock, etc.).
193
+ * @example ['dist/**', '*.generated.ts']
194
+ */
195
+ excludePatterns?: string[];
196
+ /**
197
+ * Custom instructions to include in the AI prompt for generating commit messages.
198
+ * @example 'Always include the Jira ticket number from the branch name'
199
+ */
200
+ instructions?: string;
201
+ };
140
202
  type Config = {
141
203
  /**
142
- * Configuration for the review-code-changes and review-pr commands.
204
+ * Configuration for the review-code-changes, advanced-review-changes, and
205
+ * review-pr commands.
143
206
  */
144
207
  codeReview?: ReviewCodeChangesConfig;
145
208
  /**
146
209
  * Configuration for the create-pr command.
147
210
  */
148
211
  createPR?: CreatePRConfig;
212
+ /**
213
+ * Configuration for the commit command.
214
+ */
215
+ commit?: CommitConfig;
149
216
  /**
150
217
  * Controls loading of environment variables from `.env` files.
151
218
  *
@@ -178,24 +245,28 @@ declare const DEFAULT_SCOPES: {
178
245
  readonly all: {
179
246
  readonly id: "all";
180
247
  readonly label: "All changes";
248
+ readonly diffSource: "branch";
181
249
  readonly showFileCount: true;
182
250
  readonly getFiles: (ctx: ScopeContext) => string[];
183
251
  };
184
252
  readonly staged: {
185
253
  readonly id: "staged";
186
254
  readonly label: "Staged changes";
255
+ readonly diffSource: "staged";
187
256
  readonly showFileCount: true;
188
257
  readonly getFiles: (ctx: ScopeContext) => string[];
189
258
  };
190
259
  readonly globs: {
191
260
  readonly id: "globs";
192
261
  readonly label: "Select files using glob patterns (use !pattern to exclude)";
262
+ readonly diffSource: "branch";
193
263
  readonly showFileCount: false;
194
264
  readonly getFiles: (ctx: ScopeContext) => Promise<string[]>;
195
265
  };
196
266
  readonly unViewed: {
197
267
  readonly id: "unViewed";
198
268
  readonly label: "Unviewed files in PR";
269
+ readonly diffSource: "branch";
199
270
  readonly showFileCount: false;
200
271
  readonly getFiles: () => Promise<string[]>;
201
272
  };
@@ -233,7 +304,84 @@ declare const BUILT_IN_SETUP_OPTIONS: SetupConfig[];
233
304
  * Converts setup configs to CLI select options.
234
305
  */
235
306
  //#endregion
236
- //#region src/commands/create-pr/index.d.ts
307
+ //#region src/commands/advanced-review-changes/advanced-review-changes.d.ts
308
+ declare const advancedReviewChangesCommand: {
309
+ short: string | undefined;
310
+ description: string;
311
+ run: (cmdArgs: {
312
+ setup: string | undefined;
313
+ scope: string | undefined;
314
+ baseBranch: string | undefined;
315
+ output: string | undefined;
316
+ customReviewInstruction: string | undefined;
317
+ includeDefaultReviewInstructions: string | undefined;
318
+ }) => Promise<void> | void;
319
+ args: {
320
+ setup: {
321
+ type: "value-string-flag";
322
+ name: string;
323
+ description: string;
324
+ };
325
+ scope: {
326
+ type: "value-string-flag";
327
+ name: string;
328
+ description: string;
329
+ };
330
+ baseBranch: {
331
+ type: "value-string-flag";
332
+ name: string;
333
+ description: string;
334
+ };
335
+ output: {
336
+ type: "value-string-flag";
337
+ name: string;
338
+ description: string;
339
+ };
340
+ customReviewInstruction: {
341
+ type: "value-string-flag";
342
+ name: string;
343
+ description: string;
344
+ };
345
+ includeDefaultReviewInstructions: {
346
+ type: "value-string-flag";
347
+ name: string;
348
+ description: string;
349
+ };
350
+ } | undefined;
351
+ examples: {
352
+ args: string[];
353
+ description: string;
354
+ }[] | undefined;
355
+ };
356
+ //#endregion
357
+ //#region src/commands/commit/commit.d.ts
358
+ declare const commitCommand: {
359
+ short: string | undefined;
360
+ description: string;
361
+ run: (cmdArgs: {
362
+ dryRun: boolean;
363
+ yes: boolean;
364
+ }) => Promise<void> | void;
365
+ args: {
366
+ dryRun: {
367
+ type: "flag";
368
+ name: string;
369
+ description: string;
370
+ };
371
+ yes: {
372
+ type: "flag";
373
+ name: string;
374
+ description: string;
375
+ short: string;
376
+ };
377
+ } | undefined;
378
+ examples: {
379
+ args: string[];
380
+ description: string;
381
+ }[] | undefined;
382
+ };
383
+ //#endregion
384
+ //#region src/commands/create-pr/create-pr.d.ts
237
385
  declare const createPRCommand: {
238
386
  short: string | undefined;
239
387
  description: string;
@@ -271,7 +419,7 @@ declare const createPRCommand: {
271
419
  }[] | undefined;
272
420
  };
273
421
  //#endregion
274
- //#region src/commands/review-code-changes/index.d.ts
422
+ //#region src/commands/review-code-changes/review-code-changes.d.ts
275
423
  declare const reviewCodeChangesCommand: {
276
424
  short: string | undefined;
277
425
  description: string;
@@ -279,6 +427,7 @@ declare const reviewCodeChangesCommand: {
279
427
  setup: string | undefined;
280
428
  scope: string | undefined;
281
429
  baseBranch: string | undefined;
430
+ output: string | undefined;
282
431
  }) => Promise<void> | void;
283
432
  args: {
284
433
  setup: {
@@ -296,6 +445,11 @@ declare const reviewCodeChangesCommand: {
296
445
  name: string;
297
446
  description: string;
298
447
  };
448
+ output: {
449
+ type: "value-string-flag";
450
+ name: string;
451
+ description: string;
452
+ };
299
453
  } | undefined;
300
454
  examples: {
301
455
  args: string[];
@@ -303,7 +457,7 @@ declare const reviewCodeChangesCommand: {
303
457
  }[] | undefined;
304
458
  };
305
459
  //#endregion
306
- //#region src/commands/review-pr/index.d.ts
460
+ //#region src/commands/review-pr/review-pr.d.ts
307
461
  declare const reviewPRCommand: {
308
462
  short: string | undefined;
309
463
  description: string;
@@ -341,4 +495,4 @@ declare const reviewPRCommand: {
341
495
  }[] | undefined;
342
496
  };
343
497
  //#endregion
344
- export { BUILT_IN_SCOPE_OPTIONS, BUILT_IN_SETUP_OPTIONS, type Config, type CreatePRConfig, type CustomModelConfig, DEFAULT_SCOPES, type ReviewCodeChangesConfig, type ScopeConfig, type ScopeContext, type SetupConfig, createPRCommand, defineConfig, reviewCodeChangesCommand, reviewPRCommand };
498
+ export { BUILT_IN_SCOPE_OPTIONS, BUILT_IN_SETUP_OPTIONS, type CommitConfig, type Config, type CreatePRConfig, type CustomModelConfig, DEFAULT_SCOPES, type ReviewCodeChangesConfig, type ReviewConcurrencyConfig, type ScopeConfig, type ScopeContext, type SetupConfig, advancedReviewChangesCommand, commitCommand, createPRCommand, defineConfig, reviewCodeChangesCommand, reviewPRCommand };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { a as BUILT_IN_SCOPE_OPTIONS, i as BUILT_IN_SETUP_OPTIONS, n as reviewCodeChangesCommand, o as DEFAULT_SCOPES, r as createPRCommand, s as defineConfig, t as reviewPRCommand } from "./review-pr-Dh5esOtl.js";
1
+ import { a as reviewCodeChangesCommand, c as DEFAULT_SCOPES, i as advancedReviewChangesCommand, l as defineConfig, n as createPRCommand, o as BUILT_IN_SETUP_OPTIONS, r as commitCommand, s as BUILT_IN_SCOPE_OPTIONS, t as reviewPRCommand } from "./review-pr-yDp8Hdx1.js";
2
2
 
3
- export { BUILT_IN_SCOPE_OPTIONS, BUILT_IN_SETUP_OPTIONS, DEFAULT_SCOPES, createPRCommand, defineConfig, reviewCodeChangesCommand, reviewPRCommand };
3
+ export { BUILT_IN_SCOPE_OPTIONS, BUILT_IN_SETUP_OPTIONS, DEFAULT_SCOPES, advancedReviewChangesCommand, commitCommand, createPRCommand, defineConfig, reviewCodeChangesCommand, reviewPRCommand };
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as reviewCodeChangesCommand, r as createPRCommand, t as reviewPRCommand } from "./review-pr-Dh5esOtl.js";
2
+ import { a as reviewCodeChangesCommand, i as advancedReviewChangesCommand, n as createPRCommand, r as commitCommand, t as reviewPRCommand } from "./review-pr-yDp8Hdx1.js";
3
3
  import { createCLI } from "@ls-stack/cli";
4
4
 
5
5
  //#region src/main.ts
@@ -7,9 +7,11 @@ await createCLI({
7
7
  name: "✨ ai-cmds",
8
8
  baseCmd: "ai-cmds"
9
9
  }, {
10
+ commit: commitCommand,
10
11
  "review-code-changes": reviewCodeChangesCommand,
11
12
  "review-pr": reviewPRCommand,
12
- "create-pr": createPRCommand
13
+ "create-pr": createPRCommand,
14
+ "advanced-review-changes": advancedReviewChangesCommand
13
15
  });
14
16
 
15
17
  //#endregion