ownkey 1.0.2 → 1.1.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.
Files changed (75) hide show
  1. package/README.md +107 -30
  2. package/dist/ai/anthropic.d.ts.map +1 -1
  3. package/dist/ai/anthropic.js +15 -18
  4. package/dist/ai/anthropic.js.map +1 -1
  5. package/dist/ai/factory.d.ts.map +1 -1
  6. package/dist/ai/factory.js +7 -6
  7. package/dist/ai/factory.js.map +1 -1
  8. package/dist/ai/gemini.d.ts.map +1 -1
  9. package/dist/ai/gemini.js +13 -7
  10. package/dist/ai/gemini.js.map +1 -1
  11. package/dist/ai/ollama.d.ts.map +1 -1
  12. package/dist/ai/ollama.js +2 -1
  13. package/dist/ai/ollama.js.map +1 -1
  14. package/dist/ai/openai.d.ts +2 -0
  15. package/dist/ai/openai.d.ts.map +1 -1
  16. package/dist/ai/openai.js +44 -33
  17. package/dist/ai/openai.js.map +1 -1
  18. package/dist/ai/provider.d.ts +2 -0
  19. package/dist/ai/provider.d.ts.map +1 -1
  20. package/dist/ai/provider.js +11 -0
  21. package/dist/ai/provider.js.map +1 -1
  22. package/dist/commands/apply.d.ts.map +1 -1
  23. package/dist/commands/apply.js +41 -2
  24. package/dist/commands/apply.js.map +1 -1
  25. package/dist/commands/review.d.ts +3 -0
  26. package/dist/commands/review.d.ts.map +1 -0
  27. package/dist/commands/review.js +161 -0
  28. package/dist/commands/review.js.map +1 -0
  29. package/dist/commands/suggest.d.ts.map +1 -1
  30. package/dist/commands/suggest.js +3 -37
  31. package/dist/commands/suggest.js.map +1 -1
  32. package/dist/commands/undo.d.ts.map +1 -1
  33. package/dist/commands/undo.js +12 -28
  34. package/dist/commands/undo.js.map +1 -1
  35. package/dist/config/defaults.d.ts.map +1 -1
  36. package/dist/config/defaults.js +5 -4
  37. package/dist/config/defaults.js.map +1 -1
  38. package/dist/config/keychain.d.ts +5 -0
  39. package/dist/config/keychain.d.ts.map +1 -1
  40. package/dist/config/keychain.js +44 -11
  41. package/dist/config/keychain.js.map +1 -1
  42. package/dist/config/models.d.ts +12 -0
  43. package/dist/config/models.d.ts.map +1 -0
  44. package/dist/config/models.js +19 -0
  45. package/dist/config/models.js.map +1 -0
  46. package/dist/core/backup/index.d.ts +1 -0
  47. package/dist/core/backup/index.d.ts.map +1 -1
  48. package/dist/core/backup/index.js +1 -0
  49. package/dist/core/backup/index.js.map +1 -1
  50. package/dist/core/backup/rollback.d.ts +6 -0
  51. package/dist/core/backup/rollback.d.ts.map +1 -0
  52. package/dist/core/backup/rollback.js +15 -0
  53. package/dist/core/backup/rollback.js.map +1 -0
  54. package/dist/core/persist.d.ts +8 -0
  55. package/dist/core/persist.d.ts.map +1 -0
  56. package/dist/core/persist.js +56 -0
  57. package/dist/core/persist.js.map +1 -0
  58. package/dist/core/review/git.d.ts +33 -0
  59. package/dist/core/review/git.d.ts.map +1 -0
  60. package/dist/core/review/git.js +89 -0
  61. package/dist/core/review/git.js.map +1 -0
  62. package/dist/core/review/report.d.ts +16 -0
  63. package/dist/core/review/report.d.ts.map +1 -0
  64. package/dist/core/review/report.js +110 -0
  65. package/dist/core/review/report.js.map +1 -0
  66. package/dist/index.js +3 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/types/index.d.ts +2 -0
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/types/index.js.map +1 -1
  71. package/dist/utils/logger.d.ts +3 -0
  72. package/dist/utils/logger.d.ts.map +1 -1
  73. package/dist/utils/logger.js +12 -7
  74. package/dist/utils/logger.js.map +1 -1
  75. package/package.json +10 -3
package/README.md CHANGED
@@ -2,18 +2,17 @@
2
2
  <img src="https://raw.githubusercontent.com/ArpitK24/OwnKey/main/assets/logo.png" alt="OwnKey" width="420">
3
3
  </p>
4
4
 
5
- <h3 align="center">The local-first AI coding agent that runs on your own keys.</h3>
5
+ <h3 align="center">The local-first AI code reviewer that runs on your own keys.</h3>
6
6
 
7
7
  <p align="center">
8
- Scan a codebase, get reviewable suggestions as unified diffs, apply them with automatic backups, and undo in one command.<br>
8
+ Review your changes before you commit, gate pull requests in CI, and apply fixes as verified, reversible diffs.<br>
9
9
  OpenAI, Anthropic, Google Gemini, or fully offline with Ollama. No account, no telemetry, no required database.
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="https://www.npmjs.com/package/ownkey"><img src="https://img.shields.io/npm/v/ownkey?style=flat-square&color=111111&label=npm" alt="npm version"></a>
14
- <a href="https://www.npmjs.com/package/ownkey"><img src="https://img.shields.io/npm/dm/ownkey?style=flat-square&color=111111" alt="npm downloads"></a>
15
- <img src="https://img.shields.io/node/v/ownkey?style=flat-square&color=111111" alt="node version">
16
- <a href="https://github.com/ArpitK24/OwnKey/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/ownkey?style=flat-square&color=111111" alt="license"></a>
13
+ <a href="https://www.npmjs.com/package/ownkey"><img src="https://img.shields.io/npm/v/ownkey.svg" alt="npm version"></a>
14
+ <img src="https://img.shields.io/node/v/ownkey.svg" alt="node version">
15
+ <a href="https://github.com/ArpitK24/OwnKey/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="license"></a>
17
16
  </p>
18
17
 
19
18
  <p align="center">
@@ -27,18 +26,22 @@
27
26
 
28
27
  ## Overview
29
28
 
30
- OwnKey is a command-line coding agent for developers who want AI code review without handing their workflow to a hosted service. It reads your project locally, sends only the files under analysis to the model provider you choose, and returns structured suggestions: bugs, security issues, performance problems, refactors, and more, each with a severity, a rationale, and a patch you can inspect before anything touches disk.
29
+ OwnKey is a command-line code reviewer for developers who want AI review without handing their workflow to a hosted service. It reads your repository locally, sends only the code under review to the model provider you choose, and returns structured findings: bugs, security issues, performance problems, refactors, and more, each with a severity, a rationale, and a patch you can inspect before anything touches disk.
31
30
 
32
31
  ```text
33
- scan -> suggest -> apply -> undo
34
- map review patch restore
32
+ review -> apply --verify -> undo
33
+ diff patch + test restore
35
34
  ```
36
35
 
36
+ Use `ownkey review` on what you just changed, in a pre-commit hook, or as a GitHub Action on every pull request. Use `ownkey suggest` for a full audit of any folder.
37
+
37
38
  | | |
38
39
  |---|---|
39
40
  | **Bring your own key** | Use your existing OpenAI, Anthropic, or Gemini account, or any OpenAI-compatible endpoint. You pay your provider directly; OwnKey adds nothing in between. |
40
41
  | **Fully offline option** | Point OwnKey at a local Ollama server and no code leaves your machine. |
41
- | **Review before write** | Every suggestion carries a unified diff. `apply` previews it and asks for confirmation; `--dry-run` never writes. |
42
+ | **Reviews what changed** | `review` looks at staged changes, uncommitted work, or a branch against its base, and reports only on those lines. |
43
+ | **Built for CI** | SARIF for GitHub code scanning, Markdown for PR comments, JSON for tooling, and `--fail-on` exit codes for gating. |
44
+ | **Verified fixes** | `apply --verify "npm test"` runs your checks after each fix and reverts it automatically if they fail. |
42
45
  | **Safe by default** | Each apply creates a backup first. `undo` restores modified files and removes files the apply created. |
43
46
  | **Standalone** | Suggestions and backups live in `~/.ownkey`. A Postgres or Supabase database is optional, for teams that want shared history. |
44
47
 
@@ -70,38 +73,41 @@ ownkey config --provider ollama --model qwen2.5-coder:latest
70
73
 
71
74
  Any model your key can access works. Set it with `--model`; OwnKey does not maintain a model allowlist.
72
75
 
73
- **2. Analyze a project**
76
+ **2. Review your changes**
74
77
 
75
78
  ```bash
76
- cd my-project
77
- ownkey scan . # see what will be analyzed
78
- ownkey suggest . # generate suggestions
79
+ cd my-repo
80
+ ownkey review # staged changes, or uncommitted work if nothing is staged
81
+ ownkey review --base origin/main # everything on this branch
79
82
  ```
80
83
 
81
- **3. Review and apply**
84
+ **3. Apply fixes, verified**
82
85
 
83
86
  ```bash
84
87
  ownkey apply # list pending suggestions
85
88
  ownkey apply <id> --dry-run # preview the diff, write nothing
86
- ownkey apply <id> # preview, confirm, apply with backup
89
+ ownkey apply <id> --verify "npm test" # apply, run tests, revert automatically on failure
87
90
  ownkey apply --all --severity high # apply everything rated high or critical
88
91
  ```
89
92
 
90
93
  **4. Undo if needed**
91
94
 
92
95
  ```bash
96
+ ownkey undo --last # restore the most recent apply
93
97
  ownkey undo --list # recent applies
94
- ownkey undo <backup-id> # restore that apply
95
98
  ```
96
99
 
100
+ For a whole-project audit of any folder, git or not, use `ownkey suggest .`
101
+
97
102
  ## Commands
98
103
 
99
104
  | Command | Purpose |
100
105
  |---|---|
101
106
  | `ownkey config` | Set the AI provider, model, endpoint, and optional database. Run with no flags for an interactive wizard. |
107
+ | `ownkey review [path]` | Review git changes: staged, uncommitted, or a branch against its base. |
108
+ | `ownkey suggest [path]` | Audit a whole folder and store suggestions. |
102
109
  | `ownkey scan [path]` | List the files OwnKey would analyze, honoring `.gitignore` and `.ownkeyignore`. |
103
- | `ownkey suggest [path]` | Analyze files and store suggestions for review. |
104
- | `ownkey apply [id]` | Apply one suggestion, or all pending ones with `--all`. |
110
+ | `ownkey apply [id]` | Apply one suggestion, or all pending ones with `--all`, optionally verified. |
105
111
  | `ownkey undo [backup-id]` | Restore files from a backup created by `apply`. |
106
112
 
107
113
  <details>
@@ -121,6 +127,23 @@ ownkey undo <backup-id> # restore that apply
121
127
  | `--reset` | Reset configuration to defaults. |
122
128
  | `-y, --yes` | Skip confirmation prompts. |
123
129
 
130
+ #### `ownkey review [path]`
131
+
132
+ | Option | Description |
133
+ |---|---|
134
+ | `--staged` | Review only staged changes. Default: staged if any, otherwise uncommitted changes. |
135
+ | `--base <ref>` | Review everything since the merge base with this ref, such as `origin/main`. |
136
+ | `--severity <level>` | Minimum severity to report. |
137
+ | `--type <type>` | Only report this type. |
138
+ | `--format <format>` | `text` (default), `markdown`, `json`, or `sarif`. |
139
+ | `--output <file>` | Write the report to a file instead of stdout. |
140
+ | `--sarif-output <file>` | Also write a SARIF report. |
141
+ | `--markdown-output <file>` | Also write a Markdown report. |
142
+ | `--fail-on <level>` | Exit with code 1 when any finding is at or above this severity. |
143
+ | `--max-files <n>` | Maximum changed files to review. Default `25`. |
144
+
145
+ Exit codes: `0` success, `1` the `--fail-on` gate tripped, `2` the review could not run.
146
+
124
147
  #### `ownkey scan [path]`
125
148
 
126
149
  | Option | Description |
@@ -144,6 +167,7 @@ ownkey undo <backup-id> # restore that apply
144
167
  | `--auto` | Apply without the confirmation prompt (for scripts and CI). |
145
168
  | `--all` | Apply every pending suggestion for the project. |
146
169
  | `--severity <level>` | With `--all`, only apply at or above this severity. |
170
+ | `--verify <command>` | Run this command after each apply; revert automatically if it fails. |
147
171
  | `--project <path>` | Project the suggestions belong to. Default `.`. |
148
172
  | `--force` | Apply matching hunks even if others do not match. |
149
173
  | `--no-backup` | Skip the backup. Not recommended. |
@@ -152,6 +176,7 @@ ownkey undo <backup-id> # restore that apply
152
176
 
153
177
  | Option | Description |
154
178
  |---|---|
179
+ | `--last` | Undo the most recent apply. |
155
180
  | `--list` | List recent applies. |
156
181
  | `--all` | Undo all applies from today. |
157
182
  | `-y, --yes` | Skip the confirmation prompt. |
@@ -164,13 +189,15 @@ ownkey undo <backup-id> # restore that apply
164
189
 
165
190
  ## Providers
166
191
 
167
- | Provider | Setup | Notes |
192
+ | Provider | Setup | Default model |
168
193
  |---|---|---|
169
- | OpenAI | `--provider openai --api-key <key>` | Any chat model on your account. |
170
- | Anthropic | `--provider anthropic --api-key <key>` | Any Claude model on your account. |
171
- | Google Gemini | `--provider gemini --api-key <key>` | Keys from Google AI Studio. |
172
- | Ollama | `--provider ollama [--endpoint http://host:11434]` | Runs entirely on your hardware. No key. |
173
- | OpenAI-compatible | `--provider openai --endpoint <base-url> --api-key <key>` | OpenRouter, Groq, LM Studio, vLLM, and similar. |
194
+ | OpenAI | `--provider openai --api-key <key>` | `gpt-6.1-sol` |
195
+ | Anthropic | `--provider anthropic --api-key <key>` | `claude-sonnet-5-5` |
196
+ | Google Gemini | `--provider gemini --api-key <key>` | `gemini-3.8-flash` |
197
+ | Ollama | `--provider ollama [--endpoint http://host:11434]` | `qwen2.5-coder:latest` |
198
+ | OpenAI-compatible | `--provider openai --endpoint <base-url> --api-key <key>` | Set with `--model` |
199
+
200
+ Defaults are mid-tier models chosen for review quality per dollar. Override with `--model`, for example `gpt-6-astra` or `claude-opus-5-5` for the deepest review. OwnKey sends each model the request shape it expects, including reasoning-era OpenAI models and Claude's adaptive thinking.
174
201
 
175
202
  ```bash
176
203
  # Example: OpenRouter through the OpenAI-compatible endpoint
@@ -180,13 +207,63 @@ ownkey config --provider openai \
180
207
  --model anthropic/claude-sonnet-4.5
181
208
  ```
182
209
 
210
+ ## GitHub Action
211
+
212
+ Review every pull request, post a summary comment, and surface findings in the Security tab.
213
+
214
+ ```yaml
215
+ # .github/workflows/ownkey.yml
216
+ name: OwnKey review
217
+ on: pull_request
218
+
219
+ permissions:
220
+ contents: read
221
+ pull-requests: write
222
+ security-events: write
223
+
224
+ jobs:
225
+ review:
226
+ runs-on: ubuntu-latest
227
+ steps:
228
+ - uses: actions/checkout@v4
229
+ with:
230
+ fetch-depth: 0
231
+ - uses: ArpitK24/OwnKey@v1
232
+ with:
233
+ provider: anthropic
234
+ api-key: ${{ secrets.ANTHROPIC_API_KEY }}
235
+ fail-on: high
236
+ ```
237
+
238
+ | Input | Default | Description |
239
+ |---|---|---|
240
+ | `provider` | required | `openai`, `anthropic`, `gemini`, or `ollama`. |
241
+ | `api-key` | | Provider key, from a repository secret. |
242
+ | `model` | provider default | Any model your key can access. |
243
+ | `endpoint` | | Ollama URL or OpenAI-compatible base URL. |
244
+ | `base` | PR base branch | Ref to review against. |
245
+ | `severity` | `low` | Minimum severity to report. |
246
+ | `fail-on` | | Fail the job at or above this severity. |
247
+ | `comment` | `true` | Post or update one summary comment on the PR. |
248
+ | `upload-sarif` | `true` | Upload findings to GitHub code scanning. |
249
+ | `version` | `latest` | OwnKey version from npm. |
250
+
251
+ ### Pre-commit hook
252
+
253
+ ```bash
254
+ # .git/hooks/pre-commit
255
+ #!/bin/sh
256
+ exec ownkey review --staged --fail-on high
257
+ ```
258
+
183
259
  ## How apply works
184
260
 
185
261
  1. The suggestion's unified diff is parsed and matched against the current file. Small line-number drift is tolerated; hunks whose context does not match are rejected rather than guessed.
186
262
  2. The diff is shown and you confirm (skipped with `--auto`, not available without a terminal unless `--auto` is set).
187
263
  3. A backup of every affected file is written to `~/.ownkey/backups`.
188
264
  4. Changes are written, preserving the file's line endings. New files proposed by the model are created.
189
- 5. The suggestion is marked applied, so it cannot be applied twice by accident.
265
+ 5. With `--verify`, your command runs in the project. If it exits non-zero, the backup is restored immediately.
266
+ 6. The suggestion is marked applied, so it cannot be applied twice by accident.
190
267
 
191
268
  `ownkey undo` reverses step 4 exactly, including removing files that the apply created.
192
269
 
@@ -196,7 +273,7 @@ ownkey config --provider openai \
196
273
  |---|---|
197
274
  | `~/.ownkey/config.json` | Provider, model, endpoint, and database settings. |
198
275
  | OS keychain | API keys, by default. |
199
- | `~/.ownkey/keys.enc` | Encrypted key file, used when no keychain is available or `OWNKEY_NO_KEYCHAIN=1` is set. |
276
+ | `~/.ownkey/keys.enc` | AES-256-GCM encrypted key file, used when no keychain is available or `OWNKEY_NO_KEYCHAIN=1` is set. Encrypted with a random per-install secret in `~/.ownkey/master.key`; both files are readable only by you. |
200
277
  | `~/.ownkey/storage/` | Suggestions, kept for 7 days and capped at 100 per project. |
201
278
  | `~/.ownkey/backups/` | File backups created by `apply`. |
202
279
 
@@ -225,8 +302,8 @@ Every interactive step has a flag, and OwnKey never blocks waiting for input whe
225
302
  ```bash
226
303
  export OWNKEY_NO_KEYCHAIN=1
227
304
  ownkey config --provider openai --api-key "$OPENAI_API_KEY" --yes
228
- ownkey suggest . --severity high
229
- ownkey apply --all --severity high --auto
305
+ ownkey review --base origin/main --format sarif --output ownkey.sarif --fail-on high
306
+ ownkey apply --all --severity high --auto --verify "npm test"
230
307
  ```
231
308
 
232
309
  ## Development
@@ -239,7 +316,7 @@ npm run build
239
316
  npm test
240
317
  ```
241
318
 
242
- The test suite runs every command end to end against a mock Ollama server, plus unit tests for the diff engine and response parsing. Database tests are opt-in:
319
+ The test suite runs every command end to end against a mock Ollama server, including `review` against real git repositories, plus unit tests for the diff engine, report formats, response parsing, and provider request shapes. Database tests are opt-in:
243
320
 
244
321
  ```bash
245
322
  OWNKEY_TEST_DATABASE_URL=postgresql://user:pass@localhost:5432/postgres npm test
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/ai/anthropic.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,iBAAkB,SAAQ,UAAU;IAC7C,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAgB;gBAEtB,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAI3C,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAkCjC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;IAmDhE;;;;OAIG;WACU,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAsBtE"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/ai/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIjE;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC7C,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAgB;gBAEtB,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAI3C,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAkCjC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;IAwDhE;;;;OAIG;WACU,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAUtE"}
@@ -1,5 +1,6 @@
1
1
  import { AIProvider } from './provider.js';
2
2
  import { logger } from '../utils/logger.js';
3
+ import { DEFAULT_MODELS } from '../config/models.js';
3
4
  /**
4
5
  * Anthropic Claude AI Provider
5
6
  * Supports all Claude models: Opus, Sonnet, and Haiku variants
@@ -12,7 +13,7 @@ export class AnthropicProvider extends AIProvider {
12
13
  super(apiKey, model);
13
14
  }
14
15
  getDefaultModel() {
15
- return 'claude-opus-4-5-20251101';
16
+ return DEFAULT_MODELS.anthropic;
16
17
  }
17
18
  async testConnection() {
18
19
  try {
@@ -59,8 +60,9 @@ export class AnthropicProvider extends AIProvider {
59
60
  },
60
61
  body: JSON.stringify({
61
62
  model: this.model,
62
- max_tokens: 8192,
63
- temperature: 0.3,
63
+ // No temperature: Claude 5.x models reject sampling parameters.
64
+ // Adaptive thinking shares this budget, so leave headroom.
65
+ max_tokens: 32000,
64
66
  system: this.getSystemPrompt(),
65
67
  messages: [
66
68
  {
@@ -76,7 +78,11 @@ export class AnthropicProvider extends AIProvider {
76
78
  throw new Error(`Anthropic API error: ${errorData.error?.message || response.statusText}`);
77
79
  }
78
80
  const data = await response.json();
79
- const content = data.content[0]?.text;
81
+ // Adaptive thinking can put thinking blocks before the text; read text blocks only.
82
+ const content = (data.content || [])
83
+ .filter((b) => b?.type === 'text' && typeof b.text === 'string')
84
+ .map((b) => b.text)
85
+ .join('\n');
80
86
  if (!content) {
81
87
  throw new Error('No content in Anthropic response');
82
88
  }
@@ -97,22 +103,13 @@ export class AnthropicProvider extends AIProvider {
97
103
  * Returns known models - users can specify any model name in config
98
104
  */
99
105
  static async getAvailableModels(_apiKey) {
100
- // Return known models as of Jan 2026
106
+ // Known models as of Oct 2026
101
107
  // Users can use ANY model name - this list is just for convenience
102
108
  return [
103
- // Claude 4.5 (Latest - Nov 2025)
104
- 'claude-opus-4-5-20251101', // Opus 4.5 (Recommended - Best for coding)
105
- 'claude-sonnet-4-5-20251022', // Sonnet 4.5 (Balanced)
106
- 'claude-haiku-4-5-20251022', // Haiku 4.5 (Fast)
107
- // Claude 3.5 (Legacy)
108
- 'claude-3-5-sonnet-20241022', // Sonnet 3.5
109
- 'claude-3-5-sonnet-20240620', // Sonnet 3.5 (Older)
110
- // Claude 3 (Legacy)
111
- 'claude-3-opus-20240229', // Opus 3
112
- 'claude-3-sonnet-20240229', // Sonnet 3
113
- 'claude-3-haiku-20240307', // Haiku 3
114
- // Future models (5.x, 6.x, etc.) will work automatically
115
- // Users just need to specify the model name in config
109
+ 'claude-sonnet-5-5', // balanced default
110
+ 'claude-opus-5-5', // deepest review
111
+ 'claude-haiku-5-5', // fastest, cheapest
112
+ 'claude-fable-5-1',
116
113
  ];
117
114
  }
118
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/ai/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/ai/anthropic.ts"],"names":[],"mappings":"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"}
@@ -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;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
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C;;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,3 +1,4 @@
1
+ import { DEFAULT_MODELS } from '../config/models.js';
1
2
  import { GeminiProvider } from './gemini.js';
2
3
  import { OpenAIProvider } from './openai.js';
3
4
  import { AnthropicProvider } from './anthropic.js';
@@ -31,17 +32,17 @@ export class AIProviderFactory {
31
32
  if (!apiKey) {
32
33
  throw new ConfigError('OpenAI API key not found. Run: ownkey config');
33
34
  }
34
- const openaiModel = config.providers.openai?.model || 'gpt-4-turbo';
35
+ const openaiModel = config.providers.openai?.model || DEFAULT_MODELS.openai;
35
36
  return new OpenAIProvider(apiKey, openaiModel, config.providers.openai?.endpoint);
36
37
  case 'anthropic':
37
38
  if (!apiKey) {
38
39
  throw new ConfigError('Anthropic API key not found. Run: ownkey config');
39
40
  }
40
- const anthropicModel = config.providers.anthropic?.model || 'claude-opus-4-5-20251101';
41
+ const anthropicModel = config.providers.anthropic?.model || DEFAULT_MODELS.anthropic;
41
42
  return new AnthropicProvider(apiKey, anthropicModel);
42
43
  case 'ollama':
43
44
  // Ollama doesn't require API key - runs locally
44
- const ollamaModel = config.providers.ollama?.model || 'deepseek-coder:latest';
45
+ const ollamaModel = config.providers.ollama?.model || DEFAULT_MODELS.ollama;
45
46
  const ollamaBaseUrl = config.providers.ollama?.endpoint || 'http://localhost:11434';
46
47
  return new OllamaProvider(undefined, ollamaModel, ollamaBaseUrl);
47
48
  default:
@@ -76,11 +77,11 @@ export class AIProviderFactory {
76
77
  case 'gemini':
77
78
  return GeminiProvider.getRecommendedModel();
78
79
  case 'openai':
79
- return 'gpt-4-turbo';
80
+ return DEFAULT_MODELS.openai;
80
81
  case 'anthropic':
81
- return 'claude-opus-4-5-20251101';
82
+ return DEFAULT_MODELS.anthropic;
82
83
  case 'ollama':
83
- return 'deepseek-coder:latest';
84
+ return DEFAULT_MODELS.ollama;
84
85
  default:
85
86
  return '';
86
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC1B;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc;QACvB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,WAAW,CAAC,sDAAsD,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,YAAY,QAAQ,cAAc,CAAC,CAAC;QAEnD,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,QAAQ;gBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,MAAM,IAAI,WAAW,CAAC,8CAA8C,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,cAAc,CAAC,mBAAmB,EAAE,CAAC;gBAC3F,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAEnD,KAAK,QAAQ;gBACT,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,MAAM,IAAI,WAAW,CAAC,8CAA8C,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,aAAa,CAAC;gBACpE,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEtF,KAAK,WAAW;gBACZ,IAAI,CAAC,MAAM,EAAE,CAAC;oBACV,MAAM,IAAI,WAAW,CAAC,iDAAiD,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,IAAI,0BAA0B,CAAC;gBACvF,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAEzD,KAAK,QAAQ;gBACT,gDAAgD;gBAChD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,uBAAuB,CAAC;gBAC9E,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,IAAI,wBAAwB,CAAC;gBACpF,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;YAErE;gBACI,MAAM,IAAI,WAAW,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAoB;QAC1C,IAAI,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAc,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAgB;QACvC,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,QAAQ;gBACT,OAAO,cAAc,CAAC,mBAAmB,EAAE,CAAC;YAChD,KAAK,QAAQ;gBACT,OAAO,aAAa,CAAC;YACzB,KAAK,WAAW;gBACZ,OAAO,0BAA0B,CAAC;YACtC,KAAK,QAAQ;gBACT,OAAO,uBAAuB,CAAC;YACnC;gBACI,OAAO,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,MAAc;QAC5D,IAAI,CAAC;YACD,QAAQ,QAAQ,EAAE,CAAC;gBACf,KAAK,QAAQ;oBACT,OAAO,MAAM,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC3D,KAAK,QAAQ;oBACT,OAAO,MAAM,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC3D,KAAK,WAAW;oBACZ,OAAO,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAC9D,KAAK,QAAQ;oBACT,OAAO,MAAM,cAAc,CAAC,kBAAkB,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;gBACxE;oBACI,OAAO,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,GAAG,EAAE,KAAc,CAAC,CAAC;YACxE,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/ai/factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/ai/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AAyB7F;;;GAGG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,OAAO,CAAC,OAAO,CAAkD;IAEjE,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC;IAsE1F;;OAEG;WACU,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgClE;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,MAAM;CAGvC"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/ai/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AA2B7F;;;GAGG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,OAAO,CAAC,OAAO,CAAkD;IAEjE,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,CAAC,UAAU,CAAC;IA2E1F;;OAEG;WACU,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgClE;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,MAAM;CAGvC"}
package/dist/ai/gemini.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { AIProvider } from './provider.js';
2
2
  import { AIProviderError } from '../types/index.js';
3
3
  import { logger } from '../utils/logger.js';
4
+ import { DEFAULT_MODELS } from '../config/models.js';
4
5
  /**
5
6
  * Google Gemini AI Provider
6
7
  * Supports: gemini-1.5-pro, gemini-1.5-flash, gemini-pro
@@ -8,7 +9,7 @@ import { logger } from '../utils/logger.js';
8
9
  export class GeminiProvider extends AIProvider {
9
10
  baseUrl = 'https://generativelanguage.googleapis.com/v1';
10
11
  getDefaultModel() {
11
- return 'gemini-2.5-pro';
12
+ return DEFAULT_MODELS.gemini;
12
13
  }
13
14
  async testConnection() {
14
15
  try {
@@ -41,8 +42,10 @@ export class GeminiProvider extends AIProvider {
41
42
  },
42
43
  ],
43
44
  generationConfig: {
44
- temperature: options?.temperature || 0.3,
45
- maxOutputTokens: options?.maxTokens || 8192,
45
+ // Gemini 3.x is tuned for its default temperature; thinking shares the output budget.
46
+ ...(options?.temperature !== undefined ? { temperature: options.temperature } : {}),
47
+ maxOutputTokens: options?.maxTokens || 32768,
48
+ responseMimeType: 'application/json',
46
49
  },
47
50
  };
48
51
  const response = await fetch(`${this.baseUrl}/models/${this.model}:generateContent`, {
@@ -63,7 +66,10 @@ export class GeminiProvider extends AIProvider {
63
66
  throw new AIProviderError('No response from Gemini');
64
67
  }
65
68
  const candidate = data.candidates[0];
66
- const responseText = candidate.content.parts.map((p) => p.text).join('');
69
+ const responseText = (candidate.content?.parts || [])
70
+ .filter((p) => !p.thought && typeof p.text === 'string')
71
+ .map((p) => p.text)
72
+ .join('');
67
73
  logger.verbose('Received response from Gemini');
68
74
  logger.debug('Response:', responseText.substring(0, 200) + '...');
69
75
  // Parse suggestions from response
@@ -100,18 +106,18 @@ export class GeminiProvider extends AIProvider {
100
106
  .filter((m) => m.supportedGenerationMethods?.includes('generateContent') &&
101
107
  m.name.includes('gemini'))
102
108
  .map((m) => m.name.replace('models/', ''));
103
- return models.length > 0 ? models : ['gemini-2.5-pro', 'gemini-2.5-flash'];
109
+ return models.length > 0 ? models : [DEFAULT_MODELS.gemini];
104
110
  }
105
111
  catch (error) {
106
112
  logger.error('Failed to fetch Gemini models:', error);
107
- return ['gemini-2.5-pro', 'gemini-2.5-flash', 'gemini-2.5-flash-lite'];
113
+ return [DEFAULT_MODELS.gemini, 'gemini-3.6-flash', 'gemini-3.5-flash-lite'];
108
114
  }
109
115
  }
110
116
  /**
111
117
  * Get recommended model for code analysis
112
118
  */
113
119
  static getRecommendedModel() {
114
- return 'gemini-2.5-pro';
120
+ return DEFAULT_MODELS.gemini;
115
121
  }
116
122
  }
117
123
  //# sourceMappingURL=gemini.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/ai/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/ai/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAA2C,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyBrD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,UAAU;IAClC,OAAO,GAAG,8CAA8C,CAAC;IAEjE,eAAe;QACX,OAAO,cAAc,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE;gBAC9D,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;aACnD,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,QAAQ,CAAC,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,iCAAkC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,CAAC,OAAO,CAAC,OAAoB,EAAE,OAAwB;QACzD,IAAI,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,0BAA0B,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;YAE3D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,OAAO,GAAkB;gBAC3B,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE;4BACH,EAAE,IAAI,EAAE,YAAY,EAAE;4BACtB,EAAE,IAAI,EAAE,UAAU,EAAE;yBACvB;qBACJ;iBACJ;gBACD,gBAAgB,EAAE;oBACd,sFAAsF;oBACtF,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,eAAe,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK;oBAC5C,gBAAgB,EAAE,kBAAkB;iBACvC;aACJ,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,KAAK,kBAAkB,EACtD;gBACI,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACL,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;iBACtC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAChC,CACJ,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;gBAC/C,MAAM,IAAI,eAAe,CAAC,qBAAqB,QAAQ,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;YAEvD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAC;YACzD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;iBAChD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;iBAC5D,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACvB,IAAI,CAAC,EAAE,CAAC,CAAC;YAEd,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAElE,kCAAkC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAExD,MAAM,CAAC,OAAO,CAAC,aAAa,WAAW,CAAC,MAAM,cAAc,CAAC,CAAC;YAE9D,sDAAsD;YACtD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACnC,MAAM,UAAU,CAAC;YACrB,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACnC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAc;QAC1C,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,qDAAqD,EACrD;gBACI,OAAO,EAAE;oBACL,gBAAgB,EAAE,MAAM;iBAC3B;aACJ,CACJ,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAE1C,iDAAiD;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;iBACrB,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACf,CAAC,CAAC,0BAA0B,EAAE,QAAQ,CAAC,iBAAiB,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC5B;iBACA,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAEpD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAc,CAAC,CAAC;YAC/D,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB;QACtB,OAAO,cAAc,CAAC,MAAM,CAAC;IACjC,CAAC;CACJ"}
@@ -1 +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;IAwChE;;;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"}
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;AAIjE;;;;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;IAwChE;;;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"}
package/dist/ai/ollama.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { AIProvider } from './provider.js';
2
2
  import { logger } from '../utils/logger.js';
3
+ import { DEFAULT_MODELS } from '../config/models.js';
3
4
  /**
4
5
  * Ollama AI Provider
5
6
  * Supports local LLMs via Ollama (DeepSeek Coder, CodeLlama, etc.)
@@ -12,7 +13,7 @@ export class OllamaProvider extends AIProvider {
12
13
  this.baseUrl = baseUrl || 'http://localhost:11434';
13
14
  }
14
15
  getDefaultModel() {
15
- return 'deepseek-coder:latest';
16
+ return DEFAULT_MODELS.ollama;
16
17
  }
17
18
  async testConnection() {
18
19
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/ai/ollama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/ai/ollama.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export declare class OpenAIProvider extends AIProvider {
8
8
  constructor(apiKey?: string, model?: string, endpoint?: string);
9
9
  getDefaultModel(): string;
10
10
  testConnection(): Promise<boolean>;
11
+ /** Chat Completions body; reasoning-era models take max_completion_tokens and no temperature. */
12
+ private buildBody;
11
13
  analyze(context: CodeContext): AsyncGenerator<Suggestion>;
12
14
  static getAvailableModels(apiKey: string): Promise<string[]>;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/ai/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGjE,qBAAa,cAAe,SAAQ,UAAU;IAC1C,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACS,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9D,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBjC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;WAqDnD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAqCrE"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/ai/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIjE,qBAAa,cAAe,SAAQ,UAAU;IAC1C,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACS,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9D,eAAe,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBxC,iGAAiG;IACjG,OAAO,CAAC,SAAS;IAkBV,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;WAsDnD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CA8BrE"}