ownkey 1.0.0 → 1.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 (91) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +256 -81
  3. package/dist/ai/factory.js +2 -2
  4. package/dist/ai/factory.js.map +1 -1
  5. package/dist/ai/gemini.d.ts.map +1 -1
  6. package/dist/ai/gemini.js +13 -3
  7. package/dist/ai/gemini.js.map +1 -1
  8. package/dist/ai/ollama.d.ts +0 -2
  9. package/dist/ai/ollama.d.ts.map +1 -1
  10. package/dist/ai/ollama.js +20 -93
  11. package/dist/ai/ollama.js.map +1 -1
  12. package/dist/ai/openai.d.ts +4 -1
  13. package/dist/ai/openai.d.ts.map +1 -1
  14. package/dist/ai/openai.js +7 -3
  15. package/dist/ai/openai.js.map +1 -1
  16. package/dist/ai/provider.d.ts +4 -0
  17. package/dist/ai/provider.d.ts.map +1 -1
  18. package/dist/ai/provider.js +80 -47
  19. package/dist/ai/provider.js.map +1 -1
  20. package/dist/commands/apply.d.ts.map +1 -1
  21. package/dist/commands/apply.js +82 -47
  22. package/dist/commands/apply.js.map +1 -1
  23. package/dist/commands/config.d.ts.map +1 -1
  24. package/dist/commands/config.js +249 -101
  25. package/dist/commands/config.js.map +1 -1
  26. package/dist/commands/suggest.d.ts.map +1 -1
  27. package/dist/commands/suggest.js +44 -34
  28. package/dist/commands/suggest.js.map +1 -1
  29. package/dist/commands/undo.d.ts.map +1 -1
  30. package/dist/commands/undo.js +35 -25
  31. package/dist/commands/undo.js.map +1 -1
  32. package/dist/config/keychain.d.ts.map +1 -1
  33. package/dist/config/keychain.js +5 -1
  34. package/dist/config/keychain.js.map +1 -1
  35. package/dist/config/manager.d.ts +15 -2
  36. package/dist/config/manager.d.ts.map +1 -1
  37. package/dist/config/manager.js +42 -13
  38. package/dist/config/manager.js.map +1 -1
  39. package/dist/core/apply/engine.d.ts +19 -12
  40. package/dist/core/apply/engine.d.ts.map +1 -1
  41. package/dist/core/apply/engine.js +160 -149
  42. package/dist/core/apply/engine.js.map +1 -1
  43. package/dist/core/apply/index.d.ts +4 -2
  44. package/dist/core/apply/index.d.ts.map +1 -1
  45. package/dist/core/apply/index.js.map +1 -1
  46. package/dist/core/apply/interactive.d.ts +1 -1
  47. package/dist/core/apply/interactive.d.ts.map +1 -1
  48. package/dist/core/apply/interactive.js.map +1 -1
  49. package/dist/core/backup/index.d.ts +2 -1
  50. package/dist/core/backup/index.d.ts.map +1 -1
  51. package/dist/core/backup/index.js.map +1 -1
  52. package/dist/core/backup/manager.d.ts +6 -1
  53. package/dist/core/backup/manager.d.ts.map +1 -1
  54. package/dist/core/backup/manager.js +26 -18
  55. package/dist/core/backup/manager.js.map +1 -1
  56. package/dist/core/diff/applier.d.ts +23 -8
  57. package/dist/core/diff/applier.d.ts.map +1 -1
  58. package/dist/core/diff/applier.js +85 -80
  59. package/dist/core/diff/applier.js.map +1 -1
  60. package/dist/core/diff/index.d.ts +6 -3
  61. package/dist/core/diff/index.d.ts.map +1 -1
  62. package/dist/core/diff/index.js.map +1 -1
  63. package/dist/core/diff/parser.d.ts +2 -0
  64. package/dist/core/diff/parser.d.ts.map +1 -1
  65. package/dist/core/diff/parser.js +15 -5
  66. package/dist/core/diff/parser.js.map +1 -1
  67. package/dist/core/diff/validator.d.ts +3 -8
  68. package/dist/core/diff/validator.d.ts.map +1 -1
  69. package/dist/core/diff/validator.js +13 -71
  70. package/dist/core/diff/validator.js.map +1 -1
  71. package/dist/db/client.d.ts +9 -1
  72. package/dist/db/client.d.ts.map +1 -1
  73. package/dist/db/client.js +64 -86
  74. package/dist/db/client.js.map +1 -1
  75. package/dist/db/migrations/001_init.sql +80 -80
  76. package/dist/db/migrations/002_applies.sql +33 -32
  77. package/dist/index.js +13 -20
  78. package/dist/index.js.map +1 -1
  79. package/dist/storage/local.d.ts +12 -0
  80. package/dist/storage/local.d.ts.map +1 -1
  81. package/dist/storage/local.js +28 -0
  82. package/dist/storage/local.js.map +1 -1
  83. package/dist/types/index.d.ts +7 -0
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/types/index.js +1 -0
  86. package/dist/types/index.js.map +1 -1
  87. package/dist/utils/severity.d.ts +6 -0
  88. package/dist/utils/severity.d.ts.map +1 -0
  89. package/dist/utils/severity.js +19 -0
  90. package/dist/utils/severity.js.map +1 -0
  91. package/package.json +72 -72
@@ -1,144 +1,292 @@
1
1
  import { Command } from 'commander';
2
2
  import inquirer from 'inquirer';
3
3
  import { configManager } from '../config/manager.js';
4
+ import { keychainManager } from '../config/keychain.js';
4
5
  import { logger } from '../utils/logger.js';
6
+ import { AI_PROVIDERS } from '../types/index.js';
7
+ import { OllamaProvider } from '../ai/ollama.js';
8
+ import { AIProviderFactory } from '../ai/factory.js';
5
9
  import chalk from 'chalk';
10
+ const PROVIDER_NAMES = {
11
+ openai: 'OpenAI (or any OpenAI-compatible API)',
12
+ anthropic: 'Anthropic (Claude)',
13
+ gemini: 'Google Gemini',
14
+ ollama: 'Ollama (local, offline, no key)',
15
+ };
6
16
  export const configCommand = new Command('config')
7
- .description('Configure OwnKey CLI (Supabase, AI providers)')
8
- .option('--supabase-url <url>', 'Supabase project URL')
9
- .option('--supabase-key <key>', 'Supabase service role key')
10
- .option('--provider <provider>', 'AI provider (openai, anthropic, ollama)')
11
- .option('--api-key <key>', 'API key for the provider')
12
- .option('--model <model>', 'Model name to use')
17
+ .description('Configure OwnKey (AI provider, optional database)')
18
+ .option('--show', 'Show the current configuration')
19
+ .option('--provider <provider>', `AI provider (${AI_PROVIDERS.join(', ')})`)
20
+ .option('--api-key <key>', 'API key for the provider (not needed for ollama)')
21
+ .option('--model <model>', 'Model name to use (any model your key can access)')
22
+ .option('--endpoint <url>', 'Base URL: Ollama server, or an OpenAI-compatible API for --provider openai')
23
+ .option('--database-url <url>', 'Optional Postgres connection string (Supabase → Connect) for history')
24
+ .option('--supabase-url <url>', 'Alias of --database-url (must be the postgresql:// connection string)')
25
+ .option('--supabase-key <key>', 'Deprecated, no longer needed (the connection string holds the password)')
26
+ .option('--no-database', 'Remove the database and use local storage only')
13
27
  .option('--reset', 'Reset configuration to defaults')
28
+ .option('-y, --yes', 'Skip confirmation prompts')
14
29
  .action(async (options) => {
15
30
  try {
16
- // Handle reset
17
31
  if (options.reset) {
18
- const { confirm } = await inquirer.prompt([
19
- {
20
- type: 'confirm',
21
- name: 'confirm',
22
- message: 'Are you sure you want to reset configuration?',
23
- default: false,
24
- },
25
- ]);
26
- if (confirm) {
27
- await configManager.reset();
28
- logger.success('Configuration reset successfully');
29
- }
32
+ await handleReset(Boolean(options.yes));
30
33
  return;
31
34
  }
32
- // If flags provided, use them
33
- if (options.supabaseUrl || options.provider) {
35
+ const hasFlags = options.show ||
36
+ options.provider ||
37
+ options.apiKey ||
38
+ options.model ||
39
+ options.endpoint ||
40
+ options.databaseUrl ||
41
+ options.supabaseUrl ||
42
+ options.supabaseKey ||
43
+ options.database === false;
44
+ if (hasFlags) {
34
45
  await handleFlagBasedConfig(options);
35
46
  return;
36
47
  }
37
- // Otherwise, run interactive wizard
48
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
49
+ console.log(chalk.yellow('\nThe setup wizard needs an interactive terminal. Use flags instead:\n'));
50
+ printFlagHelp();
51
+ await showConfig();
52
+ process.exitCode = 1;
53
+ return;
54
+ }
38
55
  await runInteractiveWizard();
39
56
  }
40
57
  catch (error) {
41
- logger.error('Configuration failed', error);
42
- process.exit(1);
58
+ const message = error.message;
59
+ if (error.name === 'ExitPromptError') {
60
+ console.log(chalk.yellow('\nSetup cancelled.\n'));
61
+ return;
62
+ }
63
+ logger.error(`Configuration failed: ${message}`);
64
+ process.exitCode = 1;
43
65
  }
44
66
  });
67
+ function printFlagHelp() {
68
+ console.log(chalk.cyan(' ownkey config --provider openai --api-key <key> [--model <model>]'));
69
+ console.log(chalk.cyan(' ownkey config --provider anthropic --api-key <key>'));
70
+ console.log(chalk.cyan(' ownkey config --provider gemini --api-key <key>'));
71
+ console.log(chalk.cyan(' ownkey config --provider ollama [--model qwen2.5-coder] [--endpoint http://localhost:11434]'));
72
+ console.log(chalk.cyan(' ownkey config --database-url "postgresql://..." (optional history in Supabase/Postgres)'));
73
+ console.log(chalk.cyan(' ownkey config --show\n'));
74
+ }
75
+ function fail(message) {
76
+ throw new Error(message);
77
+ }
78
+ function isPostgresUrl(url) {
79
+ return /^postgres(ql)?:\/\//i.test(url);
80
+ }
81
+ async function handleReset(skipConfirm) {
82
+ if (!skipConfirm) {
83
+ if (!process.stdin.isTTY)
84
+ fail('Add --yes to reset without a prompt');
85
+ const { confirm } = await inquirer.prompt([
86
+ { type: 'confirm', name: 'confirm', message: 'Reset configuration to defaults?', default: false },
87
+ ]);
88
+ if (!confirm)
89
+ return;
90
+ }
91
+ await configManager.reset();
92
+ for (const p of AI_PROVIDERS)
93
+ await keychainManager.deleteApiKey(p).catch(() => undefined);
94
+ logger.success('Configuration and stored API keys reset');
95
+ }
45
96
  async function handleFlagBasedConfig(options) {
46
- // Configure Supabase
47
- if (options.supabaseUrl && options.supabaseKey) {
48
- await configManager.setSupabase(options.supabaseUrl, options.supabaseKey);
49
- logger.success('Supabase configured');
97
+ let changed = false;
98
+ // ---- Database (optional)
99
+ const dbUrl = options.databaseUrl ?? options.supabaseUrl;
100
+ if (options.database === false) {
101
+ await configManager.clearDatabase();
102
+ logger.success('Database removed. OwnKey will use local storage only.');
103
+ changed = true;
104
+ }
105
+ else if (dbUrl) {
106
+ if (!isPostgresUrl(dbUrl)) {
107
+ fail('The database needs your Postgres connection string, e.g.\n' +
108
+ ' postgresql://postgres.<ref>:<password>@aws-0-<region>.pooler.supabase.com:5432/postgres\n' +
109
+ ' (Supabase dashboard → Connect → Session pooler). The https://<ref>.supabase.co URL cannot be used.');
110
+ }
111
+ await configManager.setDatabaseUrl(dbUrl);
112
+ logger.success('Database configured. Tables are created automatically on the next command.');
113
+ if (options.supabaseKey) {
114
+ logger.info('--supabase-key is no longer needed and was ignored.');
115
+ }
116
+ changed = true;
50
117
  }
51
- // Configure AI provider
52
- if (options.provider && options.apiKey) {
53
- const provider = options.provider;
54
- await configManager.setProvider(provider, options.apiKey, options.model);
55
- logger.success(`${provider} provider configured`);
118
+ else if (options.supabaseKey) {
119
+ fail('--supabase-key is no longer used. Pass your connection string with --database-url "postgresql://..."');
120
+ }
121
+ // ---- AI provider
122
+ const config = await configManager.load();
123
+ if (options.provider) {
124
+ const provider = String(options.provider).toLowerCase();
125
+ if (!AI_PROVIDERS.includes(provider)) {
126
+ fail(`Unknown provider "${options.provider}". Use one of: ${AI_PROVIDERS.join(', ')}`);
127
+ }
128
+ if (provider !== 'ollama' && !options.apiKey) {
129
+ const existing = await configManager.getApiKey(provider);
130
+ if (!existing) {
131
+ fail(`--api-key is required for ${provider}. Example: ownkey config --provider ${provider} --api-key <key>`);
132
+ }
133
+ }
134
+ if (options.endpoint && provider !== 'ollama' && provider !== 'openai') {
135
+ fail('--endpoint works with --provider ollama or --provider openai (OpenAI-compatible APIs)');
136
+ }
137
+ await configManager.setProvider(provider, options.apiKey, options.model, options.endpoint);
138
+ const model = (await configManager.load()).providers[provider]?.model || AIProviderFactory.getRecommendedModel(provider);
139
+ logger.success(`Provider set to ${provider} (model: ${model})`);
140
+ if (provider === 'ollama') {
141
+ const endpoint = options.endpoint || config.providers.ollama?.endpoint || 'http://localhost:11434';
142
+ if (!(await OllamaProvider.isOllamaRunning(endpoint))) {
143
+ logger.warn(`Ollama is not reachable at ${endpoint}. Start it with: ollama serve`);
144
+ }
145
+ else if (!(await OllamaProvider.isModelInstalled(model, endpoint))) {
146
+ logger.warn(`Model "${model}" is not installed. Run: ollama pull ${model}`);
147
+ }
148
+ }
149
+ changed = true;
150
+ }
151
+ else if (options.apiKey || options.model || options.endpoint) {
152
+ // Update the active provider in place
153
+ const provider = config.activeProvider;
154
+ if (!provider) {
155
+ fail('No provider selected yet. Add --provider <name> (' + AI_PROVIDERS.join(', ') + ')');
156
+ }
157
+ if (options.endpoint && provider !== 'ollama' && provider !== 'openai') {
158
+ fail('--endpoint works with the ollama or openai provider');
159
+ }
160
+ await configManager.setProvider(provider, options.apiKey, options.model, options.endpoint);
161
+ logger.success(`Updated ${provider} settings`);
162
+ changed = true;
163
+ }
164
+ if (options.show || !changed) {
165
+ await showConfig();
56
166
  }
57
167
  }
58
- async function runInteractiveWizard() {
59
- console.log(chalk.cyan('\nšŸ”§ OwnKey Configuration Wizard\n'));
60
- // Step 1: Supabase configuration
61
- console.log(chalk.bold('Step 1: Supabase Database (Optional)'));
62
- console.log(chalk.gray('Supabase stores your analysis history and suggestions.'));
63
- console.log(chalk.gray('You can skip this and run in local-only mode.\n'));
64
- const { configureSupabase } = await inquirer.prompt([
65
- {
66
- type: 'confirm',
67
- name: 'configureSupabase',
68
- message: 'Configure Supabase database?',
69
- default: true,
70
- },
71
- ]);
72
- if (configureSupabase) {
73
- const supabaseAnswers = await inquirer.prompt([
74
- {
75
- type: 'input',
76
- name: 'url',
77
- message: 'Supabase URL:',
78
- validate: (input) => {
79
- if (!input)
80
- return 'URL is required';
81
- if (!input.startsWith('postgresql://')) {
82
- return 'URL should start with postgresql://';
83
- }
84
- return true;
85
- },
86
- },
87
- {
88
- type: 'password',
89
- name: 'key',
90
- message: 'Supabase Service Role Key:',
91
- validate: (input) => (input ? true : 'Service role key is required'),
92
- },
93
- ]);
94
- await configManager.setSupabase(supabaseAnswers.url, supabaseAnswers.key);
95
- logger.success('Supabase configured');
168
+ async function showConfig() {
169
+ const exists = await configManager.exists();
170
+ const config = await configManager.load();
171
+ console.log(chalk.bold('\nOwnKey configuration\n'));
172
+ if (!exists) {
173
+ console.log(chalk.gray(' Not configured yet.\n'));
174
+ return;
96
175
  }
97
- else {
98
- logger.info('Skipping Supabase. You can configure it later.');
176
+ const provider = config.activeProvider;
177
+ console.log(` Provider: ${provider ? chalk.cyan(provider) : chalk.yellow('not set')}`);
178
+ if (provider) {
179
+ const p = config.providers[provider];
180
+ console.log(` Model: ${p?.model || AIProviderFactory.getRecommendedModel(provider)}`);
181
+ if (p?.endpoint)
182
+ console.log(` Endpoint: ${p.endpoint}`);
183
+ if (provider !== 'ollama') {
184
+ const key = await configManager.getApiKey(provider);
185
+ console.log(` API key: ${key ? chalk.green('stored') + chalk.gray(` (…${key.slice(-4)})`) : chalk.red('missing')}`);
186
+ }
187
+ }
188
+ const dbUrl = configManager.getDatabaseUrl(config);
189
+ console.log(` Database: ${dbUrl ? chalk.green('configured') + chalk.gray(` (${redact(dbUrl)})`) : chalk.gray('none (local storage)')}`);
190
+ console.log();
191
+ }
192
+ function redact(url) {
193
+ try {
194
+ const u = new URL(url);
195
+ if (u.password)
196
+ u.password = '****';
197
+ return u.toString();
99
198
  }
100
- // Step 2: AI Provider configuration
101
- console.log(chalk.bold('\nStep 2: AI Provider'));
102
- console.log(chalk.gray('Choose your AI provider for code analysis.\n'));
199
+ catch {
200
+ return 'postgresql://****';
201
+ }
202
+ }
203
+ async function runInteractiveWizard() {
204
+ console.log(chalk.cyan('\nšŸ”§ OwnKey setup\n'));
205
+ // Step 1: AI provider (required)
206
+ console.log(chalk.bold('Step 1: AI provider'));
103
207
  const { provider } = await inquirer.prompt([
104
208
  {
105
209
  type: 'list',
106
210
  name: 'provider',
107
211
  message: 'Choose AI provider:',
108
- choices: [
109
- { name: 'OpenAI (GPT-4)', value: 'openai' },
110
- { name: 'Anthropic (Claude)', value: 'anthropic' },
111
- { name: 'Google Gemini', value: 'gemini' },
112
- { name: 'Ollama (Local)', value: 'ollama' },
113
- ],
212
+ choices: AI_PROVIDERS.map((p) => ({ name: PROVIDER_NAMES[p], value: p })),
114
213
  },
115
214
  ]);
116
- // Get API key (not needed for Ollama)
117
- if (provider !== 'ollama') {
118
- const providerName = provider === 'openai' ? 'OpenAI' : provider === 'anthropic' ? 'Anthropic' : 'Google Gemini';
119
- const { apiKey } = await inquirer.prompt([
215
+ let apiKey;
216
+ let endpoint;
217
+ let model;
218
+ if (provider === 'ollama') {
219
+ ({ endpoint } = await inquirer.prompt([
220
+ { type: 'input', name: 'endpoint', message: 'Ollama URL:', default: 'http://localhost:11434' },
221
+ ]));
222
+ const installed = await OllamaProvider.getAvailableModels(endpoint);
223
+ if (installed.length > 0) {
224
+ ({ model } = await inquirer.prompt([
225
+ { type: 'list', name: 'model', message: 'Model:', choices: installed },
226
+ ]));
227
+ }
228
+ else {
229
+ logger.warn(`No models found at ${endpoint}. Is Ollama running? (ollama serve)`);
230
+ ({ model } = await inquirer.prompt([
231
+ { type: 'input', name: 'model', message: 'Model name:', default: 'qwen2.5-coder' },
232
+ ]));
233
+ }
234
+ }
235
+ else {
236
+ ({ apiKey } = await inquirer.prompt([
120
237
  {
121
238
  type: 'password',
122
239
  name: 'apiKey',
123
- message: `${providerName} API Key:`,
240
+ mask: '*',
241
+ message: `${PROVIDER_NAMES[provider]} API key:`,
124
242
  validate: (input) => (input ? true : 'API key is required'),
125
243
  },
244
+ ]));
245
+ if (provider === 'openai') {
246
+ ({ endpoint } = await inquirer.prompt([
247
+ {
248
+ type: 'input',
249
+ name: 'endpoint',
250
+ message: 'Base URL (leave empty for api.openai.com, or any OpenAI-compatible API):',
251
+ },
252
+ ]));
253
+ endpoint = endpoint?.trim() || undefined;
254
+ }
255
+ ({ model } = await inquirer.prompt([
256
+ {
257
+ type: 'input',
258
+ name: 'model',
259
+ message: 'Model (any model your key can access):',
260
+ default: AIProviderFactory.getRecommendedModel(provider),
261
+ },
262
+ ]));
263
+ }
264
+ await configManager.setProvider(provider, apiKey, model, endpoint);
265
+ logger.success(`${provider} configured (model: ${model})`);
266
+ // Step 2: optional database
267
+ console.log(chalk.bold('\nStep 2: Database (optional)'));
268
+ console.log(chalk.gray('OwnKey works fully on its own with local storage.'));
269
+ console.log(chalk.gray('Add a Supabase/Postgres database only if you want history stored there.\n'));
270
+ const { configureDb } = await inquirer.prompt([
271
+ { type: 'confirm', name: 'configureDb', message: 'Connect a database?', default: false },
272
+ ]);
273
+ if (configureDb) {
274
+ const { url } = await inquirer.prompt([
275
+ {
276
+ type: 'password',
277
+ name: 'url',
278
+ mask: '*',
279
+ message: 'Postgres connection string (Supabase → Connect → Session pooler):',
280
+ validate: (input) => isPostgresUrl(input) ? true : 'Paste the postgresql://... connection string, not the https:// project URL',
281
+ },
126
282
  ]);
127
- await configManager.setProvider(provider, apiKey);
283
+ await configManager.setDatabaseUrl(url);
284
+ logger.success('Database configured. Tables are created automatically on first use.');
128
285
  }
129
- else {
130
- // For Ollama, just set it as active provider
131
- const config = await configManager.load();
132
- config.activeProvider = 'ollama';
133
- await configManager.save(config);
134
- logger.success('Ollama configured (using local endpoint)');
135
- }
136
- // Step 3: Test connection (optional)
137
- console.log(chalk.bold('\nāœ“ Configuration Complete!\n'));
138
- console.log(chalk.green('You can now use OwnKey to analyze your codebase.\n'));
286
+ console.log(chalk.bold.green('\nāœ“ Setup complete\n'));
139
287
  console.log(chalk.cyan('Next steps:'));
140
- console.log(chalk.gray(' 1. ownkey scan <path> - Scan your project'));
141
- console.log(chalk.gray(' 2. ownkey suggest <path> - Get AI suggestions'));
142
- console.log(chalk.gray(' 3. ownkey apply <id> - Apply a suggestion\n'));
288
+ console.log(chalk.gray(' 1. ownkey scan . Scan your project'));
289
+ console.log(chalk.gray(' 2. ownkey suggest . Get AI suggestions'));
290
+ console.log(chalk.gray(' 3. ownkey apply <id> Apply one (ownkey undo to revert)\n'));
143
291
  }
144
292
  //# sourceMappingURL=config.js.map
@@ -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":"suggest.d.ts","sourceRoot":"","sources":["../../src/commands/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,cAAc,SAmLrB,CAAC"}
1
+ {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/commands/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,cAAc,SAiLrB,CAAC"}
@@ -8,6 +8,8 @@ import { dbOps } from '../db/operations.js';
8
8
  import { dbClient } from '../db/client.js';
9
9
  import chalk from 'chalk';
10
10
  import { localStorage } from '../storage/local.js';
11
+ import { configManager } from '../config/manager.js';
12
+ import { meetsSeverity, parseSeverity } from '../utils/severity.js';
11
13
  export const suggestCommand = new Command('suggest')
12
14
  .description('Generate AI-powered suggestions for your code')
13
15
  .argument('[path]', 'Path to analyze', '.')
@@ -17,6 +19,17 @@ export const suggestCommand = new Command('suggest')
17
19
  .action(async (path, options) => {
18
20
  try {
19
21
  const targetPath = resolve(path);
22
+ const minSeverity = parseSeverity(options.severity);
23
+ const typeFilter = options.type?.toLowerCase();
24
+ const config = await configManager.load();
25
+ if (!(await configManager.exists()) || !config.activeProvider) {
26
+ console.log(chalk.yellow('\nāš ļø No AI provider configured.\n'));
27
+ console.log('Set one up with:');
28
+ console.log(chalk.cyan(' ownkey config (interactive)'));
29
+ console.log(chalk.cyan(' ownkey config --provider openai --api-key <key>'));
30
+ console.log(chalk.cyan(' ownkey config --provider ollama (local, no key)\n'));
31
+ process.exit(1);
32
+ }
20
33
  if (!existsSync(targetPath)) {
21
34
  logger.error(`Path does not exist: ${targetPath}`);
22
35
  process.exit(1);
@@ -64,6 +77,10 @@ export const suggestCommand = new Command('suggest')
64
77
  const suggestions = [];
65
78
  let count = 0;
66
79
  for await (const suggestion of provider.analyze(context)) {
80
+ if (typeFilter && suggestion.type !== typeFilter)
81
+ continue;
82
+ if (!meetsSeverity(suggestion.severity, minSeverity))
83
+ continue;
67
84
  count++;
68
85
  suggestions.push(suggestion);
69
86
  // Display suggestion
@@ -76,56 +93,47 @@ export const suggestCommand = new Command('suggest')
76
93
  console.log(` ${suggestion.content}`);
77
94
  console.log();
78
95
  }
79
- // Step 6: Store suggestions (hybrid: database + local file)
80
- let storedIds = [];
81
- // Try database first (if connected)
82
- if (dbClient.isConnected()) {
96
+ // Step 6: Store. Local storage is always written and holds the IDs apply uses;
97
+ // the optional database mirrors them for history.
98
+ let localStored = [];
99
+ try {
100
+ localStored = await localStorage.saveSuggestions(targetPath, projectName, suggestions);
101
+ }
102
+ catch (error) {
103
+ logger.warn(`Failed to save suggestions locally: ${error.message}`);
104
+ }
105
+ if (dbClient.isConnected() && suggestions.length > 0) {
83
106
  try {
84
- logger.verbose('Storing suggestions in database...');
85
107
  let project = await dbOps.getProjectByPath(targetPath);
86
108
  if (!project) {
87
109
  project = await dbOps.createProject(projectName, targetPath);
88
110
  }
89
111
  if (project) {
90
112
  const run = await dbOps.createRun(project.id, `suggest ${path}`);
91
- for (const suggestion of suggestions) {
92
- try {
93
- const stored = await dbOps.createSuggestion(project.id, suggestion);
94
- if (stored && run) {
95
- await dbOps.linkRunSuggestion(run.id, stored.id);
96
- storedIds.push(stored.id);
97
- }
98
- }
99
- catch (err) {
100
- logger.warn(`Failed to store suggestion: ${err.message}`);
113
+ for (let i = 0; i < suggestions.length; i++) {
114
+ const stored = await dbOps.createSuggestion(project.id, suggestions[i]);
115
+ if (stored && run)
116
+ await dbOps.linkRunSuggestion(run.id, stored.id);
117
+ if (stored && localStored[i]) {
118
+ await localStorage.updateSuggestion(localStored[i].id, { dbId: stored.id });
101
119
  }
102
120
  }
103
121
  if (run) {
104
122
  await dbOps.updateRunStatus(run.id, 'completed', `Generated ${suggestions.length} suggestions`);
105
123
  }
124
+ logger.verbose('Saved suggestions to database');
106
125
  }
107
- logger.success('Saved to database');
108
126
  }
109
127
  catch (error) {
110
- logger.warn('Database save failed, using local storage only');
111
- logger.debug(`Database error: ${error.message}`);
128
+ logger.warn(`Database save failed (${error.message}); suggestions are saved locally.`);
112
129
  }
113
130
  }
114
- // Always save to local file (cache or primary storage)
115
- try {
116
- const localStored = await localStorage.saveSuggestions(targetPath, projectName, suggestions);
117
- if (!dbClient.isConnected()) {
118
- // Local-only mode: show IDs to user
119
- storedIds = localStored.map(s => s.id);
120
- logger.success('Saved locally');
121
- console.log(chalk.gray(`\n šŸ’¾ Suggestion IDs: ${storedIds.slice(0, 3).join(', ')}${storedIds.length > 3 ? '...' : ''}`));
122
- }
123
- else {
124
- logger.verbose('Also cached locally for quick access');
125
- }
126
- }
127
- catch (error) {
128
- logger.warn(`Failed to save locally: ${error.message}`);
131
+ if (localStored.length > 0) {
132
+ console.log(chalk.bold('\nšŸ†” Suggestion IDs\n'));
133
+ localStored.forEach((s, i) => {
134
+ const applicable = s.diff && s.diff.trim() ? chalk.green('apply-ready') : chalk.gray('advice only');
135
+ console.log(` [${i + 1}] ${chalk.cyan(s.id)} ${applicable}`);
136
+ });
129
137
  }
130
138
  // Summary
131
139
  console.log(chalk.bold('\n✨ Analysis Complete!\n'));
@@ -148,7 +156,9 @@ export const suggestCommand = new Command('suggest')
148
156
  console.log(` Info: ${chalk.gray(bySeverity.info)}`);
149
157
  }
150
158
  console.log();
151
- logger.success('Suggestions generated successfully');
159
+ if (localStored.some((s) => s.diff && s.diff.trim())) {
160
+ console.log(chalk.cyan(' Next: ownkey apply <id> (or ownkey apply --all)\n'));
161
+ }
152
162
  }
153
163
  catch (error) {
154
164
  logger.error('Suggest failed', error);
@@ -1 +1 @@
1
- {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/commands/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC/C,WAAW,CAAC,+CAA+C,CAAC;KAC5D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAC1C,MAAM,CAAC,eAAe,EAAE,8DAA8D,CAAC;KACvF,MAAM,CAAC,uBAAuB,EAAE,sDAAsD,CAAC;KACvF,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,EAAE,IAAI,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpD,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAExC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAExE,6BAA6B;QAC7B,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAEpE,wBAAwB;QACxB,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;QACjE,MAAM,OAAO,GAAgB;YACzB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE;gBACT,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,cAAc,CAAC,MAAM;aACnC;SACJ,CAAC;QAEF,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,CAAC;QAE1D,kBAAkB;QAClB,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,0BAA0B;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,KAAK,EAAE,CAAC;YACR,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,qBAAqB;YACrB,MAAM,aAAa,GACf,UAAU,CAAC,QAAQ,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM;gBAChE,CAAC,CAAC,KAAK,CAAC,GAAG;gBACX,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,QAAQ;oBAC9B,CAAC,CAAC,KAAK,CAAC,MAAM;oBACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAEzB,OAAO,CAAC,GAAG,CACP,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,UAAU,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CACjI,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,4DAA4D;QAC5D,IAAI,SAAS,GAAa,EAAE,CAAC;QAE7B,oCAAoC;QACpC,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;gBAErD,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBACjE,CAAC;gBAED,IAAI,OAAO,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;oBAEjE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;wBACnC,IAAI,CAAC;4BACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;4BACpE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gCAChB,MAAM,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gCACjD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BAC9B,CAAC;wBACL,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACX,MAAM,CAAC,IAAI,CAAC,+BAAgC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;wBACzE,CAAC;oBACL,CAAC;oBAED,IAAI,GAAG,EAAE,CAAC;wBACN,MAAM,KAAK,CAAC,eAAe,CACvB,GAAG,CAAC,EAAE,EACN,WAAW,EACX,aAAa,WAAW,CAAC,MAAM,cAAc,CAChD,CAAC;oBACN,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gBAC9D,MAAM,CAAC,KAAK,CAAC,mBAAoB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAE7F,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,oCAAoC;gBACpC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9H,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEvE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACP,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7C,OAAO,GAAG,CAAC;YACf,CAAC,EACD,EAA4B,CAC/B,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,IAAI,UAAU,CAAC,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxF,IAAI,UAAU,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChF,IAAI,UAAU,CAAC,MAAM;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvF,IAAI,UAAU,CAAC,GAAG;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/E,IAAI,UAAU,CAAC,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAc,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACP,4CAA4C;QAC5C,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAChC,CAAC;IACL,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/commands/suggest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"undo.d.ts","sourceRoot":"","sources":["../../src/commands/undo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAiClB,CAAC"}
1
+ {"version":3,"file":"undo.d.ts","sourceRoot":"","sources":["../../src/commands/undo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,WAAW,SAuClB,CAAC"}