ownkey 0.7.0 → 0.8.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
@@ -10,148 +10,72 @@
10
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
11
  [![Downloads](https://img.shields.io/npm/dm/ownkey.svg)](https://www.npmjs.com/package/ownkey)
12
12
 
13
- *Intelligent code analysis powered by OpenAI, Anthropic Claude 4.5, and Google Gemini • Your code never leaves your machine*
13
+ *Intelligent code analysis powered by AI • Your code never leaves your machine*
14
14
 
15
- [Quick Start](#-quick-start) • [Features](#-features) • [Installation](#-installation) • [Documentation](#-commands)
15
+ [Quick Start](#-quick-start) • [Features](#-features) • [Installation](#-installation) • [Commands](#-commands)
16
16
 
17
17
  </div>
18
18
 
19
19
  ---
20
20
 
21
- > ✨ **v0.7.0** - Apply System! Auto-fix code with AI suggestions, automatic backups, and rollback support.
21
+ > ✨ **v0.8.0** - Now with Ollama! Run completely offline with local LLMs.
22
22
 
23
23
  ## 🚀 Quick Start
24
24
 
25
25
  ```bash
26
- # Install globally
26
+ # Install
27
27
  npm install -g ownkey
28
28
 
29
- # Configure with your preferred AI provider
30
- ownkey config --provider gemini --api-key YOUR_GEMINI_KEY
31
- # OR
32
- ownkey config --provider openai --api-key YOUR_OPENAI_KEY
33
- # OR
34
- ownkey config --provider anthropic --api-key YOUR_ANTHROPIC_KEY
29
+ # Configure (choose your provider)
30
+ ownkey config
35
31
 
36
- # Analyze your codebase
32
+ # Analyze your code
37
33
  ownkey suggest .
38
34
 
39
- # Apply AI suggestions to fix code
35
+ # Apply AI suggestions (auto-fix)
40
36
  ownkey apply <suggestion-id>
41
37
  ```
42
38
 
43
- **Get API Keys:**
44
- - **Gemini:** [Google AI Studio](https://aistudio.google.com/app/apikey) (Free tier available)
45
- - **OpenAI:** [OpenAI Platform](https://platform.openai.com/api-keys)
46
- - **Anthropic:** [Anthropic Console](https://console.anthropic.com/)
47
-
48
39
  ## ✨ Features
49
40
 
50
- <table>
51
- <tr>
52
- <td width="50%">
53
-
54
- ### 🤖 Multi-Provider AI
55
- Choose between OpenAI, Claude 4.5, or Gemini
56
-
57
- ### 🔒 Privacy-First
58
- Your code never leaves your machine - all analysis is local
59
-
60
- ### 💾 Optional Cloud Sync
61
- Store history in your own Supabase database
62
-
63
- ### 🔧 Auto-Fix Code
64
- Apply AI suggestions with automatic backups
65
-
66
- </td>
67
- <td width="50%">
41
+ - 🤖 **4 AI Providers** - Google Gemini, OpenAI, Anthropic Claude, Ollama
42
+ - 🔒 **Privacy-First** - Your code never leaves your machine
43
+ - 🏠 **Offline Mode** - Use Ollama for 100% local analysis
44
+ - 🔧 **Auto-Fix** - Apply AI suggestions with automatic backups
45
+ - ↩️ **Rollback** - Undo any changes instantly
46
+ - 💾 **Optional Cloud Sync** - Store history in your own Supabase database
47
+ - 🔐 **Secure** - API keys stored in OS keychain or encrypted
48
+ - 📂 **Smart Scanning** - Respects .gitignore and custom patterns
68
49
 
69
- ### 🔐 Secure Storage
70
- API keys stored in OS keychain or encrypted
71
-
72
- ### 📂 Smart Scanning
73
- Respects .gitignore and custom patterns
74
-
75
- ### 🎯 15+ AI Models
76
- GPT-4, Claude Opus 4.5, Gemini 2.5, and more
77
-
78
- ### ↩️ Rollback Support
79
- Undo any applied changes instantly
80
-
81
- </td>
82
- </tr>
83
- </table>
84
-
85
- ## ⚡ AI Provider Support
50
+ ## ⚡ AI Providers
86
51
 
87
52
  <div align="center">
88
53
 
89
- | Provider | Status | Models | Get API Key |
90
- |:--------:|:------:|:------:|:-----------:|
91
- | **🟢 Google Gemini** | ✅ **Available** | Gemini 2.5 Pro, Flash, 2.0 | [Get Key](https://aistudio.google.com/app/apikey) |
92
- | **🔵 OpenAI** | ✅ **Available** | GPT-4 Turbo, GPT-4, GPT-3.5 | [Get Key](https://platform.openai.com/api-keys) |
93
- | **🟣 Anthropic** | ✅ **Available** | Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 | [Get Key](https://console.anthropic.com/) |
94
- | **🟠 Ollama** | 🔜 Coming Soon | Any local model | v0.8.0 |
95
-
96
- **New in v0.7.0:** Apply System with automatic backups and rollback!
54
+ | Provider | Status | Best For | API Key Required |
55
+ |:--------:|:------:|:--------:|:----------------:|
56
+ | **🟢 Google Gemini** | ✅ Available | Fast & accurate | [Get Key](https://aistudio.google.com/app/apikey) |
57
+ | **🔵 OpenAI** | ✅ Available | GPT models | [Get Key](https://platform.openai.com/api-keys) |
58
+ | **🟣 Anthropic Claude** | ✅ Available | Advanced reasoning | [Get Key](https://console.anthropic.com/) |
59
+ | **🟠 Ollama** | ✅ Available | Offline & free | [Install Ollama](https://ollama.ai) |
97
60
 
98
61
  </div>
99
62
 
100
63
  ## 🛠 Installation
101
64
 
102
- ### Via npm (Recommended)
103
-
104
65
  ```bash
105
66
  npm install -g ownkey
106
67
  ```
107
68
 
108
- ### From Source
109
-
110
- ```bash
111
- git clone https://github.com/ArpitK24/OwnKey.git
112
- cd ownkey-cli
113
- npm install
114
- npm run build
115
- npm link
116
- ```
117
-
118
- ## ⚙️ Configuration
119
-
120
- ### Interactive Setup
121
-
122
- ```bash
123
- ownkey config
124
- ```
125
-
126
- ### Using Flags
127
-
128
- ```bash
129
- # Configure Gemini
130
- ownkey config --provider gemini --api-key YOUR_GEMINI_API_KEY
131
-
132
- # Optional: Configure Supabase for history tracking
133
- ownkey config --supabase-url https://xxx.supabase.co --supabase-key YOUR_KEY
134
-
135
- # Use different Gemini model
136
- ownkey config --provider gemini --model gemini-2.5-flash
137
- ```
138
-
139
- ### Getting a Gemini API Key
140
-
141
- 1. Visit [Google AI Studio](https://aistudio.google.com/app/apikey)
142
- 2. Create a new API key
143
- 3. Run `ownkey config --provider gemini --api-key YOUR_KEY`
144
-
145
69
  ## 📖 Commands
146
70
 
147
71
  ### `ownkey config`
148
72
 
149
- Configure Supabase database and AI providers.
73
+ Configure AI provider and database (optional).
150
74
 
151
75
  ```bash
152
76
  ownkey config # Interactive wizard
77
+ ownkey config --provider gemini # Set provider
153
78
  ownkey config --reset # Reset to defaults
154
- ownkey config --provider gemini --api-key YOUR_KEY
155
79
  ```
156
80
 
157
81
  ### `ownkey scan [path]`
@@ -161,8 +85,6 @@ Scan a project directory.
161
85
  ```bash
162
86
  ownkey scan . # Scan current directory
163
87
  ownkey scan ./src # Scan specific folder
164
- ownkey scan --max-file-size 1mb # Custom file size limit
165
- ownkey scan --ignore "*.test.js" # Additional ignore patterns
166
88
  ```
167
89
 
168
90
  ### `ownkey suggest [path]`
@@ -171,122 +93,116 @@ Generate AI-powered code suggestions.
171
93
 
172
94
  ```bash
173
95
  ownkey suggest . # Analyze current directory
174
- ownkey suggest ./src # Analyze specific folder
175
- ownkey suggest --max-files 20 # Limit files analyzed
176
96
  ownkey suggest --local-only # Skip database storage
97
+ ownkey suggest --max-files 20 # Limit files analyzed
177
98
  ```
178
99
 
179
- **Output:**
180
- ```
181
- 🔍 Analyzing code...
182
-
183
- [1] bug (high) in src/auth.ts
184
- Potential null pointer dereference
100
+ ### `ownkey apply <suggestion-id>`
185
101
 
186
- [2] security (critical) in db/query.ts
187
- SQL injection vulnerability detected
102
+ Apply an AI-generated suggestion with automatic backup.
188
103
 
189
- ✨ Analysis Complete!
190
- Total suggestions: 12
104
+ ```bash
105
+ ownkey apply abc123 # Interactive mode
106
+ ownkey apply abc123 --auto # Auto-apply
107
+ ownkey apply abc123 --dry-run # Preview only
191
108
  ```
192
109
 
193
- ### `ownkey apply <suggestion-id>` *(New in v0.7.0)*
110
+ ### `ownkey undo [backup-id]`
194
111
 
195
- Apply an AI-generated suggestion to your code with automatic backups.
112
+ Undo a previously applied suggestion.
196
113
 
197
114
  ```bash
198
- ownkey apply abc123 # Interactive mode (default)
199
- ownkey apply abc123 --auto # Auto-apply without confirmation
200
- ownkey apply abc123 --dry-run # Preview changes without applying
201
- ownkey apply abc123 --force # Apply even if validation fails
202
- ownkey apply abc123 --no-backup # Skip backup (not recommended)
115
+ ownkey undo # Interactive - choose from list
116
+ ownkey undo abc123 # Undo specific backup
117
+ ownkey undo --list # List recent applies
203
118
  ```
204
119
 
205
- **Features:**
206
- - ✅ Automatic backups before applying
207
- - ✅ Interactive confirmation with diff preview
208
- - ✅ Validation to prevent conflicts
209
- - ✅ Automatic rollback on failure
120
+ ## 🟠 Using Ollama (Offline Mode)
210
121
 
211
- ### `ownkey undo [backup-id]` *(New in v0.7.0)*
122
+ Run OwnKey completely offline with local LLMs!
212
123
 
213
- Undo a previously applied suggestion and restore from backup.
124
+ ### Setup
214
125
 
215
- ```bash
216
- ownkey undo # Interactive - choose from list
217
- ownkey undo abc123 # Undo specific backup
218
- ownkey undo --list # List recent applies
219
- ownkey undo --all # Undo all applies from today
220
- ```
126
+ 1. **Install Ollama**
127
+ - Windows: Download from [ollama.ai](https://ollama.ai)
128
+ - macOS: `brew install ollama`
129
+ - Linux: `curl https://ollama.ai/install.sh | sh`
221
130
 
222
- ### `ownkey apply <id>` *(Coming in v0.7.0)*
131
+ 2. **Pull a Model**
132
+ ```bash
133
+ ollama pull deepseek-coder # Recommended for code
134
+ # OR
135
+ ollama pull codellama # Alternative
136
+ ```
223
137
 
224
- Apply a suggestion to your code.
138
+ 3. **Configure OwnKey**
139
+ ```bash
140
+ ownkey config --provider ollama
141
+ ```
225
142
 
226
- ```bash
227
- ownkey apply abc123
228
- ownkey apply abc123 --no-backup
229
- ```
143
+ 4. **Use Offline**
144
+ ```bash
145
+ ownkey suggest . # Works without internet!
146
+ ```
230
147
 
231
- ## 🔒 Security
148
+ ### Recommended Models
232
149
 
233
- - **API Keys**: Stored in OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service)
234
- - **Fallback**: Encrypted local storage if keychain unavailable
235
- - **No Remote Storage**: Your source code is never uploaded to any server
236
- - **Supabase**: Optional, user-controlled database for history only
150
+ - **deepseek-coder** - Best for code analysis
151
+ - **codellama** - Meta's code model
152
+ - **llama3** - General purpose
153
+ - **qwen-coder** - Alibaba's code model
237
154
 
238
- ## 🗂 Project Structure
155
+ ## 🔐 Security
239
156
 
240
- ```
241
- ~/.ownkey/
242
- ├── config.json # Configuration file
243
- ├── keys.enc # Encrypted API keys (fallback)
244
- └── logs/ # Log files
245
- ```
157
+ - API keys stored in OS keychain (macOS/Linux) or encrypted (Windows)
158
+ - Code never sent to cloud (except when using cloud providers)
159
+ - Ollama runs 100% locally
160
+ - Optional database (your own Supabase instance)
246
161
 
247
- ## 🧪 Development
162
+ ## 📊 What OwnKey Detects
248
163
 
249
- ```bash
250
- # Install dependencies
251
- npm install
164
+ - 🐛 **Bugs** - Logic errors, off-by-one errors, null pointers
165
+ - 🔒 **Security** - SQL injection, XSS, insecure dependencies
166
+ - ⚡ **Performance** - Inefficient algorithms, memory leaks
167
+ - ✅ **Tests** - Missing test coverage
168
+ - 📝 **Documentation** - Missing comments, unclear code
169
+ - 🎨 **Style** - Code quality improvements
252
170
 
253
- # Run in development mode
254
- npm run dev
171
+ ## 🌐 Database (Optional)
255
172
 
256
- # Build
257
- npm run build
173
+ OwnKey can store analysis history in your own Supabase database.
258
174
 
259
- # Run tests
260
- npm test
175
+ ```bash
176
+ ownkey config --supabase-url YOUR_URL --supabase-key YOUR_KEY
261
177
  ```
262
178
 
263
- ## 📝 Roadmap
179
+ Or run in local-only mode:
264
180
 
265
- - [x] v0.2.0 - CLI skeleton & configuration
266
- - [x] v0.3.0 - Config system with keychain
267
- - [x] v0.4.0 - File scanner
268
- - [x] **v0.5.0 - Gemini AI integration** ← Current
269
- - [ ] v0.6.0 - OpenAI & Anthropic providers
270
- - [ ] v0.7.0 - Apply/diff system
271
- - [ ] v0.8.0 - Ollama (local LLM) support
272
- - [ ] v0.9.0 - Testing & polish
273
- - [ ] v1.0.0 - Stable release
181
+ ```bash
182
+ ownkey suggest . --local-only
183
+ ```
274
184
 
275
185
  ## 🤝 Contributing
276
186
 
277
- Contributions are welcome! Please feel free to submit a Pull Request.
187
+ Contributions welcome! Please read our contributing guidelines.
278
188
 
279
189
  ## 📄 License
280
190
 
281
- MIT © 2026 OwnKey
191
+ MIT License - see LICENSE file for details
282
192
 
283
193
  ## 🔗 Links
284
194
 
285
- - [GitHub Repository](https://github.com/ArpitK24/OwnKey)
286
- - [Issue Tracker](https://github.com/ArpitK24/OwnKey/issues)
287
- - [npm Package](https://www.npmjs.com/package/ownkey)
288
- - [Get Gemini API Key](https://aistudio.google.com/app/apikey)
195
+ - [Documentation](https://ownkey.dev) *(coming soon)*
196
+ - [GitHub](https://github.com/ArpitK24/OwnKey)
197
+ - [npm](https://www.npmjs.com/package/ownkey)
198
+ - [Issues](https://github.com/ArpitK24/OwnKey/issues)
289
199
 
290
200
  ---
291
201
 
292
- **Built with ❤️ for developers who value privacy and AI-powered productivity**
202
+ <div align="center">
203
+
204
+ Made with ❤️ by the OwnKey team
205
+
206
+ **Privacy-first • AI-powered • Developer-friendly**
207
+
208
+ </div>
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAQ3C;;GAEG;AACH,qBAAa,iBAAiB;IAC1B;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;IA0ClD;;OAEG;WACU,YAAY,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBjE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAepD;;OAEG;WACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAmBvF"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAS3C;;GAEG;AACH,qBAAa,iBAAiB;IAC1B;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;IA6ClD;;OAEG;WACU,YAAY,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBjE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAepD;;OAEG;WACU,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAmBvF"}
@@ -1,6 +1,7 @@
1
1
  import { GeminiProvider } from './gemini.js';
2
2
  import { OpenAIProvider } from './openai.js';
3
3
  import { AnthropicProvider } from './anthropic.js';
4
+ import { OllamaProvider } from './ollama.js';
4
5
  import { ConfigError } from '../types/index.js';
5
6
  import { configManager } from '../config/manager.js';
6
7
  import { logger } from '../utils/logger.js';
@@ -39,7 +40,10 @@ export class AIProviderFactory {
39
40
  const anthropicModel = config.providers.anthropic?.model || 'claude-opus-4-5-20251101';
40
41
  return new AnthropicProvider(apiKey, anthropicModel);
41
42
  case 'ollama':
42
- throw new ConfigError('Ollama provider not yet implemented (coming in v0.7.0)');
43
+ // Ollama doesn't require API key - runs locally
44
+ const ollamaModel = config.providers.ollama?.model || 'deepseek-coder:latest';
45
+ const ollamaBaseUrl = config.providers.ollama?.endpoint || 'http://localhost:11434';
46
+ return new OllamaProvider(undefined, ollamaModel, ollamaBaseUrl);
43
47
  default:
44
48
  throw new ConfigError(`Unknown provider: ${provider}`);
45
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { AIProvider } from './provider.js';
2
+ import type { CodeContext, Suggestion } from '../types/index.js';
3
+ /**
4
+ * Ollama AI Provider
5
+ * Supports local LLMs via Ollama (DeepSeek Coder, CodeLlama, etc.)
6
+ * No API key required - runs completely offline
7
+ */
8
+ export declare class OllamaProvider extends AIProvider {
9
+ private baseUrl;
10
+ constructor(apiKey?: string, model?: string, baseUrl?: string);
11
+ getDefaultModel(): string;
12
+ testConnection(): Promise<boolean>;
13
+ analyze(context: CodeContext): AsyncGenerator<Suggestion>;
14
+ private buildPrompt;
15
+ private parseResponse;
16
+ /**
17
+ * Get available Ollama models
18
+ * Lists models installed on the local Ollama instance
19
+ */
20
+ static getAvailableModels(baseUrl?: string): Promise<string[]>;
21
+ /**
22
+ * Check if Ollama is running
23
+ */
24
+ static isOllamaRunning(baseUrl?: string): Promise<boolean>;
25
+ /**
26
+ * Check if a specific model is installed
27
+ */
28
+ static isModelInstalled(model: string, baseUrl?: string): Promise<boolean>;
29
+ }
30
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/ai/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGjE;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAK7D,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAYjC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;IAsChE,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,aAAa;IAyCrB;;;OAGG;WACU,kBAAkB,CAAC,OAAO,GAAE,MAAiC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAe9F;;OAEG;WACU,eAAe,CAAC,OAAO,GAAE,MAAiC,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1F;;OAEG;WACU,gBAAgB,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,MAAiC,GAC3C,OAAO,CAAC,OAAO,CAAC;CAItB"}
@@ -0,0 +1,175 @@
1
+ import { AIProvider } from './provider.js';
2
+ import { logger } from '../utils/logger.js';
3
+ /**
4
+ * Ollama AI Provider
5
+ * Supports local LLMs via Ollama (DeepSeek Coder, CodeLlama, etc.)
6
+ * No API key required - runs completely offline
7
+ */
8
+ export class OllamaProvider extends AIProvider {
9
+ baseUrl;
10
+ constructor(apiKey, model, baseUrl) {
11
+ super(apiKey, model);
12
+ this.baseUrl = baseUrl || 'http://localhost:11434';
13
+ }
14
+ getDefaultModel() {
15
+ return 'deepseek-coder:latest';
16
+ }
17
+ async testConnection() {
18
+ try {
19
+ const response = await fetch(`${this.baseUrl}/api/tags`, {
20
+ method: 'GET',
21
+ });
22
+ return response.ok;
23
+ }
24
+ catch (error) {
25
+ logger.verbose(`Ollama connection test failed: ${error.message}`);
26
+ return false;
27
+ }
28
+ }
29
+ async *analyze(context) {
30
+ const prompt = this.buildPrompt(context);
31
+ try {
32
+ const response = await fetch(`${this.baseUrl}/api/generate`, {
33
+ method: 'POST',
34
+ headers: {
35
+ 'Content-Type': 'application/json',
36
+ },
37
+ body: JSON.stringify({
38
+ model: this.model,
39
+ prompt: prompt,
40
+ stream: false,
41
+ }),
42
+ });
43
+ if (!response.ok) {
44
+ throw new Error(`Ollama API error: ${response.status} ${response.statusText}`);
45
+ }
46
+ const data = await response.json();
47
+ const suggestions = this.parseResponse(data.response, context);
48
+ for (const suggestion of suggestions) {
49
+ yield suggestion;
50
+ }
51
+ }
52
+ catch (error) {
53
+ if (error.code === 'ECONNREFUSED') {
54
+ throw new Error('Cannot connect to Ollama. Please ensure Ollama is running:\n' +
55
+ ' Start Ollama: ollama serve\n' +
56
+ ' Or check if Ollama is installed: https://ollama.ai');
57
+ }
58
+ throw error;
59
+ }
60
+ }
61
+ buildPrompt(context) {
62
+ const fileContents = context.files
63
+ .map((file) => `File: ${file.path}\n\`\`\`\n${file.content}\n\`\`\``)
64
+ .join('\n\n');
65
+ return `You are a code analysis expert. Analyze the following code and identify issues.
66
+
67
+ Project: ${context.projectInfo.name}
68
+ Files to analyze: ${context.projectInfo.fileCount}
69
+
70
+ ${fileContents}
71
+
72
+ Please analyze this code and provide suggestions for:
73
+ - Bugs and potential errors
74
+ - Security vulnerabilities
75
+ - Performance issues
76
+ - Code quality improvements
77
+ - Missing tests
78
+ - Documentation gaps
79
+
80
+ For each issue found, provide:
81
+ 1. Type (bug, security, performance, test, documentation, style)
82
+ 2. Severity (critical, high, medium, low, info)
83
+ 3. File path
84
+ 4. Description of the issue
85
+ 5. Suggested fix
86
+
87
+ Format your response as a JSON array of suggestions:
88
+ [
89
+ {
90
+ "type": "bug",
91
+ "severity": "high",
92
+ "filePath": "path/to/file.js",
93
+ "content": "Description of the issue and suggested fix"
94
+ }
95
+ ]`;
96
+ }
97
+ parseResponse(response, context) {
98
+ try {
99
+ // Try to extract JSON from response
100
+ const jsonMatch = response.match(/\[[\s\S]*\]/);
101
+ if (!jsonMatch) {
102
+ // Fallback: create generic suggestion
103
+ return [
104
+ {
105
+ type: 'style',
106
+ severity: 'info',
107
+ filePath: context.files[0]?.path || 'unknown',
108
+ content: response.substring(0, 200),
109
+ diff: '',
110
+ rationale: 'AI response could not be parsed',
111
+ },
112
+ ];
113
+ }
114
+ const suggestions = JSON.parse(jsonMatch[0]);
115
+ return suggestions.map((s) => ({
116
+ type: s.type || 'info',
117
+ severity: s.severity || 'info',
118
+ filePath: s.filePath || context.files[0]?.path || 'unknown',
119
+ content: s.content || s.description || 'No description provided',
120
+ }));
121
+ }
122
+ catch (error) {
123
+ logger.verbose(`Failed to parse Ollama response: ${error.message}`);
124
+ // Return generic suggestion if parsing fails
125
+ return [
126
+ {
127
+ type: 'style',
128
+ severity: 'info',
129
+ filePath: context.files[0]?.path || 'unknown',
130
+ content: response.substring(0, 200),
131
+ diff: '',
132
+ rationale: 'AI response parsing failed',
133
+ },
134
+ ];
135
+ }
136
+ }
137
+ /**
138
+ * Get available Ollama models
139
+ * Lists models installed on the local Ollama instance
140
+ */
141
+ static async getAvailableModels(baseUrl = 'http://localhost:11434') {
142
+ try {
143
+ const response = await fetch(`${baseUrl}/api/tags`);
144
+ if (!response.ok) {
145
+ return [];
146
+ }
147
+ const data = await response.json();
148
+ return data.models?.map((m) => m.name) || [];
149
+ }
150
+ catch (error) {
151
+ logger.verbose(`Failed to get Ollama models: ${error.message}`);
152
+ return [];
153
+ }
154
+ }
155
+ /**
156
+ * Check if Ollama is running
157
+ */
158
+ static async isOllamaRunning(baseUrl = 'http://localhost:11434') {
159
+ try {
160
+ const response = await fetch(`${baseUrl}/api/tags`);
161
+ return response.ok;
162
+ }
163
+ catch {
164
+ return false;
165
+ }
166
+ }
167
+ /**
168
+ * Check if a specific model is installed
169
+ */
170
+ static async isModelInstalled(model, baseUrl = 'http://localhost:11434') {
171
+ const models = await this.getAvailableModels(baseUrl);
172
+ return models.includes(model);
173
+ }
174
+ }
175
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/ai/ollama.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;AAWpC,eAAO,MAAM,cAAc,SAoJrB,CAAC"}
1
+ {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/commands/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,cAAc,SAkJrB,CAAC"}
@@ -123,10 +123,8 @@ export const suggestCommand = new Command('suggest')
123
123
  process.exit(1);
124
124
  }
125
125
  finally {
126
- // Close database connection to prevent UV handle errors
127
- if (dbClient.isConnected()) {
128
- await dbClient.disconnect();
129
- }
126
+ // Always close database connection to prevent UV handle errors
127
+ await dbClient.disconnect();
130
128
  }
131
129
  });
132
130
  //# sourceMappingURL=suggest.js.map
@@ -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;AAE1B,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,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YAErD,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;gBAEjE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;oBACpE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;wBAChB,MAAM,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;gBAED,IAAI,GAAG,EAAE,CAAC;oBACN,MAAM,KAAK,CAAC,eAAe,CACvB,GAAG,CAAC,EAAE,EACN,WAAW,EACX,aAAa,WAAW,CAAC,MAAM,cAAc,CAChD,CAAC;gBACN,CAAC;YACL,CAAC;QACL,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,wDAAwD;QACxD,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":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAYlD,qBAAa,cAAc;IACvB,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,EAAE,CAA2C;IACrD,OAAO,CAAC,WAAW,CAAkB;IAE/B,OAAO,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,KAAK,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC;IAUnC,WAAW,IAAI,OAAO;IAItB,eAAe,IAAI,OAAO;IAI1B,SAAS,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI;YAIjC,aAAa;YAuDb,YAAY;CAsB7B;AAED,eAAO,MAAM,QAAQ,gBAAuB,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAYlD,qBAAa,cAAc;IACvB,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,EAAE,CAA2C;IACrD,OAAO,CAAC,WAAW,CAAkB;IAE/B,OAAO,CAAC,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,KAAK,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC;IAUnC,WAAW,IAAI,OAAO;IAItB,eAAe,IAAI,OAAO;IAI1B,SAAS,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,GAAG,IAAI;YAIjC,aAAa;YAuDb,YAAY;CAsB7B;AAED,eAAO,MAAM,QAAQ,gBAAuB,CAAC"}
package/dist/db/client.js CHANGED
@@ -59,11 +59,17 @@ export class DatabaseClient {
59
59
  }
60
60
  }
61
61
  async disconnect() {
62
- if (this.sql) {
63
- await this.sql.end();
64
- this.sql = null;
65
- this.db = null;
66
- logger.verbose('Database connection closed');
62
+ try {
63
+ if (this.sql) {
64
+ await this.sql.end();
65
+ this.sql = null;
66
+ this.db = null;
67
+ logger.verbose('Database connection closed');
68
+ }
69
+ }
70
+ catch (error) {
71
+ // Ignore errors during disconnect
72
+ logger.verbose(`Error during disconnect: ${error.message}`);
67
73
  }
68
74
  }
69
75
  getDb() {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ const program = new Command();
14
14
  program
15
15
  .name('ownkey')
16
16
  .description('Local-first AI coding agent for intelligent codebase analysis')
17
- .version('0.7.0');
17
+ .version('0.8.0');
18
18
  // Global options
19
19
  program.option('--local-only', 'Run without database persistence');
20
20
  program.option('--verbose', 'Enable verbose logging');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ownkey",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Local-first AI coding agent with Google Gemini integration for intelligent codebase analysis",
5
5
  "main": "dist/index.js",
6
6
  "bin": {