@reck98/git-smart 1.0.9 → 1.1.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.
Files changed (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +79 -14
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +4 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/config.d.ts +2 -2
  7. package/dist/commands/config.d.ts.map +1 -1
  8. package/dist/commands/config.js +126 -20
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/prechecks.d.ts.map +1 -1
  11. package/dist/commands/prechecks.js +26 -8
  12. package/dist/commands/prechecks.js.map +1 -1
  13. package/dist/core/config.d.ts +9 -0
  14. package/dist/core/config.d.ts.map +1 -1
  15. package/dist/core/config.js +87 -13
  16. package/dist/core/config.js.map +1 -1
  17. package/dist/prompts/index.d.ts +3 -1
  18. package/dist/prompts/index.d.ts.map +1 -1
  19. package/dist/prompts/index.js +26 -1
  20. package/dist/prompts/index.js.map +1 -1
  21. package/dist/providers/openrouter.d.ts.map +1 -1
  22. package/dist/providers/openrouter.js +19 -1
  23. package/dist/providers/openrouter.js.map +1 -1
  24. package/dist/utils/templates/go.gitignore +1 -0
  25. package/dist/utils/templates/java.gitignore +1 -0
  26. package/dist/utils/templates/node.gitignore +1 -0
  27. package/dist/utils/templates/php.gitignore +1 -0
  28. package/dist/utils/templates/python.gitignore +1 -0
  29. package/dist/utils/templates/ruby.gitignore +1 -0
  30. package/dist/utils/templates/rust.gitignore +1 -0
  31. package/dist/utils/templates.d.ts.map +1 -1
  32. package/dist/utils/templates.js +14 -7
  33. package/dist/utils/templates.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/utils/templates/go.gitignore +1 -0
  36. package/src/utils/templates/java.gitignore +1 -0
  37. package/src/utils/templates/node.gitignore +1 -0
  38. package/src/utils/templates/php.gitignore +1 -0
  39. package/src/utils/templates/python.gitignore +1 -0
  40. package/src/utils/templates/ruby.gitignore +1 -0
  41. package/src/utils/templates/rust.gitignore +1 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aashish Kumar
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # git-smart  [![npm version](https://img.shields.io/npm/v/@reck98/git-smart.svg)](https://www.npmjs.com/package/@reck98/git-smart)
1
+ # git-smart  [![npm version](https://img.shields.io/npm/v/@reck98/git-smart.svg)](https://www.npmjs.com/package/@reck98/git-smart) [![npm downloads](https://img.shields.io/npm/dm/@reck98/git-smart.svg)](https://www.npmjs.com/package/@reck98/git-smart) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org)
2
2
 
3
3
  AI-powered Git workflow assistant that generates production-quality commit messages, summarizes code changes, and streamlines Git operations.
4
4
 
5
5
  ```bash
6
- npm install -g @reck98/git-smart@1.0.9
6
+ npm install -g @reck98/git-smart@1.1.1
7
7
  ```
8
8
 
9
9
  ---
@@ -11,7 +11,7 @@ npm install -g @reck98/git-smart@1.0.9
11
11
  ## Features
12
12
 
13
13
  - **Repository Validation** — Detects if the current directory is a Git repo; offers to initialize one.
14
- - **.gitignore Generator** — Detects missing `.gitignore` and offers templates for Node, Python, Go, PHP, Ruby, Rust, Java.
14
+ - **.gitignore Generator** — Detects missing `.gitignore` and offers templates for Node, Python, Go, PHP, Ruby, Rust, Java. Automatically adds `.git-smart.json` to all templates and existing `.gitignore` files.
15
15
  - **Remote Validation** — Detects missing remotes; prompts to add one interactively.
16
16
  - **First Commit Detection** — Adapts behavior for repositories without a commit history.
17
17
  - **Smart Staging** — Stage all, none, or select files interactively.
@@ -21,6 +21,8 @@ npm install -g @reck98/git-smart@1.0.9
21
21
  - **Custom Editing** — Pick a generated message or write your own.
22
22
  - **Push Workflow** — Optionally push to remote after committing.
23
23
  - **Multi-Provider LLM** — OpenAI, OpenRouter, Anthropic, and Gemini.
24
+ - **Global & Local Config** — Set defaults once globally, override per project. Local config overrides global config.
25
+ - **Enhanced Config Display** — `config --show` displays file locations, env var status, API key sources, and repository info.
24
26
 
25
27
  ---
26
28
 
@@ -28,7 +30,7 @@ npm install -g @reck98/git-smart@1.0.9
28
30
 
29
31
  ```bash
30
32
  # Install globally
31
- npm install -g @reck98/git-smart@1.0.9
33
+ npm install -g @reck98/git-smart@1.1.1
32
34
 
33
35
  # Run the config wizard (required before first use)
34
36
  git-smart config
@@ -44,7 +46,10 @@ git-smart
44
46
  | Command | Description |
45
47
  |---|---|
46
48
  | `git-smart config` | Interactive configuration wizard for AI provider and API keys |
47
- | `git-smart config --show` | Display current configuration (masked API keys) |
49
+ | `git-smart config --global` | Save configuration globally (applies to all projects) |
50
+ | `git-smart config --show` | Display merged configuration with file locations, env vars, and repo info |
51
+ | `git-smart config --show --global` | Show only global configuration |
52
+ | `git-smart config --show --local` | Show only local configuration |
48
53
  | `git-smart` | Full workflow: prechecks → stage → AI summary → commit → push |
49
54
  | `git-smart --dry-run` | Generate summary and messages; no commit or push |
50
55
  | `git-smart summary` | Generate change summary only |
@@ -95,13 +100,13 @@ END
95
100
  ### Global (recommended)
96
101
 
97
102
  ```bash
98
- npm install -g @reck98/git-smart@1.0.9
103
+ npm install -g @reck98/git-smart@1.1.1
99
104
  ```
100
105
 
101
106
  ### npx (no install)
102
107
 
103
108
  ```bash
104
- npx @reck98/git-smart@1.0.9
109
+ npx @reck98/git-smart@1.1.1
105
110
  ```
106
111
 
107
112
  ### From source
@@ -140,6 +145,19 @@ to get started.
140
145
 
141
146
  ## Configuration
142
147
 
148
+ ### Config Locations
149
+
150
+ git-smart supports two configuration levels:
151
+
152
+ | Level | Location | Purpose |
153
+ |---|---|---|
154
+ | **Global** | `~/.config/git-smart/config.json` (Linux/macOS) or `%APPDATA%/git-smart/config.json` (Windows) | Default settings for all projects |
155
+ | **Local** | `./.git-smart.json` (project root) | Per-project overrides |
156
+
157
+ **Priority order:** Local config → Global config → Defaults
158
+
159
+ Local config overrides global config. Global config overrides built-in defaults.
160
+
143
161
  ### Config Wizard
144
162
 
145
163
  Run the interactive wizard:
@@ -154,6 +172,19 @@ It will guide you through:
154
172
  3. Entering your API key (masked input)
155
173
  4. Optionally configuring additional providers
156
174
 
175
+ If a global config exists, the wizard will offer to copy its values to local config as a starting point.
176
+
177
+ ### Global Configuration
178
+
179
+ Set defaults once, use everywhere:
180
+
181
+ ```bash
182
+ # Save configuration globally
183
+ git-smart config --global
184
+ ```
185
+
186
+ This creates a global config at `~/.config/git-smart/config.json`. When you run `git-smart config` in any project, you'll be prompted to use the global config as a starting point.
187
+
157
188
  ### Manual Configuration
158
189
 
159
190
  Create `.git-smart.json` in your project root:
@@ -161,7 +192,7 @@ Create `.git-smart.json` in your project root:
161
192
  ```json
162
193
  {
163
194
  "provider": "openrouter",
164
- "model": "google/gemma-4-26b-a4b-it:free",
195
+ "model": "openrouter/free",
165
196
  "conventionalCommits": true,
166
197
  "autoPush": false,
167
198
  "showSummary": true,
@@ -179,12 +210,33 @@ Create `.git-smart.json` in your project root:
179
210
  | Option | Default | Description |
180
211
  |---|---|---|
181
212
  | `provider` | `openrouter` | Active LLM provider |
182
- | `model` | `google/gemma-4-26b-a4b-it:free` | Model name for the active provider |
213
+ | `model` | `openrouter/free` | Model name for the active provider |
183
214
  | `conventionalCommits` | `true` | Generate Conventional Commit messages |
184
215
  | `autoPush` | `false` | Automatically push after commit |
185
216
  | `showSummary` | `true` | Display AI-generated summary before committing |
186
217
  | `providers` | `{}` | Per-provider API key storage (allows instant switching) |
187
218
 
219
+ ### Config Display
220
+
221
+ Show the full configuration with detailed info:
222
+
223
+ ```bash
224
+ git-smart config --show
225
+ ```
226
+
227
+ Output includes:
228
+ - Active provider and model settings
229
+ - Config file locations and whether they exist
230
+ - API keys (masked) with source (env var or config file)
231
+ - Environment variable status for all providers
232
+ - Repository info (remote URL, current branch)
233
+ - `.gitignore` status
234
+
235
+ ```bash
236
+ git-smart config --show --global # Show only global config
237
+ git-smart config --show --local # Show only local config
238
+ ```
239
+
188
240
  ### Configuration Gate
189
241
 
190
242
  All AI-powered commands (`git-smart`, `git-smart --dry-run`, `git-smart summary`, `git-smart commit`) require a valid configuration. If missing, they will exit with a message directing you to run `git-smart config`.
@@ -204,8 +256,9 @@ Environment variables take **highest priority** over stored config.
204
256
 
205
257
  Priority order:
206
258
  1. Environment variable
207
- 2. Stored config (`providers.{provider}.apiKey`)
208
- 3. Fail
259
+ 2. Local config (`./.git-smart.json`)
260
+ 3. Global config (`~/.config/git-smart/config.json`)
261
+ 4. Built-in defaults
209
262
 
210
263
  Examples:
211
264
 
@@ -222,12 +275,21 @@ $env:GIT_SMART_OPENROUTER_API_KEY="sk-or-v1-xxxx"
222
275
  ## Usage Examples
223
276
 
224
277
  ```bash
225
- # Configure your provider and API key
278
+ # Configure your provider and API key (local)
226
279
  git-smart config
227
280
 
228
- # Display current configuration
281
+ # Configure globally (applies to all projects)
282
+ git-smart config --global
283
+
284
+ # Display current configuration with full details
229
285
  git-smart config --show
230
286
 
287
+ # Show only global config
288
+ git-smart config --show --global
289
+
290
+ # Show only local config
291
+ git-smart config --show --local
292
+
231
293
  # Full interactive workflow
232
294
  git-smart
233
295
 
@@ -272,7 +334,8 @@ Suggested Commits
272
334
 
273
335
  - API keys are **never** displayed in full. Only the first 8 and last 4 characters are shown (e.g., `sk-or-v1-****5156`).
274
336
  - API keys are **never** logged to console, debug output, or telemetry.
275
- - API keys stored in `.git-smart.json` are your responsibility — add the file to `.gitignore` if using a public repository, or use environment variables instead.
337
+ - `.git-smart.json` is automatically added to `.gitignore` during prechecks and in all generated `.gitignore` templates, preventing accidental commits of API keys.
338
+ - You can also use environment variables instead of storing keys in the config file.
276
339
 
277
340
  ---
278
341
 
@@ -288,6 +351,8 @@ The `.gitignore` generator includes templates for:
288
351
  - Rust
289
352
  - Java
290
353
 
354
+ All templates automatically include `.git-smart.json` to prevent accidental API key commits. When running prechecks, `.git-smart.json` is also appended to existing `.gitignore` files if not already present.
355
+
291
356
  ---
292
357
 
293
358
  ## File Classification
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,wBAAgB,SAAS,IAAI,OAAO,CA2GnC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,wBAAgB,SAAS,IAAI,OAAO,CA6GnC"}
package/dist/cli.js CHANGED
@@ -49,13 +49,15 @@ export function createCLI() {
49
49
  .command('config')
50
50
  .description('Configure AI provider and API keys')
51
51
  .option('--show', 'Display current configuration')
52
+ .option('--global', 'Save configuration globally (applies to all projects)')
53
+ .option('--local', 'Show only local configuration (used with --show)')
52
54
  .action(async (options) => {
53
55
  try {
54
56
  if (options.show) {
55
- await showConfig();
57
+ await showConfig(options.global ? 'global' : options.local ? 'local' : 'merged');
56
58
  return;
57
59
  }
58
- await runConfigWizard();
60
+ await runConfigWizard(options.global);
59
61
  }
60
62
  catch (error) {
61
63
  handleError(error);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare function runConfigWizard(): Promise<void>;
2
- export declare function showConfig(): Promise<void>;
1
+ export declare function runConfigWizard(global?: boolean): Promise<void>;
2
+ export declare function showConfig(scope?: 'merged' | 'global' | 'local'): Promise<void>;
3
3
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA2CrD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBhD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAaA,wBAAsB,eAAe,CAAC,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFnE;AAED,wBAAsB,UAAU,CAAC,KAAK,GAAE,QAAQ,GAAG,QAAQ,GAAG,OAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0F/F"}
@@ -1,10 +1,41 @@
1
1
  import chalk from 'chalk';
2
- import { loadConfig, saveConfig, maskApiKey } from '../core/config.js';
2
+ import { existsSync, readFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ import { loadConfig, saveConfig, saveGlobalConfig, loadGlobalConfig, loadLocalConfig, globalConfigPath, maskApiKey, getKeySource, ENV_VAR_MAP, isFirstRun as checkFirstRun, } from '../core/config.js';
3
6
  import { PROVIDERS } from '../core/types.js';
4
- import { promptConfigWizard, promptAdditionalProviderKey } from '../prompts/index.js';
5
- export async function runConfigWizard() {
6
- const existing = loadConfig();
7
- console.log(chalk.cyan('\n git-smart configuration\n'));
7
+ import { promptConfigWizard, promptAdditionalProviderKey, promptUseGlobalConfig } from '../prompts/index.js';
8
+ import { getRemoteUrl, getCurrentBranch, isGitRepo } from '../core/git.js';
9
+ export async function runConfigWizard(global = false) {
10
+ const globalExists = existsSync(globalConfigPath());
11
+ const globalConf = loadGlobalConfig();
12
+ if (global) {
13
+ console.log(chalk.cyan('\n git-smart global configuration\n'));
14
+ }
15
+ else {
16
+ console.log(chalk.cyan('\n git-smart configuration\n'));
17
+ }
18
+ let config;
19
+ if (!global && globalExists && !checkFirstRun()) {
20
+ const choice = await promptUseGlobalConfig(globalConf);
21
+ if (choice === 'use') {
22
+ config = { ...globalConf };
23
+ const providers = { ...globalConf.providers };
24
+ config.providers = providers;
25
+ saveConfig(config);
26
+ console.log(chalk.green('\n Global config copied to local config.\n'));
27
+ for (const p of PROVIDERS) {
28
+ const key = config.providers?.[p]?.apiKey;
29
+ if (key) {
30
+ console.log(chalk.dim(` ${p}: ${maskApiKey(key)}`));
31
+ }
32
+ }
33
+ console.log(chalk.dim(`\n Active provider: ${config.provider}`));
34
+ console.log(chalk.dim(` Model: ${config.model}`));
35
+ return;
36
+ }
37
+ }
38
+ const existing = global ? loadGlobalConfig() : loadLocalConfig() || loadGlobalConfig();
8
39
  const { provider, model, apiKey, configureMore } = await promptConfigWizard();
9
40
  const providers = { ...existing.providers };
10
41
  if (apiKey) {
@@ -20,14 +51,20 @@ export async function runConfigWizard() {
20
51
  }
21
52
  }
22
53
  }
23
- const config = {
54
+ config = {
24
55
  ...existing,
25
56
  provider,
26
57
  model,
27
58
  providers,
28
59
  };
29
- saveConfig(config);
30
- console.log(chalk.green('\n Configuration saved.\n'));
60
+ if (global) {
61
+ saveGlobalConfig(config);
62
+ }
63
+ else {
64
+ saveConfig(config);
65
+ }
66
+ const label = global ? 'Global' : 'Local';
67
+ console.log(chalk.green(`\n ${label} configuration saved.\n`));
31
68
  for (const p of PROVIDERS) {
32
69
  const key = config.providers?.[p]?.apiKey;
33
70
  if (key) {
@@ -37,20 +74,89 @@ export async function runConfigWizard() {
37
74
  console.log(chalk.dim(`\n Active provider: ${config.provider}`));
38
75
  console.log(chalk.dim(` Model: ${config.model}`));
39
76
  }
40
- export async function showConfig() {
41
- const config = loadConfig();
42
- console.log(chalk.cyan('\n git-smart configuration\n'));
77
+ export async function showConfig(scope = 'merged') {
78
+ const globalPath = globalConfigPath();
79
+ const localPath = join(process.cwd(), '.git-smart.json');
80
+ const hasGlobal = existsSync(globalPath);
81
+ const hasLocal = existsSync(localPath);
82
+ const globalConf = loadGlobalConfig();
83
+ const localConf = loadLocalConfig();
84
+ const mergedConf = loadConfig();
85
+ const config = scope === 'global' ? globalConf : (scope === 'local' ? (localConf || mergedConf) : mergedConf);
86
+ const scopeTitle = scope === 'global' ? 'global ' : (scope === 'local' ? 'local ' : '');
87
+ console.log(chalk.cyan(`\n git-smart ${scopeTitle}configuration\n`));
88
+ if (scope === 'local' && !hasLocal) {
89
+ console.log(chalk.yellow(' No local configuration file (.git-smart.json) found.'));
90
+ console.log(chalk.dim(' Showing effective fallback configuration.\n'));
91
+ }
92
+ else if (scope === 'global' && !hasGlobal) {
93
+ console.log(chalk.yellow(' No global configuration file found.'));
94
+ console.log(chalk.dim(' Showing default global configuration.\n'));
95
+ }
43
96
  console.log(chalk.white(` Active provider: ${config.provider}`));
44
97
  console.log(chalk.white(` Model: ${config.model}`));
45
- console.log(chalk.white(` Conventional Commits: ${config.conventionalCommits}`));
46
- console.log(chalk.white(` Auto Push: ${config.autoPush}`));
47
- console.log(chalk.white(` Show Summary: ${config.showSummary}`));
48
- const configuredProviders = Object.entries(config.providers)
49
- .filter(([, v]) => v.apiKey);
50
- if (configuredProviders.length > 0) {
51
- console.log(chalk.cyan('\n Configured Providers:'));
52
- for (const [p, v] of configuredProviders) {
53
- console.log(chalk.dim(` ${p}: ${maskApiKey(v.apiKey)}`));
98
+ console.log(chalk.white(` Conventional Commits: ${config.conventionalCommits ? 'yes' : 'no'}`));
99
+ console.log(chalk.white(` Auto Push: ${config.autoPush ? 'yes' : 'no'}`));
100
+ console.log(chalk.white(` Show Summary: ${config.showSummary ? 'yes' : 'no'}`));
101
+ console.log(chalk.cyan('\n Config Source:'));
102
+ const localDisplay = localPath.replace(/\\/g, '/').replace(process.cwd().replace(/\\/g, '/'), '.');
103
+ const home = homedir();
104
+ const globalDisplay = (globalPath.startsWith(home) ? globalPath.replace(home, '~') : globalPath).replace(/\\/g, '/');
105
+ console.log(chalk.white(` Local: ${localDisplay} ${hasLocal ? chalk.green('✓') : chalk.red('(not found)')}`));
106
+ console.log(chalk.white(` Global: ${globalDisplay} ${hasGlobal ? chalk.green('✓') : chalk.red('(not found)')}`));
107
+ if (scope === 'merged') {
108
+ console.log(chalk.cyan('\n Effective Config:'));
109
+ console.log(chalk.dim(' (Local overrides global, global overrides defaults)'));
110
+ }
111
+ console.log(chalk.cyan('\n API Keys:'));
112
+ for (const p of PROVIDERS) {
113
+ const { key, source } = getKeySource(p);
114
+ if (key) {
115
+ const masked = maskApiKey(key);
116
+ const sourceLabel = source === 'env' ? 'env var' : 'config file';
117
+ console.log(chalk.white(` ${p.padEnd(12)} ${chalk.green(masked)} ${chalk.dim('(from ' + sourceLabel + ')')}`));
118
+ }
119
+ else {
120
+ console.log(chalk.white(` ${p.padEnd(12)} ${chalk.red('(not set)')}`));
121
+ }
122
+ }
123
+ console.log(chalk.cyan('\n Environment Variables:'));
124
+ for (const p of PROVIDERS) {
125
+ const envVar = ENV_VAR_MAP[p];
126
+ const val = process.env[envVar];
127
+ if (val) {
128
+ console.log(chalk.white(` ${envVar}: ${chalk.green('set')}`));
129
+ }
130
+ else {
131
+ console.log(chalk.white(` ${envVar}: ${chalk.red('not set')}`));
132
+ }
133
+ }
134
+ console.log(chalk.cyan('\n Repository Info:'));
135
+ const repoOk = await isGitRepo();
136
+ if (!repoOk) {
137
+ console.log(chalk.white(` Git repo: ${chalk.red('no')}`));
138
+ }
139
+ else {
140
+ console.log(chalk.white(` Git repo: ${chalk.green('yes')}`));
141
+ const branch = await getCurrentBranch();
142
+ console.log(chalk.white(` Branch: ${branch}`));
143
+ const remote = await getRemoteUrl();
144
+ if (remote) {
145
+ console.log(chalk.white(` Remote: ${remote}`));
146
+ }
147
+ else {
148
+ console.log(chalk.white(` Remote: ${chalk.red('not configured')}`));
149
+ }
150
+ }
151
+ const gitignorePath = join(process.cwd(), '.gitignore');
152
+ if (existsSync(gitignorePath)) {
153
+ const content = readFileSync(gitignorePath, 'utf-8');
154
+ const ignored = content.split('\n').some(line => line.trim() === '.git-smart.json');
155
+ if (ignored) {
156
+ console.log(chalk.white(` .gitignore: ${chalk.green('includes .git-smart.json')}`));
157
+ }
158
+ else {
159
+ console.log(chalk.white(` .gitignore: ${chalk.yellow('.git-smart.json NOT ignored')}`));
54
160
  }
55
161
  }
56
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prechecks.d.ts","sourceRoot":"","sources":["../../src/commands/prechecks.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAuE5D"}
1
+ {"version":3,"file":"prechecks.d.ts","sourceRoot":"","sources":["../../src/commands/prechecks.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CA2F5D"}
@@ -1,9 +1,9 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import { isGitRepo, gitInit, hasGitIgnore, getRemoteUrl, addRemote } from '../core/git.js';
3
+ import { isGitRepo, gitInit, hasGitIgnore, getRemoteUrl, addRemote, isFirstCommit } from '../core/git.js';
4
4
  import { promptInitOrExit, promptGitignore, promptAddRemote, promptRemoteUrl } from '../prompts/index.js';
5
5
  import { getGitignoreTemplate } from '../utils/templates.js';
6
- import { writeFileSync } from 'node:fs';
6
+ import { writeFileSync, readFileSync, appendFileSync, existsSync } from 'node:fs';
7
7
  import { join } from 'node:path';
8
8
  export async function runPreChecks() {
9
9
  const spinner = ora();
@@ -39,6 +39,25 @@ export async function runPreChecks() {
39
39
  else {
40
40
  console.log(chalk.green('✓ .gitignore exists.'));
41
41
  }
42
+ spinner.start('Checking .git-smart.json in .gitignore...');
43
+ const gitignorePath = join(process.cwd(), '.gitignore');
44
+ let gitSmartIgnored = false;
45
+ if (existsSync(gitignorePath)) {
46
+ const content = readFileSync(gitignorePath, 'utf-8');
47
+ gitSmartIgnored = content.split('\n').some(line => line.trim() === '.git-smart.json');
48
+ }
49
+ spinner.stop();
50
+ if (!gitSmartIgnored) {
51
+ let prefix = '';
52
+ if (existsSync(gitignorePath)) {
53
+ const content = readFileSync(gitignorePath, 'utf-8');
54
+ if (content.length > 0 && !content.endsWith('\n')) {
55
+ prefix = '\n';
56
+ }
57
+ }
58
+ appendFileSync(gitignorePath, `${prefix}.git-smart.json\n`, 'utf-8');
59
+ console.log(chalk.green('✓ Added .git-smart.json to .gitignore.'));
60
+ }
42
61
  spinner.start('Checking remote...');
43
62
  const remoteUrl = await getRemoteUrl();
44
63
  spinner.stop();
@@ -58,18 +77,17 @@ export async function runPreChecks() {
58
77
  console.log(chalk.green(`✓ Remote configured: ${remoteUrl}`));
59
78
  }
60
79
  spinner.start('Checking first commit...');
61
- let isFirstCommit = false;
80
+ let firstCommit = false;
62
81
  try {
63
- const { isFirstCommit: check } = await import('../core/git.js');
64
- isFirstCommit = await check();
82
+ firstCommit = await isFirstCommit();
65
83
  }
66
84
  catch {
67
- isFirstCommit = true;
85
+ firstCommit = true;
68
86
  }
69
87
  spinner.stop();
70
- if (isFirstCommit) {
88
+ if (firstCommit) {
71
89
  console.log(chalk.cyan('ℹ First commit detected.'));
72
90
  }
73
- return { hasRemote, isFirstCommit };
91
+ return { hasRemote, isFirstCommit: firstCommit };
74
92
  }
75
93
  //# sourceMappingURL=prechecks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prechecks.js","sourceRoot":"","sources":["../../src/commands/prechecks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prechecks.js","sourceRoot":"","sources":["../../src/commands/prechecks.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,18 @@
1
1
  import { GitSmartConfig, Provider, ConfigValidationError } from './types.js';
2
+ export declare const ENV_VAR_MAP: Record<Provider, string>;
3
+ export declare function globalConfigPath(): string;
4
+ export declare function loadGlobalConfig(): GitSmartConfig;
5
+ export declare function saveGlobalConfig(config: GitSmartConfig): void;
2
6
  export declare function loadConfig(): GitSmartConfig;
7
+ export declare function loadLocalConfig(): GitSmartConfig | null;
3
8
  export declare function saveConfig(config: GitSmartConfig): void;
4
9
  export declare function getActiveProvider(): Provider;
5
10
  export declare function getActiveModel(): string;
6
11
  export declare function getActiveApiKey(): string | undefined;
12
+ export declare function getKeySource(provider: Provider): {
13
+ key: string | undefined;
14
+ source: 'env' | 'file' | 'none';
15
+ };
7
16
  export declare function maskApiKey(key: string | undefined): string;
8
17
  export declare function validateConfig(): ConfigValidationError[];
9
18
  export declare function assertConfigured(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAuB,MAAM,YAAY,CAAC;AA8BlG,wBAAgB,UAAU,IAAI,cAAc,CAmB3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAGvD;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,CAE5C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAQpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG1D;AAED,wBAAgB,cAAc,IAAI,qBAAqB,EAAE,CAgCxD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,qBAAqB,EAAuB,MAAM,YAAY,CAAC;AAWlG,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKhD,CAAC;AAMF,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC;AAwBD,wBAAgB,gBAAgB,IAAI,cAAc,CAYjD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAO7D;AAED,wBAAgB,UAAU,IAAI,cAAc,CAyB3C;AAED,wBAAgB,eAAe,IAAI,cAAc,GAAG,IAAI,CASvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAGvD;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,CAE5C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAQpD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAU7G;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG1D;AAED,wBAAgB,cAAc,IAAI,qBAAqB,EAAE,CAgCxD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CASvC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
@@ -1,22 +1,30 @@
1
- import { readFileSync, writeFileSync, existsSync } from 'node:fs';
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
3
4
  const DEFAULT_CONFIG = {
4
5
  provider: 'openrouter',
5
- model: 'google/gemma-4-26b-a4b-it:free',
6
+ model: 'openrouter/free',
6
7
  conventionalCommits: true,
7
8
  autoPush: false,
8
9
  showSummary: true,
9
10
  providers: {},
10
11
  };
11
- const ENV_VAR_MAP = {
12
+ export const ENV_VAR_MAP = {
12
13
  openai: 'GIT_SMART_OPENAI_API_KEY',
13
14
  openrouter: 'GIT_SMART_OPENROUTER_API_KEY',
14
15
  anthropic: 'GIT_SMART_ANTHROPIC_API_KEY',
15
16
  gemini: 'GIT_SMART_GEMINI_API_KEY',
16
17
  };
17
- function configPath() {
18
+ function localConfigPath() {
18
19
  return join(process.cwd(), '.git-smart.json');
19
20
  }
21
+ export function globalConfigPath() {
22
+ const home = homedir();
23
+ if (process.platform === 'win32') {
24
+ return join(process.env.APPDATA || join(home, 'AppData', 'Roaming'), 'git-smart', 'config.json');
25
+ }
26
+ return join(home, '.config', 'git-smart', 'config.json');
27
+ }
20
28
  function getProviderFromKey(provider) {
21
29
  const key = provider.toLowerCase();
22
30
  if (['openai', 'openrouter', 'anthropic', 'gemini'].includes(key)) {
@@ -24,27 +32,81 @@ function getProviderFromKey(provider) {
24
32
  }
25
33
  return DEFAULT_CONFIG.provider;
26
34
  }
35
+ function parseConfigFile(raw) {
36
+ try {
37
+ const parsed = JSON.parse(raw);
38
+ return {
39
+ ...DEFAULT_CONFIG,
40
+ ...parsed,
41
+ provider: getProviderFromKey(parsed.provider || DEFAULT_CONFIG.provider),
42
+ providers: { ...DEFAULT_CONFIG.providers, ...parsed.providers },
43
+ };
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ export function loadGlobalConfig() {
50
+ const path = globalConfigPath();
51
+ if (!existsSync(path)) {
52
+ return { ...DEFAULT_CONFIG };
53
+ }
54
+ try {
55
+ const raw = readFileSync(path, 'utf-8');
56
+ const result = parseConfigFile(raw);
57
+ return result || { ...DEFAULT_CONFIG };
58
+ }
59
+ catch {
60
+ return { ...DEFAULT_CONFIG };
61
+ }
62
+ }
63
+ export function saveGlobalConfig(config) {
64
+ const path = globalConfigPath();
65
+ const dir = join(path, '..');
66
+ if (!existsSync(dir)) {
67
+ mkdirSync(dir, { recursive: true });
68
+ }
69
+ writeFileSync(path, JSON.stringify(config, null, 2) + '\n', 'utf-8');
70
+ }
27
71
  export function loadConfig() {
28
- const path = configPath();
72
+ const global = loadGlobalConfig();
73
+ const path = localConfigPath();
29
74
  if (existsSync(path)) {
30
75
  try {
31
76
  const raw = readFileSync(path, 'utf-8');
32
77
  const parsed = JSON.parse(raw);
33
78
  return {
34
79
  ...DEFAULT_CONFIG,
80
+ ...global,
35
81
  ...parsed,
36
- provider: getProviderFromKey(parsed.provider || DEFAULT_CONFIG.provider),
37
- providers: { ...DEFAULT_CONFIG.providers, ...parsed.providers },
82
+ provider: getProviderFromKey(parsed.provider || global.provider || DEFAULT_CONFIG.provider),
83
+ providers: {
84
+ ...DEFAULT_CONFIG.providers,
85
+ ...global.providers,
86
+ ...parsed.providers,
87
+ },
38
88
  };
39
89
  }
40
90
  catch {
41
91
  console.warn('Warning: Could not parse .git-smart.json, using defaults.');
42
92
  }
43
93
  }
44
- return { ...DEFAULT_CONFIG };
94
+ return { ...DEFAULT_CONFIG, ...global };
95
+ }
96
+ export function loadLocalConfig() {
97
+ const path = localConfigPath();
98
+ if (!existsSync(path))
99
+ return null;
100
+ try {
101
+ const raw = readFileSync(path, 'utf-8');
102
+ return parseConfigFile(raw);
103
+ }
104
+ catch {
105
+ return null;
106
+ }
45
107
  }
46
108
  export function saveConfig(config) {
47
- const path = configPath();
109
+ const path = localConfigPath();
48
110
  writeFileSync(path, JSON.stringify(config, null, 2) + '\n', 'utf-8');
49
111
  }
50
112
  export function getActiveProvider() {
@@ -61,6 +123,17 @@ export function getActiveApiKey() {
61
123
  return envKey;
62
124
  return config.providers?.[config.provider]?.apiKey;
63
125
  }
126
+ export function getKeySource(provider) {
127
+ const envVar = ENV_VAR_MAP[provider];
128
+ const envKey = process.env[envVar];
129
+ if (envKey)
130
+ return { key: envKey, source: 'env' };
131
+ const config = loadConfig();
132
+ const fileKey = config.providers?.[provider]?.apiKey;
133
+ if (fileKey)
134
+ return { key: fileKey, source: 'file' };
135
+ return { key: undefined, source: 'none' };
136
+ }
64
137
  export function maskApiKey(key) {
65
138
  if (!key || key.length < 8)
66
139
  return '****';
@@ -68,12 +141,13 @@ export function maskApiKey(key) {
68
141
  }
69
142
  export function validateConfig() {
70
143
  const errors = [];
71
- const path = configPath();
72
- if (!existsSync(path)) {
144
+ const config = loadConfig();
145
+ const hasLocal = existsSync(localConfigPath());
146
+ const hasGlobal = existsSync(globalConfigPath());
147
+ if (!hasLocal && !hasGlobal) {
73
148
  errors.push({ type: 'missing_config', message: 'No configuration file found.' });
74
149
  return errors;
75
150
  }
76
- const config = loadConfig();
77
151
  if (!config.provider) {
78
152
  errors.push({ type: 'missing_provider', message: 'No provider specified in configuration.' });
79
153
  }
@@ -105,6 +179,6 @@ export function assertConfigured() {
105
179
  process.exit(1);
106
180
  }
107
181
  export function isFirstRun() {
108
- return !existsSync(configPath());
182
+ return !existsSync(localConfigPath()) && !existsSync(globalConfigPath());
109
183
  }
110
184
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Provider } from '../core/types.js';
1
+ import { Provider, GitSmartConfig } from '../core/types.js';
2
2
  export declare function promptInitOrExit(): Promise<'init' | 'exit'>;
3
3
  export type GitignoreOption = 'node' | 'python' | 'go' | 'php' | 'ruby' | 'rust' | 'java' | 'skip';
4
4
  export type StageChoice = 'all' | 'none' | 'select';
@@ -10,6 +10,7 @@ export declare function promptSelectFiles(files: string[]): Promise<string[]>;
10
10
  export declare function promptUseConventionalCommits(): Promise<boolean>;
11
11
  export declare function promptSelectCommitMessage(messages: string[]): Promise<string>;
12
12
  export declare function promptPushToRemote(): Promise<boolean>;
13
+ export declare const DEFAULT_MODELS: Record<Provider, string>;
13
14
  export interface ConfigWizardAnswers {
14
15
  provider: Provider;
15
16
  model: string;
@@ -18,4 +19,5 @@ export interface ConfigWizardAnswers {
18
19
  }
19
20
  export declare function promptConfigWizard(): Promise<ConfigWizardAnswers>;
20
21
  export declare function promptAdditionalProviderKey(provider: Provider): Promise<string>;
22
+ export declare function promptUseGlobalConfig(globalConfig: GitSmartConfig): Promise<'use' | 'fresh'>;
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAa,MAAM,kBAAkB,CAAC;AAEvD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAajE;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACnG,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,CAmBhE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAa7D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAUvD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAc/D;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAW1E;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAarE;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BnF;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAa3D;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CA4CvE;AAED,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAa,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAajE;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACnG,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,CAmBhE;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAa7D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAUvD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,CAc/D;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAW1E;AAED,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAarE;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BnF;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAa3D;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKnD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CA4CvE;AAED,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrF;AAED,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAmBlG"}
@@ -140,6 +140,12 @@ export async function promptPushToRemote() {
140
140
  ]);
141
141
  return push;
142
142
  }
143
+ export const DEFAULT_MODELS = {
144
+ openrouter: 'openrouter/free',
145
+ openai: 'gpt-4o-mini',
146
+ anthropic: 'claude-3-5-haiku-20241022',
147
+ gemini: 'gemini-1.5-flash',
148
+ };
143
149
  export async function promptConfigWizard() {
144
150
  const { provider } = await inquirer.prompt([
145
151
  {
@@ -160,7 +166,7 @@ export async function promptConfigWizard() {
160
166
  type: 'input',
161
167
  name: 'model',
162
168
  message: 'Enter model name:',
163
- default: 'google/gemma-4-26b-a4b-it:free',
169
+ default: DEFAULT_MODELS[provider] || 'openrouter/free',
164
170
  },
165
171
  ]);
166
172
  const { apiKey } = await inquirer.prompt([
@@ -192,4 +198,23 @@ export async function promptAdditionalProviderKey(provider) {
192
198
  ]);
193
199
  return apiKey;
194
200
  }
201
+ export async function promptUseGlobalConfig(globalConfig) {
202
+ const configuredProviders = Object.entries(globalConfig.providers)
203
+ .filter(([, v]) => v.apiKey);
204
+ const { action } = await inquirer.prompt([
205
+ {
206
+ type: 'list',
207
+ name: 'action',
208
+ message: 'Global config found. Use it as starting point for local config?',
209
+ choices: [
210
+ {
211
+ name: `Use global config (provider: ${globalConfig.provider}, model: ${globalConfig.model})`,
212
+ value: 'use',
213
+ },
214
+ { name: 'Start fresh', value: 'fresh' },
215
+ ],
216
+ },
217
+ ]);
218
+ return action;
219
+ }
195
220
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,qBAAa,kBAAmB,YAAW,WAAW;IAC9C,gBAAgB,CACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC;CAoBvB"}
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,qBAAa,kBAAmB,YAAW,WAAW;IAC9C,gBAAgB,CACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC;CAsCvB"}
@@ -4,6 +4,10 @@ export class OpenRouterProvider {
4
4
  const client = new OpenAI({
5
5
  apiKey,
6
6
  baseURL: 'https://openrouter.ai/api/v1',
7
+ defaultHeaders: {
8
+ 'HTTP-Referer': 'https://github.com/reck98/git-smart',
9
+ 'X-Title': 'git-smart',
10
+ },
7
11
  });
8
12
  const response = await client.chat.completions.create({
9
13
  model,
@@ -16,7 +20,21 @@ export class OpenRouterProvider {
16
20
  const content = response.choices[0]?.message?.content;
17
21
  if (!content)
18
22
  throw new Error('No response from OpenRouter');
19
- return JSON.parse(content);
23
+ const jsonMatch = content.match(/\{[\s\S]*\}/);
24
+ if (!jsonMatch)
25
+ throw new Error('No JSON found in OpenRouter response');
26
+ const parsed = JSON.parse(jsonMatch[0]);
27
+ return {
28
+ summary: Array.isArray(parsed.summary)
29
+ ? parsed.summary.map(String)
30
+ : (typeof parsed.summary === 'string' ? [parsed.summary] : []),
31
+ impact: (typeof parsed.impact === 'string' && ['low', 'medium', 'high'].includes(parsed.impact.toLowerCase())
32
+ ? parsed.impact.toLowerCase()
33
+ : 'medium'),
34
+ messages: Array.isArray(parsed.messages)
35
+ ? parsed.messages.map(String)
36
+ : (typeof parsed.messages === 'string' ? [parsed.messages] : []),
37
+ };
20
38
  }
21
39
  }
22
40
  //# sourceMappingURL=openrouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,gBAAgB,CACpB,YAAoB,EACpB,UAAkB,EAClB,MAAc,EACd,KAAa;QAEb,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM;YACN,OAAO,EAAE,8BAA8B;SACxC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK;YACL,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;aACtC;YACD,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACzC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/providers/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,gBAAgB,CACpB,YAAoB,EACpB,UAAkB,EAClB,MAAc,EACd,KAAa;QAEb,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM;YACN,OAAO,EAAE,8BAA8B;YACvC,cAAc,EAAE;gBACd,cAAc,EAAE,qCAAqC;gBACrD,SAAS,EAAE,WAAW;aACvB;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK;YACL,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;aACtC;YACD,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;SACzC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC5B,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC3G,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC7B,CAAC,CAAC,QAAQ,CAAyB;YACrC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACtC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC7B,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;CACF"}
@@ -7,3 +7,4 @@ go.work
7
7
  *.test
8
8
  *.out
9
9
  vendor/
10
+ .git-smart.json
@@ -11,3 +11,4 @@ build/
11
11
  .settings/
12
12
  .project
13
13
  .classpath
14
+ .git-smart.json
@@ -9,3 +9,4 @@ npm-debug.log*
9
9
  yarn-debug.log*
10
10
  yarn-error.log*
11
11
  .pnpm-debug.log*
12
+ .git-smart.json
@@ -4,3 +4,4 @@ node_modules/
4
4
  *.log
5
5
  .phpunit.cache
6
6
  .php_cs.cache
7
+ .git-smart.json
@@ -11,3 +11,4 @@ venv/
11
11
  dist/
12
12
  build/
13
13
  *.egg
14
+ .git-smart.json
@@ -4,3 +4,4 @@ vendor/bundle
4
4
  .bundled_gems
5
5
  *.lock
6
6
  .env
7
+ .git-smart.json
@@ -1,3 +1,4 @@
1
1
  target/
2
2
  **/*.rs.bk
3
3
  Cargo.lock
4
+ .git-smart.json
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA6EtD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CASpE"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAoFtD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CASpE"}
@@ -14,7 +14,8 @@ coverage/
14
14
  npm-debug.log*
15
15
  yarn-debug.log*
16
16
  yarn-error.log*
17
- .pnpm-debug.log*`,
17
+ .pnpm-debug.log*
18
+ .git-smart.json`,
18
19
  python: `__pycache__/
19
20
  *.py[cod]
20
21
  *$py.class
@@ -27,7 +28,8 @@ venv/
27
28
  .eggs/
28
29
  dist/
29
30
  build/
30
- *.egg`,
31
+ *.egg
32
+ .git-smart.json`,
31
33
  go: `go.work
32
34
  *.exe
33
35
  *.exe~
@@ -36,22 +38,26 @@ build/
36
38
  *.dylib
37
39
  *.test
38
40
  *.out
39
- vendor/`,
41
+ vendor/
42
+ .git-smart.json`,
40
43
  php: `vendor/
41
44
  node_modules/
42
45
  .env
43
46
  *.log
44
47
  .phpunit.cache
45
- .php_cs.cache`,
48
+ .php_cs.cache
49
+ .git-smart.json`,
46
50
  ruby: `*.gem
47
51
  .bundle/
48
52
  vendor/bundle
49
53
  .bundled_gems
50
54
  *.lock
51
- .env`,
55
+ .env
56
+ .git-smart.json`,
52
57
  rust: `target/
53
58
  **/*.rs.bk
54
- Cargo.lock`,
59
+ Cargo.lock
60
+ .git-smart.json`,
55
61
  java: `*.class
56
62
  *.jar
57
63
  *.war
@@ -64,7 +70,8 @@ build/
64
70
  *.iml
65
71
  .settings/
66
72
  .project
67
- .classpath`,
73
+ .classpath
74
+ .git-smart.json`,
68
75
  skip: '',
69
76
  };
70
77
  export function getGitignoreTemplate(option) {
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAoC;IAC3D,IAAI,EAAE;;;;;;;;;;iBAUS;IAEf,MAAM,EAAE;;;;;;;;;;;;MAYJ;IAEJ,EAAE,EAAE;;;;;;;;QAQE;IAEN,GAAG,EAAE;;;;;cAKO;IAEZ,IAAI,EAAE;;;;;KAKH;IAEH,IAAI,EAAE;;WAEG;IAET,IAAI,EAAE;;;;;;;;;;;;WAYG;IACT,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,YAAY,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAoC;IAC3D,IAAI,EAAE;;;;;;;;;;;gBAWQ;IAEd,MAAM,EAAE;;;;;;;;;;;;;gBAaM;IAEd,EAAE,EAAE;;;;;;;;;gBASU;IAEd,GAAG,EAAE;;;;;;gBAMS;IAEd,IAAI,EAAE;;;;;;gBAMQ;IAEd,IAAI,EAAE;;;gBAGQ;IAEd,IAAI,EAAE;;;;;;;;;;;;;gBAaQ;IACd,IAAI,EAAE,EAAE;CACT,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,YAAY,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reck98/git-smart",
3
- "version": "1.0.9",
3
+ "version": "1.1.1",
4
4
  "description": "AI-powered Git workflow assistant that generates production-quality commit messages, summarizes code changes, and streamlines Git operations.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -7,3 +7,4 @@ go.work
7
7
  *.test
8
8
  *.out
9
9
  vendor/
10
+ .git-smart.json
@@ -11,3 +11,4 @@ build/
11
11
  .settings/
12
12
  .project
13
13
  .classpath
14
+ .git-smart.json
@@ -9,3 +9,4 @@ npm-debug.log*
9
9
  yarn-debug.log*
10
10
  yarn-error.log*
11
11
  .pnpm-debug.log*
12
+ .git-smart.json
@@ -4,3 +4,4 @@ node_modules/
4
4
  *.log
5
5
  .phpunit.cache
6
6
  .php_cs.cache
7
+ .git-smart.json
@@ -11,3 +11,4 @@ venv/
11
11
  dist/
12
12
  build/
13
13
  *.egg
14
+ .git-smart.json
@@ -4,3 +4,4 @@ vendor/bundle
4
4
  .bundled_gems
5
5
  *.lock
6
6
  .env
7
+ .git-smart.json
@@ -1,3 +1,4 @@
1
1
  target/
2
2
  **/*.rs.bk
3
3
  Cargo.lock
4
+ .git-smart.json