Compare commits

...

1285 commits

Author SHA1 Message Date
Carl-Robert Linnupuu
6ae3fff7cf feat: redesign write and edit tool calls with diff previews
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-05-15 11:40:17 +01:00
Carl-Robert Linnupuu
d25e5a7c4b refactor: centralize tool registration and update subagent wiring 2026-05-15 11:39:22 +01:00
Carl-Robert Linnupuu
19a4aa3745 feat: support ide debugging tools (poc) 2026-05-14 18:07:48 +01:00
Carl-Robert Linnupuu
b8130033ac fix: custom openai test connection
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-05-06 14:40:44 +01:00
Carl-Robert Linnupuu
1082f93174 fix: make custom openai api key optional (fixes #1218)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-05-01 10:58:09 +01:00
Carl-Robert Linnupuu
04a4efdca0 3.8.1
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2026-04-30 17:41:31 +01:00
Carl-Robert Linnupuu
4856fae0ec fix: compatibility errors caused by lookup matcher 2026-04-30 17:38:28 +01:00
Carl-Robert Linnupuu
401d4fe836 docs: update changelog 2026-04-30 16:41:12 +01:00
Carl-Robert Linnupuu
514cd7412e refactor: improve MCP selection and parser flow 2026-04-30 16:29:08 +01:00
Carl-Robert Linnupuu
85a313b75e fix: make agent continuation safe after cancelled tool calls 2026-04-30 16:23:42 +01:00
Carl-Robert Linnupuu
2d84f689ee feat: improve @ lookup file and folder suggestions 2026-04-30 16:22:59 +01:00
Carl-Robert Linnupuu
13c337a6dc fix: avoid repeated agent todo reminders 2026-04-29 20:43:25 +01:00
Carl-Robert Linnupuu
64fc30c794 fix: do not hijack focus on auto-approve mode 2026-04-29 20:42:45 +01:00
Carl-Robert Linnupuu
7628681ed6 refactor: share visible file context collection 2026-04-29 20:41:13 +01:00
Carl-Robert Linnupuu
920827bc11 feat: show TodoWrite updates in run cards 2026-04-27 15:00:32 +01:00
Carl-Robert Linnupuu
876b20cd3b fix: render new panels after tool updates 2026-04-27 14:59:11 +01:00
Carl-Robert Linnupuu
a10014da6d chore: upgrade Koog and platform versions 2026-04-23 15:40:20 +01:00
Carl-Robert Linnupuu
ea5827e48e refactor: remove MCP group conditional rendering logic 2026-04-21 12:03:11 +01:00
Ju8z
38ed8c9bb5
fix: IntelliJ UI freeze when switching between external ACP agents such as OpenCode and Codex in the ProxyAI agent runtime selector. (#1213)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
Problem:
  `closeSession()` was called synchronously from the runtime selector action path. Closing an active ACP session can block while closing stdio transport streams. In practice this can park the Swing UI thread in `AcpProtocolCore.close()` / `StdioTransport.close()`, leaving IntelliJ black-screened until the child ACP
  process is killed externally.

  A freeze report captured the EDT stuck under:
  - `AgentModelComboBoxAction.actionPerformed`
  - `ExternalAcpAgentService.closeSession`
  - `AcpProcessState.close`
  - `AcpProtocolCore.close`
  - `StdioTransport.close`
  - `FileDescriptor.close0`

 Changes:
  - Close removed ACP process states asynchronously on the service IO scope.
  - Remove the session setup mutex immediately after removing the state.
  - Stop the child ACP process before closing the protocol.
  - Force-kill the child process if it does not exit shortly after `destroy()`.
  - Log cleanup failures instead of propagating them back through the UI action path.

  Test-Locally
  - Reproduced locally with OpenCode -> Codex switching causing IntelliJ to freeze.
  - Verified the same close-order patch locally stopped the freeze by letting the ACP process terminate before protocol cleanup.
2026-04-20 12:54:10 +01:00
abishai
b4daa8a894
fix: use sh under BSD systems (#1208)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-04-07 11:46:12 +01:00
Carl-Robert Linnupuu
10d9f81a92 3.8.0
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-04-03 12:13:39 +01:00
Carl-Robert Linnupuu
ef4991e2ea fix: compatibility issues 2026-04-03 12:05:13 +01:00
Carl-Robert Linnupuu
1f9f1fd5b8 fix: keep @ folder lookup scoped to folders 2026-04-02 12:05:40 +01:00
Carl-Robert Linnupuu
5f088c60ab fix: use IntelliJ native file search for @ lookup 2026-04-01 17:53:02 +01:00
Carl-Robert Linnupuu
ec23affee8 fix: preserve agent context tags when submitting from landing view 2026-04-01 15:03:45 +01:00
Carl-Robert Linnupuu
7b6a8092f5 chore: improve logging for code completion and next edits 2026-04-01 01:26:47 +01:00
Carl-Robert Linnupuu
f492af35cb feat: new mercury edit 2 model 2026-04-01 01:26:19 +01:00
Carl-Robert Linnupuu
8bda2ec8b4 feat: update mercury coder model 2026-04-01 01:18:58 +01:00
Roman Gromov
0d6282e50e
fix: Critical fix of broken input field height. (#1200)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
* Critical edit field bug fix

- Fixed issue when attached files were over 1 line, no more text input were accessible
- Adjusted edit lines to 2 instead of 1 for better view

* Generate commit message with AI fixed

Fixed crashing and non working generate commit message with AI

* Add edit mode default value switch to settings

Added in settings controls to enable/disable edit mode default setting in chat

* Setting to save attached files to chat

Implemented settings param to save attached to chat files. Implemented logs

* refactor: remove code and adjust UI

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2026-04-01 00:50:38 +01:00
Carl-Robert Linnupuu
f63f6f1da9 docs: update docs
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2026-03-31 17:23:25 +01:00
Carl-Robert Linnupuu
34a83a9854 fix: respect non-streaming executor mode for custom openai subagents 2026-03-31 13:29:23 +01:00
Carl-Robert Linnupuu
f15edcf2c4 docs: update changelog 2026-03-30 11:57:46 +01:00
Carl-Robert Linnupuu
d83063428c fix: BashTool VFS refresh to stay within working directory 2026-03-27 11:41:47 +00:00
Carl-Robert Linnupuu
5dca4b5d17 refactor: replace custom JSON-RPC layer with official ACP SDK runtime 2026-03-27 10:45:58 +00:00
Carl-Robert Linnupuu
f6c22b0313 fix: remove horizontal scrolling in response editor panel 2026-03-18 23:02:12 +00:00
Carl-Robert Linnupuu
e7208b5e79 feat: make subagent acp config options dynamic
Some checks failed
Build / Build (push) Failing after 3s
Build / Verify Plugin (push) Has been skipped
2026-03-18 15:32:22 +00:00
Carl-Robert Linnupuu
96c1a05748 fix: agent toolwindow toolbar right-click popup menu 2026-03-18 15:03:38 +00:00
Carl-Robert Linnupuu
22b3d8a28f fix: prompt text field height not expanding 2026-03-18 13:29:35 +00:00
Carl-Robert Linnupuu
e9545ae004 feat: add Diagnostics tool call UI descriptor 2026-03-18 12:56:03 +00:00
Carl-Robert Linnupuu
faa9372524 feat: support model configuration for subagents 2026-03-18 11:35:18 +00:00
Carl-Robert Linnupuu
12776e5f47 fix: external agent tool call argument handling for WebFetch 2026-03-17 23:49:37 +00:00
Carl-Robert Linnupuu
6a53318fea refactor: remove extra context length state
Some checks failed
Build / Build (push) Failing after 5s
Build / Verify Plugin (push) Has been skipped
2026-03-17 16:01:01 +00:00
Carl-Robert Linnupuu
0d83e32ab1 Merge branch 'sapphirepro/master' into feat/configurable-custom-openai-context-length-and-size 2026-03-17 16:00:16 +00:00
Carl-Robert Linnupuu
9a79bd1610 feat: introduce agent client protocol (acp)
Some checks failed
Build / Build (push) Failing after 4s
Build / Verify Plugin (push) Has been skipped
2026-03-17 15:04:12 +00:00
Roman Gromov
f30c8ace7a
Added custom fields for context size and output size to Custom OpenAI
Added fields in settings to manually set max overall context and max output context for calculation  in agent mode. Default values were too low and didn't count specific model specs. Now it's solved
2026-03-15 01:20:06 +01:00
Roman Gromov
9e8a437a0a
Merge pull request #1 from carlrobertoh/master
Sync with latest version
2026-03-15 00:25:34 +01:00
Carl-Robert Linnupuu
80b2490ca9 refactor: use LLMCapability to decide on chat completion vs responses api
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-03-14 19:20:54 +00:00
Carl-Robert Linnupuu
8fdeba74da Merge branch 'master' of github.com:AlexanderLuck/ProxyAI into AlexanderLuck/master 2026-03-14 16:58:18 +00:00
Alexander Luck
03ffd09db3
Merge pull request #1 from sapphirepro/master
Added sorting to Custom OpenAI models, so that it's better organized now, tool use fixes
2026-03-14 13:38:57 +01:00
Roman Gromov
93ff7cda5a
Fixed Custom OpenAI (Responses) tool calls
Fixed tool calls that were previously broken and crashing
2026-03-14 00:49:44 +01:00
Roman Gromov
23241ec98b
Fixes
Fixed diagnostics being broken + added diagnostics as tool for agent. Now it shows relevant files and can filter errors separately.

Fixed Custom OpenAI providers being broken in Agent mode. None worked previously, was streaming bug issues for both
2026-03-13 23:10:18 +01:00
Roman Gromov
1c37947bc2
Added sorting to Custom OpenAI models, so that it's better organized now 2026-03-13 20:35:31 +01:00
Carl-Robert Linnupuu
dd97160163 Merge branch 'master' into AlexanderLuck/master 2026-03-13 17:06:10 +00:00
Carl-Robert Linnupuu
b5d291c260 3.7.5 2026-03-13 17:04:56 +00:00
Alexander Luck
a88627e559 Split @ command search into instant + heavy phases so builtin actions (@includeopenfiles) appear immediately while file/folder/git scanning runs in parallel in the background.
Also passes actual search text to group lookups instead of empty string, adds early termination (200 file cap) to prevent full project tree scans, and deduplicates merged results.
2026-03-13 12:38:06 +01:00
Alexander Luck
27db40a0b8 copy custom openai configuration copies actual API key instead of starting blank 2026-03-13 12:38:05 +01:00
Alexander Luck
2b47bca36f custom openai responses API support 2026-03-13 12:37:58 +01:00
Carl-Robert Linnupuu
49f70da29b docs: update cnnagelog 2026-03-12 18:20:25 +00:00
Carl-Robert Linnupuu
c15bc58d08 fix: web search filtering for empty domain lists and remove SearXNG 2026-03-12 18:16:31 +00:00
Carl-Robert Linnupuu
610c3035ec fix: retry agent streaming requests on SSE transport timeouts 2026-03-12 12:15:34 +00:00
Carl-Robert Linnupuu
7643e91c17 fix: display credits label only for ProxyAI provider
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-03-11 14:06:41 +00:00
Carl-Robert Linnupuu
9ac26d9bb2 feat: add Mercury 2 model 2026-03-10 16:23:58 +00:00
Carl-Robert Linnupuu
0fffa2eac2 fix: defer toolwindow tab creation and allow closing first/last tab (relates #865) 2026-03-10 14:30:49 +00:00
Carl-Robert Linnupuu
00775d38da refactor: remove llm-client dependency in favor of Koog and refresh models
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-03-09 16:56:43 +00:00
Carl-Robert Linnupuu
0eaf6f8668 feat: support overriding workingDirectory bash param 2026-02-26 16:53:58 +00:00
Carl-Robert Linnupuu
fe02380f5c feat: support markdown tables (closes #1186) 2026-02-26 15:07:55 +00:00
Gleb Mayorov
b501ffad73
fix: use Bash for linux platforms (#1189)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-02-24 12:45:04 +00:00
Carl-Robert Linnupuu
039b7181c3 chore: bump Koog
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-02-18 15:09:13 +00:00
Carl-Robert Linnupuu
18d4dd0272 fix: non-streaming chat response (fixes #1174, #819, #431, #1184) 2026-02-18 15:09:02 +00:00
Carl-Robert Linnupuu
376201b87c fix: agent response deserialization on missing ids (fixes #1184) 2026-02-18 14:06:27 +00:00
Carl-Robert Linnupuu
33e886860c docs: add nextra docs
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2026-02-18 03:01:54 +00:00
Carl-Robert Linnupuu
4be7ba0b44 3.7.4 2026-02-18 02:26:37 +00:00
Carl-Robert Linnupuu
ddd3466bc1 fix: compatibility issues 2026-02-18 02:23:06 +00:00
Carl-Robert Linnupuu
89792465f9 chore: bump pluginUntilBuild version 2026-02-18 02:02:16 +00:00
Carl-Robert Linnupuu
82360fbc63 docs: update changelog 2026-02-18 01:59:22 +00:00
Carl-Robert Linnupuu
ac3204087d feat: support mermaid diagrams (closes #788) 2026-02-18 01:45:50 +00:00
Carl-Robert Linnupuu
3f32f19f72 feat: agent timeline 2026-02-17 14:03:13 +00:00
Carl-Robert Linnupuu
24e2a5fbad fix: compatibility issues with Remote Development feature (fixes #962) 2026-02-13 13:46:23 +00:00
Carl-Robert Linnupuu
7cee32a080 refactor: remove ProxyAI Docs support 2026-02-10 15:13:03 +00:00
Carl-Robert Linnupuu
37960489e4 feat: add webfetch tool 2026-02-10 11:28:22 +00:00
Carl-Robert Linnupuu
0442d85dde feat: custom openai nested request params
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-02-10 02:18:28 +00:00
Carl-Robert Linnupuu
6a7107c6e7 fix: respect ignorelist when dealing with any search/read operations (relates #1126)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-02-06 18:38:46 +00:00
Carl-Robert Linnupuu
b456b53752 feat: agent chat history 2026-02-06 16:03:07 +00:00
Carl-Robert Linnupuu
01757c4af2 3.7.3
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-02-05 11:05:08 +00:00
Carl-Robert Linnupuu
fc3ac07a67 docs: update changelog 2026-02-05 10:59:11 +00:00
Carl-Robert Linnupuu
836dcf9c86 feat: agent mcp 2026-02-04 13:40:06 +00:00
Carl-Robert Linnupuu
a50623024b feat: add agent skills form 2026-02-04 01:25:35 +00:00
Carl-Robert Linnupuu
32f935b9e1 chore: bump koog to 0.6.1
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-02-03 17:38:46 +00:00
Carl-Robert Linnupuu
55010e53f6 fix: improve WriteTool path resolution and error handling 2026-02-03 17:36:17 +00:00
Carl-Robert Linnupuu
52b34eeb69 feat: agent skills 2026-02-03 17:32:42 +00:00
Carl-Robert Linnupuu
cfbaa2b095 fix: agent tool UI cosmetics 2026-02-03 10:30:12 +00:00
Carl-Robert Linnupuu
3cd9f18d4a feat: ignore and permissions 2026-02-03 01:53:38 +00:00
Carl-Robert Linnupuu
a7864d16b1 feat: agent hooks 2026-02-02 14:16:07 +00:00
Carl-Robert Linnupuu
a6edec22b0 3.7.2 2026-01-30 11:28:03 +00:00
Carl-Robert Linnupuu
5af9929439 docs: update changelog 2026-01-30 03:05:44 +00:00
Carl-Robert Linnupuu
e55778d668 fix: respect advanced settings (http/socks proxy) for agent mode
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-01-30 02:08:05 +00:00
Carl-Robert Linnupuu
e939d9dc00 refactor: revert new edit tool and consolidate rendering logic 2026-01-30 02:02:39 +00:00
Carl-Robert Linnupuu
6ae4187f6b fix: rollback changes tracking 2026-01-29 00:41:36 +00:00
Carl-Robert Linnupuu
ee7b662ec4 feat: introduce whole diff edit tool for ProxyAI provider 2026-01-29 00:37:51 +00:00
Carl-Robert Linnupuu
e5ed933299 refactor: replace VFS event monitoring with direct tool tracking 2026-01-28 00:41:10 +00:00
Carl-Robert Linnupuu
2e5c77aba5 fix: wrong line separators on windows
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-01-27 18:55:04 +00:00
Carl-Robert Linnupuu
7ad7a037d7 refactor: rename modules 2026-01-26 13:49:47 +00:00
Carl-Robert Linnupuu
4848b46bd6 3.7.1 2026-01-26 01:07:45 +00:00
Carl-Robert Linnupuu
f57f1d9455 docs: update changelog 2026-01-26 01:03:10 +00:00
Carl-Robert Linnupuu
ac1444587c fix: improve agent model selection and tool call handling 2026-01-26 00:56:11 +00:00
Carl-Robert Linnupuu
7075d72e83 fix: custom openai base url derivation 2026-01-25 23:38:02 +00:00
Carl-Robert Linnupuu
835afe4188 fix: ollama baseUrl and error handling 2026-01-25 21:32:32 +00:00
Carl-Robert Linnupuu
2f378e83f8 feat: add inception provider and other recent models 2026-01-25 18:06:08 +00:00
Carl-Robert Linnupuu
1a9bd1143f fix: tooltip agent total tokens and other minor adjustments 2026-01-25 17:55:49 +00:00
Carl-Robert Linnupuu
ebea17ff6b fix: retry logic for streaming requests 2026-01-25 17:51:17 +00:00
Carl-Robert Linnupuu
6ad5f4e523 3.7.0
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-01-19 11:47:20 +00:00
Carl-Robert Linnupuu
414ddddbdf fix: replace agent forbidden message 2026-01-19 03:29:29 +00:00
Carl-Robert Linnupuu
82c581b790 Revert "3.7.0"
This reverts commit e6e92a3616.
2026-01-19 03:02:37 +00:00
Carl-Robert Linnupuu
35bab4af5f chore: expand agent prompts 2026-01-19 03:01:23 +00:00
Carl-Robert Linnupuu
ff5a7784b7 fix: consolidate timeouts and IntelliJSearch tool safe execution 2026-01-19 03:00:12 +00:00
Carl-Robert Linnupuu
8552f4e634 refactor: session checkpoint centralization 2026-01-18 00:27:40 +00:00
Carl-Robert Linnupuu
e6e92a3616 3.7.0 2026-01-16 17:24:52 +00:00
Carl-Robert Linnupuu
1adb9ad7e9 fix: compatibility issues 2026-01-16 16:12:31 +00:00
Carl-Robert Linnupuu
7f1e181a17 docs: update changelog 2026-01-16 15:40:10 +00:00
Carl-Robert Linnupuu
043d4fe4e9 refactor: clean up agent tab initialization
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-01-16 15:09:37 +00:00
Carl-Robert Linnupuu
b81eeee470 fix: optimize tool execution 2026-01-16 15:07:48 +00:00
Carl-Robert Linnupuu
b941a3a19a feat: improve tool call clickable links 2026-01-16 15:07:06 +00:00
Carl-Robert Linnupuu
3bc9656196 feat: token tracking for subagent runs 2026-01-16 15:05:53 +00:00
Carl-Robert Linnupuu
152c938225 fix: improve rollback tracking and UX with project filtering 2026-01-16 12:36:09 +00:00
Carl-Robert Linnupuu
e074144756 fix: optimize LLM executor timeouts and retry configuration 2026-01-16 12:35:29 +00:00
Carl-Robert Linnupuu
5c16465c26 feat: add task summaries and refine rollback panel ui 2026-01-15 18:20:27 +00:00
Carl-Robert Linnupuu
5e65d81751 fix: improve agent LLM client config and task results 2026-01-15 18:18:53 +00:00
Carl-Robert Linnupuu
65b1ca496e feat: improve chat toolwindow UI and streaming/diff handling 2026-01-15 11:42:21 +00:00
Carl-Robert Linnupuu
b00593b9bd refactor: refine agent tools behavior and strategy routing 2026-01-15 11:41:31 +00:00
Carl-Robert Linnupuu
e558a27ada feat: add rollback tracking and UI for agent runs 2026-01-15 11:39:39 +00:00
Carl-Robert Linnupuu
88468e1c98 fix: ensure edit tool correct project param 2026-01-13 16:07:17 +00:00
Carl-Robert Linnupuu
2b425bdc50 fix: replace static dates in agent prompts
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2026-01-13 15:33:59 +00:00
Carl-Robert Linnupuu
db1c69edb7 feat: agent context compression 2026-01-13 15:21:56 +00:00
Carl-Robert Linnupuu
4c293dff73 fix: improve proxyai error handling and clean up code 2026-01-13 10:58:07 +00:00
Carl-Robert Linnupuu
dbb6158162 refactor: remove redundant ToolCallViewAdapter 2026-01-10 17:17:08 +00:00
Carl-Robert Linnupuu
a311d90ca8 fix: revert OpenAI chat model selection 2026-01-10 15:27:29 +00:00
Carl-Robert Linnupuu
8cda36cf35 fix: reintroduce edit mode 2026-01-10 15:18:51 +00:00
Carl-Robert Linnupuu
8b33e83884 fix: ProxyAI default model 2026-01-08 22:45:30 +02:00
Carl-Robert Linnupuu
8d5c7e0076 feat: proxyai agent
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2026-01-08 15:42:27 +02:00
Carl-Robert Linnupuu
b2a2e902f5 refactor: consolidate code completion request building; remove old code
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-12-04 00:11:31 +00:00
Carl-Robert Linnupuu
f12656bd99 fix: code completion grpc connections upon client deadline timeouts 2025-12-03 22:06:55 +00:00
Carl-Robert Linnupuu
fd57cc0b4d fix: revert inception default model 2025-12-03 17:54:04 +00:00
Carl-Robert Linnupuu
5f34888e33 fix: basic auto imports reranking 2025-12-03 17:19:07 +00:00
Carl-Robert Linnupuu
a5b3e28c65 fix: resolve Node-based MCP commands more reliably 2025-12-03 16:02:06 +00:00
Carl-Robert Linnupuu
9fc36fb101 feat: auto import 2025-12-03 13:14:01 +00:00
Carl-Robert Linnupuu
380ea2942d fix: allow autocompletion to be triggered when lookup is active 2025-12-02 14:05:39 +00:00
Carl-Robert Linnupuu
10d2789de7 fix: suppress near match completions 2025-12-02 13:56:07 +00:00
Carl-Robert Linnupuu
647c3de057 refactor: Inception API NES prompt building 2025-12-02 13:54:52 +00:00
Carl-Robert Linnupuu
7f04741e2e feat: mcp support for openai and custom openai providers 2025-11-28 11:21:04 +00:00
Carl-Robert Linnupuu
4e126c14bc feat: add MCP configuration form 2025-11-18 19:47:35 +00:00
Carl-Robert Linnupuu
1502cb5a4a feat: include <think> tags in request 2025-11-17 17:51:58 +00:00
Carl-Robert Linnupuu
eb6371f3d2 3.6.8
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-11-17 13:34:30 +00:00
Carl-Robert Linnupuu
71b167670d fix: inline edit requests for other providers 2025-11-17 13:26:18 +00:00
Carl-Robert Linnupuu
d074d8328f Revert "3.6.8"
This reverts commit 8873548254.
2025-11-17 13:10:09 +00:00
Carl-Robert Linnupuu
485b6319d6 fix: inline edit apply request 2025-11-17 13:08:27 +00:00
Carl-Robert Linnupuu
8873548254 3.6.8 2025-11-17 10:27:10 +00:00
Carl-Robert Linnupuu
b9ae7faa88 docs: update changelog 2025-11-17 10:16:41 +00:00
Carl-Robert Linnupuu
3f7ffb36a6 feat: support debug logs 2025-11-17 10:07:12 +00:00
Carl-Robert Linnupuu
e7e9a2d9d8 feat: inline edit quick question 2025-11-17 01:07:33 +00:00
Carl-Robert Linnupuu
3a5ca4edf8 fix: re-add improved version of the diff editor fragment
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-11-16 17:24:02 +00:00
Carl-Robert Linnupuu
8a7e6c3c66 3.6.7
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-11-13 13:35:15 +00:00
Carl-Robert Linnupuu
38acc6cbfa docs: update changelog 2025-11-13 11:14:22 +00:00
Carl-Robert Linnupuu
8e567302dc feat: make the file tag labels colorful depending on its state in VCS 2025-11-13 11:08:15 +00:00
Carl-Robert Linnupuu
550fcce797 feat: improved tab experience 2025-11-13 11:07:23 +00:00
Carl-Robert Linnupuu
1a8cf581a9 docs: update changelog 2025-10-28 14:26:02 +00:00
Carl-Robert Linnupuu
6e6870015d chore: bump llm-client (fixes #1142, #1151)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-10-28 14:19:24 +00:00
Carl-Robert Linnupuu
dea90998c0 fix: order of search tags 2025-10-28 11:26:43 +00:00
Carl-Robert Linnupuu
380f2f8797 fix: inception provider labels 2025-10-28 11:26:26 +00:00
Carl-Robert Linnupuu
2cb79c89d7 fix: grpc timeouts 2025-10-28 11:24:57 +00:00
Carl-Robert Linnupuu
82cd5ca0b2 3.6.5
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-10-22 15:02:02 +01:00
Carl-Robert Linnupuu
f5dd7be84c fix: editor highlight context 2025-10-22 14:53:57 +01:00
Carl-Robert Linnupuu
b51eb77638 docs: update changelog 2025-10-22 13:22:33 +01:00
Patrick Hemmer
661a06dcaa
feat: add middle-click to remove files from context. (#1148)
* add middle-click to remove files from context.

Previously when you wanted to remove files which were previously added to the chat context, you had to click the little "x" icon one by one. When you had several files to remove, this got tedious and difficult, especially since the file box varies in width, so the "x" is not in the same space.

This change makes this operation easier by allowing you to middle-click anywhere on the file box to remove it.

* fix: mouse actions when clicked outside of the tag label

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-10-22 13:14:30 +01:00
Carl-Robert Linnupuu
e5785180c6 chore: upgrade to 2025.1 and align dependencies
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-10-22 11:46:09 +01:00
Patrick Hemmer
c15976d4d9
feat: make the send shortcut configurable (#1149)
This change makes it so the user can select the key combination to send the message. Users may configure any combination of ctrl, alt, or shift (or the mac equivalents) plus enter. If any are configured, that combination plus enter will send the message, and enter by itself will insert a newline. If none are configured, enter by itself and any of the modifiers plus enter inserts a newline. This means the previous behavior of shift+enter to insert a newline is preserved.
2025-10-21 12:23:17 +01:00
Patrick Hemmer
6a881194c8
fix: message deletion (#1147)
Previously when a message wass deleted, the Conversation object was modified in memory but not correctly updated in the master list of conversations (ConversationsState.conversations). The effect of this was that when you sent a new message, the deleted messages were resurrected.
2025-10-21 12:13:13 +01:00
Patrick Hemmer
e55aa31b89
fix: backtick code overflowing and going out of view (#1145)
Previously when text was enclosed in backticks, that text wouldn't wrap, and would instead overflow beyond the viewport. In addition, there is no horizontal scroll bar, so the text is completely inaccessible. And to make it even worse, because of this, the virtual viewport was extended, causing other non-backtick text to also go out of view.

This fixes the issue by overriding the style to enable wrapping.
2025-10-21 12:02:56 +01:00
Patrick Hemmer
02a5526890
fix: code block handling containing nested backticks (#1144)
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
Previously there was an issue where if a code block contained nested triple-backticks, it would end the code block, causing the message window to become horribly mangled.

This fixes the issue by only considering a triple-backtick to be an end to the code block if the triple-backticks are at the same indention level which started the code block.
2025-10-21 11:13:57 +01:00
xuliefeng
1fe0e35aa5
feat: Handle "stop" parameter transformation in CodeCompletionRequestFactory (#1125) 2025-10-21 11:07:54 +01:00
Carl-Robert Linnupuu
67824c2689 docs: update changelog
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-10-20 17:20:28 +01:00
Carl-Robert Linnupuu
14b878936d fix: when switching between editors, maintain a rolling list of up to 2 unselected tags 2025-10-20 17:15:39 +01:00
Carl-Robert Linnupuu
78d6904803 fix: closing the 'Apply' view doesn't bring back the updated code 2025-10-20 16:31:34 +01:00
Carl-Robert Linnupuu
50afd96a2f fix: psi preview theme issues 2025-10-20 16:15:24 +01:00
Carl-Robert Linnupuu
fba4a5e951 fix: performance issues caused by token calculation 2025-10-20 16:05:52 +01:00
Carl-Robert Linnupuu
f25ef8af35 3.6.4
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-10-15 14:18:11 +01:00
Carl-Robert Linnupuu
7c209f70be docs: update changelog 2025-10-15 14:01:02 +01:00
Carl-Robert Linnupuu
58c7a320ee feat: add sonnet 4.5 and codex models (proxyai) 2025-10-15 13:58:00 +01:00
Carl-Robert Linnupuu
86d5ed26e4 fix: improve auto apply error handling
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-10-09 10:17:59 +01:00
Carl-Robert Linnupuu
6e432f7fe8 feat: enable auto apply for inception labs 2025-10-08 16:40:43 +01:00
Carl-Robert Linnupuu
811280d3cd refactor: change proxai default autocomplete model
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-10-08 13:35:45 +01:00
Carl-Robert Linnupuu
33f7030450 3.6.3 2025-10-08 12:49:03 +01:00
Carl-Robert Linnupuu
ee9962a1ae fix: read access exception on GoLand (fixes #1139) 2025-10-08 12:32:53 +01:00
Carl-Robert Linnupuu
d55533e9c3 docs: update changelog 2025-10-08 12:28:57 +01:00
Carl-Robert Linnupuu
a4a0f37830 fix: Next Edit model migration (ProxyAI) 2025-10-08 12:26:02 +01:00
Carl-Robert Linnupuu
411a553d8e feat: add different set of specialized apply models for ProxyAI provider
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-10-07 17:39:42 +01:00
Carl-Robert Linnupuu
79a7084377 fix: redefine commit message actions (fixes #1134) 2025-10-07 11:23:49 +01:00
Carl-Robert Linnupuu
da50e55ba1 feat: add inception provider 2025-10-06 14:41:32 +01:00
Carl-Robert Linnupuu
f8b36b294d 3.6.2
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-10-03 16:10:23 +01:00
Carl-Robert Linnupuu
3dc09a9caa docs: update changelog 2025-10-03 16:03:38 +01:00
Carl-Robert Linnupuu
379fa6bcd3 fix: make selected editor tag removable by default 2025-10-03 15:52:06 +01:00
Carl-Robert Linnupuu
2a36bf6b84 3.6.1 2025-10-03 13:43:43 +01:00
Carl-Robert Linnupuu
199cb55bda docs: update changelog 2025-10-03 12:55:34 +01:00
Carl-Robert Linnupuu
7720b2901c feat: add psi link doc hover preview (Java support only) 2025-10-03 12:54:02 +01:00
Carl-Robert Linnupuu
eb10ff327c refactor: improve quick link navigation for psi elements 2025-10-02 14:47:38 +01:00
Carl-Robert Linnupuu
9ba05cd0b1 feat: copy-paste placeholder for prompt text field
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-10-02 13:29:51 +01:00
Carl-Robert Linnupuu
aed31a017b fix: EDIT_CODE model backward compatibility (fixes #1129) 2025-10-02 02:38:27 +01:00
Carl-Robert Linnupuu
3011dba44d feat: quick link navigation 2025-10-02 00:13:49 +01:00
Carl-Robert Linnupuu
2a0a9d9a51 refactor: clean up (#1111)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-09-24 00:42:39 +01:00
Carl-Robert Linnupuu
233f856321 feat: add tooltips for input editor tags (closes #1109) 2025-09-24 00:38:37 +01:00
Carl-Robert Linnupuu
fc64dfb5ec fix: google model selection (fixes #1111) 2025-09-23 23:45:53 +01:00
Carl-Robert Linnupuu
6d6fbf6d8a fix: mistral autcompletion toggle (fixes #1114) 2025-09-23 23:33:21 +01:00
Carl-Robert Linnupuu
fa9a6d3148 3.6.0
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-09-23 19:31:25 +01:00
Carl-Robert Linnupuu
e068190d57 docs: update changelog 2025-09-23 19:24:10 +01:00
Carl-Robert Linnupuu
46d61e68ab feat: additional inline edit improvements 2025-09-23 18:23:55 +01:00
Carl-Robert Linnupuu
c3fc404bf6 feat: configurable screenshot detection 2025-09-22 22:11:03 +01:00
Carl-Robert Linnupuu
163758a2be fix: migrate Custom OpenAI services to use UUIDs and several other fixes
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-09-17 16:37:03 +01:00
Carl-Robert Linnupuu
fdfde4243d feat: inline edit
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-09-16 03:11:20 +01:00
Carl-Robert Linnupuu
80ba956c5e feat: add Diagnostics tag 2025-09-16 01:34:34 +01:00
Carl-Robert Linnupuu
0d3bfc739f feat: dnd files and folders from project window (closes #1124)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-09-12 17:23:26 +01:00
Carl-Robert Linnupuu
b440b03054 3.5.1
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-09-03 15:36:14 +01:00
Carl-Robert Linnupuu
46ccf762d0 docs: update changelog 2025-09-03 15:19:35 +01:00
Carl-Robert Linnupuu
0d432b8026 feat: add gpt-5 2025-09-03 14:34:08 +01:00
Gustavo Montamat
550b0e810f
feat: chat-based FIM code completion for Custom OpenAI providers (#1103)
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
* Implement FIM code completion with a chat models

* Fix chat-based FIM

* fix: build

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-09-03 11:39:45 +01:00
ADS
b5a6a6a744
feat: Add Chinese support (#1099)
Co-authored-by: ADS <panzhengdong@yuan9.cn>
2025-09-03 11:30:45 +01:00
dependabot[bot]
dc2a17093e
chore(deps): bump actions/setup-java from 4 to 5 (#1104)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 10:57:52 +01:00
dependabot[bot]
146b2a2480
chore(deps): bump org.jsoup:jsoup from 1.19.1 to 1.21.2 (#1107)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.19.1 to 1.21.2.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.19.1...jsoup-1.21.2)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-version: 1.21.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 10:57:36 +01:00
dependabot[bot]
039562d3d7
chore(deps): bump org.jetbrains.kotlin:kotlin-gradle-plugin (#1101)
Bumps [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) from 2.1.20 to 2.2.10.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-version: 2.2.10
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 10:57:17 +01:00
dependabot[bot]
518eefffdf
chore(deps): bump grpc from 1.71.0 to 1.73.0 (#1081)
Bumps `grpc` from 1.71.0 to 1.73.0.

Updates `io.grpc:grpc-protobuf` from 1.71.0 to 1.73.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.71.0...v1.73.0)

Updates `io.grpc:grpc-stub` from 1.71.0 to 1.73.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.71.0...v1.73.0)

Updates `io.grpc:grpc-netty-shaded` from 1.71.0 to 1.73.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.71.0...v1.73.0)

Updates `io.grpc:protoc-gen-grpc-java` from 1.71.0 to 1.73.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.71.0...v1.73.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-protobuf
  dependency-version: 1.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.grpc:grpc-stub
  dependency-version: 1.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.grpc:grpc-netty-shaded
  dependency-version: 1.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.grpc:protoc-gen-grpc-java
  dependency-version: 1.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 10:57:04 +01:00
dependabot[bot]
e9572b5e9d
chore(deps): bump actions/checkout from 4 to 5 (#1100)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 10:56:50 +01:00
dependabot[bot]
55f4dff753
chore(deps): bump com.google.code.gson:gson from 2.12.1 to 2.13.1 (#1009)
Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.12.1 to 2.13.1.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google/gson/compare/gson-parent-2.12.1...gson-parent-2.13.1)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-version: 2.13.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-09-03 10:56:35 +01:00
Dmitry Saltykov
7adc522af4
Bug Report: Regression - Edit Code prompt is not added #1070 (#1098) 2025-09-03 10:50:31 +01:00
Robin
ba426a201e
fix: Custom Open AI services do not adhere to model selections (#1090) 2025-09-03 10:43:15 +01:00
Robin
880e8beddf
fix: Remove YouSettings application service from plugin.xml (#1087) 2025-09-03 10:38:28 +01:00
Carl-Robert Linnupuu
a9ed9acfc6 3.5.0
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-07-24 13:38:30 +01:00
Carl-Robert Linnupuu
1ccb777ed0 docs: update changelog 2025-07-24 13:30:05 +01:00
Carl-Robert Linnupuu
df909f025f chore: update llama build labels 2025-07-24 13:29:54 +01:00
Carl-Robert Linnupuu
c23030bc79 chore: replace kimi-k2 with qwen3-coder
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-07-23 15:23:09 +01:00
Carl-Robert Linnupuu
a530ca6e9f feat: add project-based chat history filtering 2025-07-23 15:03:13 +01:00
Carl-Robert Linnupuu
ff03d9c1fb feat: support cancelling auto apply requests 2025-07-23 14:20:26 +01:00
dependabot[bot]
9e2226188b
chore(deps): bump org.apache.commons:commons-text from 1.13.0 to 1.13.1 (#987)
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
Bumps org.apache.commons:commons-text from 1.13.0 to 1.13.1.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 11:47:30 +01:00
dependabot[bot]
8437c8e860
chore(deps): bump com.squareup.okio:okio from 3.10.2 to 3.15.0 (#1061)
Bumps [com.squareup.okio:okio](https://github.com/square/okio) from 3.10.2 to 3.15.0.
- [Release notes](https://github.com/square/okio/releases)
- [Changelog](https://github.com/square/okio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/square/okio/compare/3.10.2...parent-3.15.0)

---
updated-dependencies:
- dependency-name: com.squareup.okio:okio
  dependency-version: 3.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 11:46:21 +01:00
dependabot[bot]
6a22d365f2
chore(deps): bump org.junit:junit-bom from 5.12.1 to 5.13.4 (#1080)
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit-framework) from 5.12.1 to 5.13.4.
- [Release notes](https://github.com/junit-team/junit-framework/releases)
- [Commits](https://github.com/junit-team/junit-framework/compare/r5.12.1...r5.13.4)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-version: 5.13.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 11:45:59 +01:00
Robin
8b4205d61d
fix: EditorUtil.createEditor() creates files on EDT (fixes #1006) (#1079) 2025-07-22 11:45:15 +01:00
Carl-Robert Linnupuu
09eb2b3fb7 docs: update changelog
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-07-21 16:51:44 +01:00
Carl-Robert Linnupuu
331e41fa72 feat: add kimi k2 model 2025-07-21 16:50:45 +01:00
Carl-Robert Linnupuu
05a89ec40e fix: legacy model settings migration 2025-07-21 15:35:15 +01:00
Carl-Robert Linnupuu
07ee84bcc7 fix: tab docs link
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-07-21 13:26:46 +01:00
Carl-Robert Linnupuu
82161a7a47 chore: update openai models 2025-07-21 13:14:26 +01:00
Carl-Robert Linnupuu
8d3313975c docs: update changelog 2025-07-21 12:55:25 +01:00
Carl-Robert Linnupuu
aec4c281d2 fix: remove code analyzer from initial tags 2025-07-21 12:53:03 +01:00
Carl-Robert Linnupuu
d3f59862ea docs: update changelog 2025-07-21 11:47:11 +01:00
Carl-Robert Linnupuu
79db2a5f33 fix: revert direct auto apply 2025-07-21 11:43:59 +01:00
Carl-Robert Linnupuu
d50ad140b0 feat: add native mistral client support 2025-07-21 11:28:02 +01:00
Carl-Robert Linnupuu
a6ff38e52c feat: improve chat history ui/ux
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-07-20 23:25:49 +01:00
Carl-Robert Linnupuu
4122b46e1d feat: support model per feature
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-07-19 14:16:40 +01:00
Carl-Robert Linnupuu
6cfbd98566 feat: add server and build logs for llama.cpp
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-07-15 14:15:01 +01:00
Carl-Robert Linnupuu
556089f25e fix: llama.cpp server startup (fixes #852) 2025-07-09 11:11:01 +01:00
Viktor Muraviev
89a5a27586
feat: Add separate model selection for code completion (#1032)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
* add separate Ollama model selection for code completion

closes issue #733

* add separate selection of code completion provider

closes issue #804

* add test for Ollama code completion with separate model selection

also added missing clearing of code completion cache to other tests. This fixes ProxyAI test - before the fix it was passed always regardless of real ProxyAI completion operation

* fix saving of code completion provider option in IDE settings

* fix code style

* fix: remove expected failing test

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-07-04 16:16:52 +01:00
Violine
846ecfeddc
feat: Added code structure analysis with depth configuration and improved tag handling (#1045)
* feat: add Kotlin inferred type analyzer

* feat: implemented a queue with support for maximum crawl depth

* feat: added the depth of analysis setting to end the chat

* feat: added the depth of analysis setting to code completion

* feat: add tag for code analysis

# Conflicts:
#	src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/PromptTextField.kt

* feat: changed priority of EditorTagDetails and FileTagDetails

If we added a file when opening a tab, and then added the same file through the "Include files in Prompt..." menu, it will not be in the selected state.

---------

Co-authored-by: alexander.korovin <alexander.korovin@vk.team>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-07-04 15:53:12 +01:00
Carl-Robert Linnupuu
8306ac6d01 3.4.4 2025-07-04 14:57:19 +01:00
Carl-Robert Linnupuu
45edb2a82d docs: update changelog 2025-07-04 14:02:10 +01:00
Carl-Robert Linnupuu
4330a090d8 fix: prevent NPE when loading state with null conversations 2025-07-04 12:59:46 +01:00
Carl-Robert Linnupuu
74e508cb38 feat: support chat renaming 2025-07-04 11:31:35 +01:00
Carl-Robert Linnupuu
a0ff3c70bb fix: add virtual file validation to prevent InvalidVirtualFileAccessException 2025-07-04 02:22:34 +01:00
Carl-Robert Linnupuu
0bc3f07b8d feat: add chat modes (ask/edit/agent) 2025-07-03 23:35:54 +01:00
Carl-Robert Linnupuu
36b06a14c4 3.4.3 2025-06-26 10:27:41 +01:00
Carl-Robert Linnupuu
03fde6fe6d docs: update changelog 2025-06-26 10:02:42 +01:00
Carl-Robert Linnupuu
901ce5a01e feat: add conversations tags support 2025-06-21 13:09:31 +01:00
Carl-Robert Linnupuu
465feafc9f feat: remove model-conversation dependency 2025-06-20 15:59:00 +01:00
Carl-Robert Linnupuu
06e0484f8c refactor: ToolWindowFactory class 2025-06-08 09:13:17 +01:00
Carl-Robert Linnupuu
f6ccf201f4 fix: NPE (fixes #1046) 2025-06-08 09:12:51 +01:00
Carl-Robert Linnupuu
5aa120bdca 3.4.2
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-06-06 12:30:51 +01:00
Carl-Robert Linnupuu
6d0553166d fix: internal IDE exception 2025-06-06 12:25:01 +01:00
Carl-Robert Linnupuu
dbff1288ac chore: increase gradle heap space 2025-06-06 11:49:22 +01:00
Carl-Robert Linnupuu
cf42bb392b docs: update changelog 2025-06-06 11:41:18 +01:00
Carl-Robert Linnupuu
0299b32064 feat: global context search 2025-06-06 10:57:39 +01:00
Carl-Robert Linnupuu
d117d45459 chore: migrate to new gradle intellij plugin 2025-06-06 00:36:11 +01:00
Carl-Robert Linnupuu
66f9f634c9 3.4.1 2025-06-04 20:10:49 +01:00
Carl-Robert Linnupuu
c5bef675d5 fix: sse search/replace processing 2025-06-04 18:19:01 +01:00
Carl-Robert Linnupuu
d8d03a5b2d docs: update changelog 2025-06-04 15:44:00 +01:00
Carl-Robert Linnupuu
1007d77f96 fix: replace line separators when replacing editor's content 2025-06-04 15:42:35 +01:00
Carl-Robert Linnupuu
520bfa728b fix: proxyai default cc model 2025-06-04 11:25:53 +01:00
Carl-Robert Linnupuu
c50e14673d fix: issues with line separators 2025-06-04 11:24:18 +01:00
Carl-Robert Linnupuu
2e36e84ace 3.4.0 2025-06-02 14:15:50 +01:00
Carl-Robert Linnupuu
28b833859c fix: compatibility issues (temp) 2025-06-02 14:11:19 +01:00
Carl-Robert Linnupuu
954f2bb390 docs: update description 2025-06-02 12:59:38 +01:00
Carl-Robert Linnupuu
211318c0d2 docs: update changelog 2025-06-02 12:44:30 +01:00
Carl-Robert Linnupuu
5d82c0887f fix: internal IDE errors 2025-06-02 12:42:23 +01:00
Carl-Robert Linnupuu
00cb2098da feat: add claude 4 sonnet thinking model 2025-06-02 11:49:22 +01:00
Carl-Robert Linnupuu
9ada400502 fix: tag panel cursor type 2025-06-02 00:55:40 +01:00
Carl-Robert Linnupuu
016f0f2862 fix: header link anomalies on invalid paths 2025-06-02 00:05:48 +01:00
Carl-Robert Linnupuu
0b50f4b42f refactor: adjust default prompt 2025-06-02 00:04:59 +01:00
Carl-Robert Linnupuu
0f1e0a79a9 docs: update changelog 2025-06-01 19:11:01 +01:00
Carl-Robert Linnupuu
211329e10f fix: segment parsing 2025-06-01 18:11:47 +01:00
Carl-Robert Linnupuu
8a7a237a70 feat: show info balloon on direct apply 2025-06-01 16:29:52 +01:00
Carl-Robert Linnupuu
3c54fbd0c8 feat: add view and revert diff logic 2025-06-01 16:15:41 +01:00
Carl-Robert Linnupuu
9b6d3d4655 feat: improve failed diff error handling 2025-05-31 19:16:11 +01:00
Carl-Robert Linnupuu
a0d702df82 refactor: remove azure provider
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-05-30 02:28:11 +01:00
Carl-Robert Linnupuu
3a410e96e8 feat: select file in project tree on creation 2025-05-30 01:40:05 +01:00
Carl-Robert Linnupuu
b0659557aa fix: external file handling 2025-05-30 01:29:42 +01:00
Carl-Robert Linnupuu
611a30255d feat: show line numbers for diff type editors 2025-05-30 00:47:09 +01:00
Carl-Robert Linnupuu
8f016b73ff feat: prefill additional commit message input
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-05-30 00:12:15 +01:00
Carl-Robert Linnupuu
bf1c428f7d feat: add sonnet 4 and flash 2.5 models 2025-05-29 16:45:30 +01:00
Carl-Robert Linnupuu
4e54a2f90b refactor: sse message parsing
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-05-29 13:12:58 +01:00
Carl-Robert Linnupuu
01d6b51acf refactor: remove retry logic 2025-05-29 12:14:33 +01:00
Carl-Robert Linnupuu
eaa80f9044 fix: toolwindow editor's header UI inconsistancies 2025-05-29 12:12:40 +01:00
Carl-Robert Linnupuu
e260ac4854 feat: direct apply based on Dice-Sørensen coefficient
Some checks are pending
Build / Build (push) Waiting to run
Build / Verify Plugin (push) Blocked by required conditions
2025-05-28 22:02:55 +01:00
Carl-Robert Linnupuu
3e0c9d407b feat: diff based editing 2025-05-28 17:52:45 +01:00
Carl-Robert Linnupuu
81eb4d5100 3.3.0 2025-05-13 14:51:11 +01:00
Carl-Robert Linnupuu
e010c5f622 docs: update changelog 2025-05-13 13:55:49 +01:00
Carl-Robert Linnupuu
a31b1ec07e feat: add o4-mini model 2025-05-13 11:57:23 +01:00
Carl-Robert Linnupuu
447a0e1940 fix: npe on quota exceeded error (fixes #1007)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-05-13 11:23:31 +01:00
Carl-Robert Linnupuu
c0417e558b fix: increase max output tokens limit (fixes #1017) 2025-05-13 11:07:08 +01:00
Carl-Robert Linnupuu
430136d779 fix: response editor min height 2025-05-13 11:04:23 +01:00
Carl-Robert Linnupuu
f9f1282ab4 fix: next edit calls upon empty completion 2025-05-13 11:03:39 +01:00
Carl-Robert Linnupuu
b7f7f22fc3 fix: dispose next edits on similar strings 2025-05-13 00:57:46 +01:00
Carl-Robert Linnupuu
9c7649d365 fix: scroll down on submit 2025-05-13 00:11:27 +01:00
Carl-Robert Linnupuu
a7ee551226 fix: threading issues 2025-05-12 23:25:07 +01:00
Carl-Robert Linnupuu
cbf8d62b28 fix: NPE on missing credential (fixes #1021) 2025-05-12 23:24:07 +01:00
Carl-Robert Linnupuu
77e1f3c397 fix: run commit actions on background thread (fixes #1021) 2025-05-12 23:22:37 +01:00
Carl-Robert Linnupuu
ef998a7283 feat: add message loading and several other UI improvements 2025-05-12 22:56:43 +01:00
Carl-Robert Linnupuu
73f73f5950 feat: new tab experience 2025-05-12 16:02:39 +01:00
pholica
def02bba72
feat: new prompt format for granite (#1023)
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-05-12 13:23:47 +01:00
Danil Ovchinnikov
bce1fc2999
feat: new icon to indicate that LLaMA model is not downloaded (#1018) 2025-05-12 13:23:18 +01:00
Carl-Robert Linnupuu
2501d4d2c1 3.2.5
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-04-30 12:59:43 +01:00
Carl-Robert Linnupuu
b1d8b0ce07 docs: update changelog 2025-04-30 12:39:26 +01:00
Phil
9f3d1cf3bf
feat: use GoogleCompletionRequest.systemInstruction for system prompt (#989)
* feat: use GoogleCompletionRequest.systemInstruction for system prompt

* fix(test): req body assertion

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-04-29 17:59:47 +01:00
Carl-Robert Linnupuu
612ccc440a chore: fix build 2025-04-29 16:55:28 +01:00
Carl-Robert Linnupuu
77e651986d feat: special handling for generated code blocks without the path 2025-04-29 14:16:59 +01:00
Carl-Robert Linnupuu
9fb1f9b924 feat: support file paths in generated code blocks 2025-04-29 01:33:10 +01:00
Carl-Robert Linnupuu
f63326a57e 3.2.4
Some checks failed
Build / Build (push) Has been cancelled
Build / Verify Plugin (push) Has been cancelled
2025-04-23 12:12:43 +01:00
Carl-Robert Linnupuu
3fac93ef8b docs: update changelog 2025-04-23 11:51:27 +01:00
Carl-Robert Linnupuu
e0025bd78b fix: create lookup in read action (fixes #997)
Some checks failed
Build / Build (push) Failing after 2s
Build / Verify Plugin (push) Has been skipped
2025-04-22 13:26:31 +01:00
Carl-Robert Linnupuu
e9630f22a0 fix: internal ide error (fixes #1001) 2025-04-22 13:23:56 +01:00
somedev7
7e5828a7b9
feat: Add support for new OpenAI and Google models (#1002)
Co-authored-by: Slavik <slvk@dev>
2025-04-22 13:17:58 +01:00
Carl-Robert Linnupuu
0f69390632 3.2.3 2025-04-16 01:19:23 +01:00
Carl-Robert Linnupuu
7ffc45278c docs: update changelog 2025-04-16 00:57:59 +01:00
Carl-Robert Linnupuu
c59df693aa fix: filter duplicate referenced files (relates #975) 2025-04-16 00:46:30 +01:00
Carl-Robert Linnupuu
cb7389fd7f feat: add gpt-4.1 models (relates #994) 2025-04-15 23:14:45 +01:00
Carl-Robert Linnupuu
52978d2ce6 fix: several minor errors and warnings 2025-04-15 19:08:32 +01:00
dependabot[bot]
bbb0f54a12
chore(deps): bump com.rudderstack.sdk.java.analytics:analytics (#953)
Bumps [com.rudderstack.sdk.java.analytics:analytics](https://github.com/rudderlabs/rudder-sdk-java) from 3.0.0 to 3.1.2.
- [Release notes](https://github.com/rudderlabs/rudder-sdk-java/releases)
- [Changelog](https://github.com/rudderlabs/rudder-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rudderlabs/rudder-sdk-java/compare/v3.0.0...v3.1.2)

---
updated-dependencies:
- dependency-name: com.rudderstack.sdk.java.analytics:analytics
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 00:50:05 +01:00
dependabot[bot]
2d77618637
chore(deps): bump org.jetbrains.kotlin:kotlin-gradle-plugin (#952)
Bumps [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) from 2.0.0 to 2.1.20.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.0.0...v2.1.20)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 00:49:55 +01:00
dependabot[bot]
b83c6e8e88
chore(deps): bump org.jsoup:jsoup from 1.17.2 to 1.19.1 (#951)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.17.2 to 1.19.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.17.2...jsoup-1.19.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 00:49:43 +01:00
Aleksandr
7a5598eb1d
Add local.properties to gitignore and register runCustomIde task using customIdePath property. (#973)
Co-authored-by: a.iudin <a.iudin@vk.team>
2025-04-07 00:49:18 +01:00
Violine
2a6fc7c7ba
feat: Import export prompts (#966)
* feat: added import and export prompt button

* feat: export prompts to file

* feat: import prompts from file

---------

Co-authored-by: alexander.korovin <alexander.korovin@vk.team>
2025-04-07 00:49:07 +01:00
Carl-Robert Linnupuu
3cae567e4f 3.2.2 2025-04-06 19:48:13 +01:00
Carl-Robert Linnupuu
3f2c8e1a42 docs: update changelog 2025-04-06 19:07:55 +01:00
Carl-Robert Linnupuu
b7d6400594 fix: remove FF when triggering next edits manually 2025-04-06 18:59:54 +01:00
Carl-Robert Linnupuu
4247cbddfb feat: add gemini 2.5 pro model 2025-04-06 18:37:57 +01:00
Carl-Robert Linnupuu
1ec5e3ad58 fix: UI issues when image in context 2025-04-06 17:45:58 +01:00
Carl-Robert Linnupuu
109aa46131 docs: update changelog 2025-04-04 17:34:49 +01:00
Carl-Robert Linnupuu
1dfca8116b fix: update gRPC client with SSL support 2025-04-04 16:46:02 +01:00
Carl-Robert Linnupuu
46aa0be33a 3.2.1 2025-04-03 15:24:15 +01:00
Carl-Robert Linnupuu
faf8e90835 docs: update changelog 2025-04-03 14:56:12 +01:00
Carl-Robert Linnupuu
60284004ef fix: EDT issues when reading files 2025-04-03 14:38:02 +01:00
Carl-Robert Linnupuu
8575cfa40d fix: toolwindow id inconsistencies 2025-04-03 14:05:02 +01:00
Carl-Robert Linnupuu
c460e9dd8a fix: remove clear tags from editor context menu 2025-04-03 14:04:43 +01:00
Carl-Robert Linnupuu
7fe98cc6d5 docs: add cloudfront 2025-04-03 13:48:29 +01:00
Carl-Robert Linnupuu
9a54623d92 feat: add gemini 2.5 pro (exp) model (closes #959) 2025-04-02 00:23:37 +01:00
Carl-Robert Linnupuu
fcef0ed9f8 3.2.0 2025-03-28 12:47:45 +00:00
Carl-Robert Linnupuu
1b3afe8a84 fix: do not read file content for directories 2025-03-28 12:32:30 +00:00
Carl-Robert Linnupuu
7dd6065c31 docs: update changelog 2025-03-28 11:58:50 +00:00
Carl-Robert Linnupuu
cf7551e939 feat: img support for claude 3.7 sonnet 2025-03-28 11:47:16 +00:00
Carl-Robert Linnupuu
4a62471daa feat: replace custom suggestions UI logic with editor lookup API 2025-03-28 11:44:11 +00:00
dependabot[bot]
3de3c65deb
chore(deps): bump org.apache.commons:commons-text from 1.12.0 to 1.13.0 (#941)
Bumps org.apache.commons:commons-text from 1.12.0 to 1.13.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 11:14:44 +00:00
dependabot[bot]
9d94af6fd4
chore(deps): bump com.squareup.okio:okio from 3.9.0 to 3.10.2 (#817)
Bumps [com.squareup.okio:okio](https://github.com/square/okio) from 3.9.0 to 3.10.2.
- [Release notes](https://github.com/square/okio/releases)
- [Changelog](https://github.com/square/okio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/square/okio/compare/parent-3.9.0...3.10.2)

---
updated-dependencies:
- dependency-name: com.squareup.okio:okio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2025-03-27 11:14:28 +00:00
dependabot[bot]
f6ad5b5f03
chore(deps): bump com.fasterxml.jackson:jackson-bom (#942)
Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.2 to 2.18.3.
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.2...jackson-bom-2.18.3)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-27 11:13:52 +00:00
Violine
d36f37bb90
feat: clear chat tag by keyboard shortcut (#946)
* Added a keyboard shortcut to remove tags from an active chat

* Replace Main.immediate dispatcher to EdtDispatcher

---------

Co-authored-by: alexander.korovin <alexander.korovin@vk.team>
2025-03-27 11:13:17 +00:00
Pavel Khattu
3983b39dd1
feat: custom base host support for anthropic provider (#948)
* Add support for custom baseHost for Anthropic provider
https://github.com/carlrobertoh/ProxyAI/issues/697

* Use intellij-provided socket factory and trust manager for default client

---------

Co-authored-by: borgotta <paul.khattu@gmail.com>
2025-03-27 11:11:38 +00:00
Carl-Robert Linnupuu
566a065ca3 3.1.1 2025-03-24 12:20:58 +00:00
Carl-Robert Linnupuu
1b6b26354e docs: update changelog 2025-03-24 11:50:47 +00:00
Carl-Robert Linnupuu
b8b78dd079 fix: do not trigger next edit diff when no change detected 2025-03-24 10:21:46 +00:00
Carl-Robert Linnupuu
55bd3008ff feat: re-add logic to include the active editor selection when creating a new chat 2025-03-24 10:19:23 +00:00
dependabot[bot]
38ab9d753e
chore(deps): bump com.google.code.gson:gson from 2.10.1 to 2.12.1 (#843)
Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.10.1 to 2.12.1.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md)
- [Commits](https://github.com/google/gson/compare/gson-parent-2.10.1...gson-parent-2.12.1)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 01:12:12 +00:00
dependabot[bot]
c5f043521c
chore(deps): bump org.assertj:assertj-core from 3.26.3 to 3.27.3 (#924)
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.26.3 to 3.27.3.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.26.3...assertj-build-3.27.3)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 01:11:13 +00:00
dependabot[bot]
db029afe1d
chore(deps): bump io.github.bonede:tree-sitter from 0.24.4 to 0.24.5 (#925)
Bumps [io.github.bonede:tree-sitter](https://github.com/bonede/tree-sitter-ng) from 0.24.4 to 0.24.5.
- [Release notes](https://github.com/bonede/tree-sitter-ng/releases)
- [Commits](https://github.com/bonede/tree-sitter-ng/compare/v0.24.4...v0.24.5)

---
updated-dependencies:
- dependency-name: io.github.bonede:tree-sitter
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 01:10:38 +00:00
dependabot[bot]
a7091e7985
chore(deps): bump org.junit:junit-bom from 5.11.0 to 5.12.1 (#926)
Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.11.0 to 5.12.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.11.0...r5.12.1)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 01:10:28 +00:00
Violine
577d8bc084
fix: custom open ai settings UI (#938)
* Added Coroutine dispatchers for EDT

* Don't apply custom open ai settings immediately

* Use Coroutine EDT dispatchers for update UI

---------

Co-authored-by: alexander.korovin <alexander.korovin@vk.team>
2025-03-24 01:10:07 +00:00
Aleksandr
2bec39576a
fix: suggestions popup positioning and tag panel styling (#934)
Commit Summary:
- Improve suggestions popup positioning with screen bounds check
- Replace wildcard imports with explicit imports
- Fix tag panel sizing and styling
- Properly scale tag height using JBUI
- Improve close button margins and sizing

Co-authored-by: a.iudin <a.iudin@vk.team>
2025-03-24 01:09:29 +00:00
atifsld
3818493b67
fix: typo in Rubber Duck persona (#892)
Co-authored-by: Atif Saleed <atif@Atifs-Mac-mini.local>
2025-03-24 01:08:52 +00:00
Mirko Jantschke
408314d1e2
fix: use correct array indices (#933)
Co-authored-by: Mirko Jantschke <mjantschke@novomind.com>
2025-03-24 01:07:44 +00:00
Carl-Robert Linnupuu
47ac9c2d8a chore: disable plugin verifier (temp) 2025-03-24 01:04:29 +00:00
Carl-Robert Linnupuu
ad472f6329 3.1.0 2025-03-20 12:44:04 +00:00
Carl-Robert Linnupuu
bcf1e6fcf8 fix: long running task on EDT 2025-03-20 12:18:54 +00:00
Carl-Robert Linnupuu
23437c1cea docs: update changelog, plugin and repo description 2025-03-20 02:32:27 +00:00
Carl-Robert Linnupuu
e60640f97f feat: improve chat tags UX 2025-03-20 01:36:52 +00:00
Carl-Robert Linnupuu
7984d5211c fix: temp disable code completions when next edits is active 2025-03-19 16:49:58 +00:00
Carl-Robert Linnupuu
e4f6a5234a feat: add popup menu with close actions for chat tags 2025-03-18 18:41:44 +00:00
Carl-Robert Linnupuu
f121039dbd fix: next edit trigger on random events 2025-03-18 18:40:27 +00:00
Carl-Robert Linnupuu
49e4b03bbe refactor: chat configuration location and definitions 2025-03-17 17:20:42 +00:00
Carl-Robert Linnupuu
7bd25b30fc fix: editorContextTag state on toggle 2025-03-17 16:04:57 +00:00
Carl-Robert Linnupuu
5f58880884
feat: improved multi-line edits (#923)
* fix: llama.cpp copy task

* feat: next edit predictions

* feat: minor clean up
2025-03-17 15:32:08 +00:00
Violine
c75fad5ec7
feat: import export custom openai settings (#921)
* Add import and export button to custom Open AI Settings

* Export Custom OpenAI settings to file

* Import Custom OpenAI settings from file

* Replace deprecated JTabbedPane

* Fix update template type

---------

Co-authored-by: alexander.korovin <alexander.korovin@vk.team>
2025-03-17 12:20:31 +00:00
Aleksandr
7d472e8cf1
feat: psi structure for chat (#897)
* Change SwingDispatcher to Dispatchers.Main.immediate

* Change PSI analyzer package

* Added a blank for PSI analysis in the chat

* Add support for code structure analysis and improve tag management

- Refactor TagManager to use thread-safe collections
- Add support for new tag types (EditorTagDetails, FileTagDetails)
- Update UI components to handle structure analysis
- Add new icon for structure tags

* Refactoring tags v2

* Add PSI structure to chat settings

* Add VirtualFile to ClassStructure and improve PSI token tracking

* Support passing PSI structure to completion requests

* Add removeListener method to TagManager and fix memory leak

* Update buildOpenAIMessages to support PSI structure for all providers

* Add selected editor tag when initializing user input header

* Add chat settings configuration screen

* Remove unused editor tag and PSI structure settings panels

---------

Co-authored-by: a.iudin <a.iudin@vk.team>
2025-03-11 17:57:55 +00:00
Carl-Robert Linnupuu
97185109ad 3.0.0 2025-03-04 00:48:44 +00:00
Carl-Robert Linnupuu
ad16f5c98f chore: rebranding 2025-03-04 00:25:50 +00:00
Carl-Robert Linnupuu
6a3ec495ca 2.16.4 2025-02-25 23:55:12 +00:00
Carl-Robert Linnupuu
557cd87988 fix: compatibility issue 2025-02-25 23:40:51 +00:00
Carl-Robert Linnupuu
4aa731a1bb chore: disable code completion and code assistant by default 2025-02-25 22:19:13 +00:00
Carl-Robert Linnupuu
d51a1ceb64 feat: add Claude 3.7 Sonnet (CodeGPT) 2025-02-25 22:18:21 +00:00
Carl-Robert Linnupuu
b0475824d9 2.17.0 2025-02-12 14:52:59 +00:00
Carl-Robert Linnupuu
38c6f9e090 chore: change plugin's name to Proxy AI 2025-02-12 11:54:34 +00:00
carlrobertoh@gmail.com
55a5dacd5d fix: remove internal api usages 2025-02-11 13:43:53 +00:00
carlrobertoh@gmail.com
012c8c92ff 2.16.3 2025-02-11 12:29:12 +00:00
carlrobertoh@gmail.com
07ec8ca896 docs: update changelog 2025-02-11 12:06:45 +00:00
carlrobertoh@gmail.com
fa61e1485c fix: stop statusbar spinner when request fails 2025-02-11 01:37:34 +00:00
carlrobertoh@gmail.com
d19dd4bb23 fix: find referenced files outside of edt 2025-02-11 01:36:39 +00:00
carlrobertoh@gmail.com
db9b8d177c feat: support latest gemini models (closes #860) 2025-02-11 00:45:25 +00:00
carlrobertoh@gmail.com
b3c082f0c9 chore: enable code completion by default 2025-02-10 19:32:08 +00:00
carlrobertoh@gmail.com
7346f765e9 fix: do not include duplicate files 2025-02-10 18:45:23 +00:00
carlrobertoh@gmail.com
7cd9644932 fix: include unsaved content in prompt 2025-02-10 18:44:18 +00:00
carlrobertoh@gmail.com
1a3fbdd94a fix: inconsistencies in chat tags 2025-02-10 17:57:24 +00:00
carlrobertoh@gmail.com
9cc8b9c18c fix: remove clashing coroutines deps 2025-02-10 17:34:16 +00:00
carlrobertoh@gmail.com
25151ee42e feat: add gemini 2.0 flash model and update model combobox menu ui 2025-02-10 17:14:46 +00:00
Aleksandr
6461e1de79
feat: multiple custom providers (#859)
* Initial changes to switch to multiple custom providers

* Change CredentialKey from enum to sealed class

* Changes in the form of settings, support for saving and other logic

* Add copy service settings logic

* Add service settings migration logic

* Fixed the error of working with passwords on the main thread, added api token cleanup for remote settings

* Check style fix

---------

Co-authored-by: a.iudin <a.iudin@vk.team>
2025-02-09 15:21:39 +00:00
Carl-Robert Linnupuu
93c711d5da 2.16.2 2025-02-06 14:01:53 +00:00
Carl-Robert Linnupuu
c255b3b347 docs: update changelog 2025-02-06 12:12:19 +00:00
Carl-Robert Linnupuu
57479957fc fix: prevent race condition during tool window initialization (fixes #856) 2025-02-05 22:43:59 +00:00
Carl-Robert Linnupuu
619254926e fix: temp workaround for invalid openai model state (fixes #842) 2025-02-05 16:56:58 +00:00
Carl-Robert Linnupuu
00c1c920ba fix: adjust tag panel layout to use GridBagLayout for proper vertical alignment (relates #857) 2025-02-05 16:39:42 +00:00
Carl-Robert Linnupuu
4fbcebf82e 2.16.1 2025-02-04 00:52:20 +00:00
Carl-Robert Linnupuu
cb8eb90b9a refactor: adjust chat avatar sizes 2025-02-04 00:25:50 +00:00
Carl-Robert Linnupuu
79bbfbe8bb fix: change chat response editor type to 'Untyped' (fixes #832) 2025-02-03 23:51:04 +00:00
Carl-Robert Linnupuu
56e536e400 fix: replace 'Open Prediction' shortcut key (fixes #839) 2025-02-03 23:44:42 +00:00
Carl-Robert Linnupuu
14c3d8a435 feat: status toolbar completion progress for all core actions 2025-02-03 23:40:36 +00:00
Carl-Robert Linnupuu
f9b515b7d3 fix: adjust chat tags when switching tabs 2025-02-03 22:39:33 +00:00
Carl-Robert Linnupuu
4b2f01596a fix: NPE during tool window init (tool window is shown before the chat panel is created) 2025-02-03 17:45:57 +00:00
Carl-Robert Linnupuu
6d236c1e37 docs: update changelog 2025-02-03 17:17:19 +00:00
Carl-Robert Linnupuu
aa75902675 fix: selection not included in prompt (fixes #844) 2025-02-03 17:07:57 +00:00
Carl-Robert Linnupuu
668c8ed27e feat: support code editing and commit message generation for Deepseek R1 model (closes #835) 2025-02-03 17:05:00 +00:00
Carl-Robert Linnupuu
33760001d7 fix: improve thought process parsing and displaying 2025-02-03 16:14:57 +00:00
Carl-Robert Linnupuu
e348e53242 feat: display avatar image (CodeGPT) 2025-02-03 11:32:54 +00:00
Carl-Robert Linnupuu
fab8d416ee feat: support disabling system prompt 2025-02-03 02:00:37 +00:00
Carl-Robert Linnupuu
38d935ac73 feat: add o3-mini model 2025-02-02 03:22:55 +00:00
Carl-Robert Linnupuu
27a0023d36 fix: invoke toolwindow content in edt and fix other UI anomalies 2025-01-31 18:17:55 +00:00
Aleksandr
72f31bf56f
feat: Kotlin psi structure for FIM. (#829)
* Add Kotlin dependency and configuration file

* Add collect dependency structure option to code completion settings

* Add Kotlin PSI structure analysis and serialization components

* Add repository name and dependencies structure to InfillRequest and update prompt template for QWEN_2_5

---------

Co-authored-by: a.iudin <a.iudin@vk.team>
2025-01-29 15:16:05 +00:00
Carl-Robert Linnupuu
2714f80343 2.16.0 2025-01-28 12:21:56 +00:00
Carl-Robert Linnupuu
9cad8452cc docs: update changelog 2025-01-28 12:00:57 +00:00
Carl-Robert Linnupuu
71aa61b7b6 fix: minor ui improvements and fixes 2025-01-28 02:41:06 +00:00
Carl-Robert Linnupuu
4e149c54de feat: support DeepSeek R1 and V3 models 2025-01-27 21:51:12 +00:00
Carl-Robert Linnupuu
89a3b669c5 refactor: code clean up and minor UI improvements 2025-01-26 02:21:58 +00:00
Carl-Robert Linnupuu
f7c49f5f90 feat: option to disable open file chat tag and other minor improvements 2025-01-24 12:36:27 +00:00
Carl-Robert Linnupuu
6044f88697 fix: duplicate actions and other keymap improvements (fixes #826) 2025-01-23 02:12:10 +00:00
Carl-Robert Linnupuu
c2d683fd7c feat: new 'Include Current Changes' chat action 2025-01-22 23:07:40 +00:00
Carl-Robert Linnupuu
c27d8adfc9 feat: redesign chat user input component 2025-01-22 23:06:16 +00:00
Carl-Robert Linnupuu
445b71184c 2.15.2 2025-01-13 20:56:13 +00:00
Carl-Robert Linnupuu
ebef58f0f9 fix: remove paste predictions 2025-01-13 20:40:49 +00:00
Carl-Robert Linnupuu
efcade76f2 docs: update changelog 2025-01-13 14:03:46 +00:00
Carl-Robert Linnupuu
5b0ad1a7d0 feat: add additional git diff actions 2025-01-13 13:54:06 +00:00
Carl-Robert Linnupuu
10a5d77df0 fix: consistent model combobox title (fixes #814) 2025-01-10 22:31:26 +00:00
Carl-Robert Linnupuu
f2bb264244 feat: add open code assistant diff in editor action 2025-01-08 01:43:04 +00:00
Carl-Robert Linnupuu
c3031bbda8 feat: add sample code assistant guideline 2025-01-07 02:07:22 +00:00
Carl-Robert Linnupuu
b3ca5bb41a 2.15.1 2025-01-07 01:19:33 +00:00
Carl-Robert Linnupuu
5eef1eabef fix: code assistant next change scrolling 2025-01-07 01:01:46 +00:00
Carl-Robert Linnupuu
81615f7fd6 fix: prevent negative offset in caret movement 2025-01-06 13:26:11 +00:00
Carl-Robert Linnupuu
89e59e2159 docs: update changelog 2025-01-06 12:39:36 +00:00
Carl-Robert Linnupuu
55139b3661 feat: add paste prediction action 2025-01-06 12:25:13 +00:00
Carl-Robert Linnupuu
43cfcf44ad feat: display first code assistant suggestion closest to cursor 2025-01-06 00:02:44 +00:00
Carl-Robert Linnupuu
49fdcab40f fix: adjust code assistant token limits 2025-01-05 23:31:31 +00:00
Carl-Robert Linnupuu
fda1c2a18b fix: add missing shortcut labels and rename a few 2025-01-05 23:09:03 +00:00
Carl-Robert Linnupuu
0a8289557c fix: apply changes when action is set to a different keymap shortcut 2025-01-05 22:34:39 +00:00
Carl-Robert Linnupuu
0c3c3fcd9c fix: code assistant popup disposal 2025-01-05 13:26:23 +00:00
Carl-Robert Linnupuu
f41e0af773 2.15.0 2024-12-30 10:36:31 +00:00
Carl-Robert Linnupuu
9424dc08fa docs: update changelog and plugin description 2024-12-30 01:02:53 +00:00
Carl-Robert Linnupuu
724870a4ed fix: do not process chat files for codegpt api 2024-12-30 00:22:34 +00:00
Carl-Robert Linnupuu
5a9c7c328e fix: cursorOffset for lookup predictions 2024-12-29 21:48:24 +00:00
Carl-Robert Linnupuu
091fda4557 fix: illegal component state exception 2024-12-27 00:44:47 +00:00
Carl-Robert Linnupuu
a596fa969c feat: add 'Include Open Files' chat action item (closes #796) 2024-12-27 00:21:08 +00:00
Carl-Robert Linnupuu
8d6ca73064
feat: code assistant (#810)
* feat: code assistant implementation

* refactor: clean up
2024-12-26 23:27:18 +00:00
Carl-Robert Linnupuu
d81648549c 2.14.3 2024-12-17 13:55:55 +00:00
Carl-Robert Linnupuu
c3592d8e11 fix: change fim override description message (relates #799) 2024-12-17 11:50:15 +00:00
Carl-Robert Linnupuu
c5f4ba772a docs: update changelog 2024-12-17 11:26:06 +00:00
Carl-Robert Linnupuu
54fa78e7e6 fix: model value change for empty conversations 2024-12-17 11:06:28 +00:00
Carl-Robert Linnupuu
1c2a5496e4 fix: execute chat completion request in background thread 2024-12-17 10:43:33 +00:00
Carl-Robert Linnupuu
59fe48f00f fix: change the order of custom openai applied settings 2024-12-17 10:33:50 +00:00
Carl-Robert Linnupuu
be9ae08693 feat: support copying user and response messages (closes #791) 2024-12-17 10:03:18 +00:00
Carl-Robert Linnupuu
0d52dc5ae8 feat: add popup menu for toolwindow chat textpane 2024-12-16 12:43:45 +00:00
Carl-Robert Linnupuu
2b53033b69 fix: do not unescape code (fixes #169, #437) 2024-12-16 11:50:38 +00:00
Carl-Robert Linnupuu
bd9c0b242d 2.14.2 2024-12-12 10:08:05 +00:00
Carl-Robert Linnupuu
279f629252 docs: update changelog 2024-12-12 09:46:00 +00:00
Carl-Robert Linnupuu
ba12865a72 feat: support partial code completion acceptance 2024-12-11 14:26:07 +00:00
Carl-Robert Linnupuu
259c3d05cf feat: support partial code completion acceptance 2024-12-10 23:01:37 +00:00
Carl-Robert Linnupuu
453fa31c65 2.14.1 2024-12-06 11:13:18 +00:00
Carl-Robert Linnupuu
6bbc0a51a1 docs: update changelog 2024-12-06 10:46:08 +00:00
Carl-Robert Linnupuu
71dd9463c4 fix: disable submission when current response is ongoing 2024-12-06 10:03:35 +00:00
Carl-Robert Linnupuu
dc8dcb1564 fix: get/validate credentials outside of EDT (fixes #374) 2024-12-05 21:02:52 +00:00
Carl-Robert Linnupuu
e23aac95b4 feat: streaming support for o1 models 2024-12-05 21:02:03 +00:00
Carl-Robert Linnupuu
55172e53ff 2.14.0 2024-12-04 12:50:37 +00:00
Carl-Robert Linnupuu
6cd77e41fa docs: update changelog 2024-12-04 12:39:31 +00:00
Carl-Robert Linnupuu
fcea1ed164 fix: disable tree-sitter for CodeGPT provider 2024-12-04 09:24:24 +00:00
Carl-Robert Linnupuu
7a802cee97 fix: NPE when code completion parser not supported 2024-12-03 17:11:20 +00:00
Carl-Robert Linnupuu
cdb0d7b7ad fix: NPE caused by lookup element sorter 2024-12-03 17:10:46 +00:00
Jack Boswell
3c84f2e99c
feat: use the Ollama generate API for FIM templates (#772)
* Gradle wrapper 8.11

* Use Ollama API for FIM

* Shorten long line

* Allow optionally overriding ollama FIM template

* fix: configurable actions

* feat: improve UX

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-12-03 00:01:16 +00:00
Carl-Robert Linnupuu
4e147dc62c feat: improve code completion git diff context 2024-12-02 18:23:05 +00:00
Carl-Robert Linnupuu
78fa38ca13 docs: update changelog 2024-12-01 11:01:57 +00:00
Carl-Robert Linnupuu
9c27a60d10 fix: adjust qwen 2.5 coder stop tokens 2024-12-01 00:57:34 +00:00
Carl-Robert Linnupuu
54e5e8331c fix: unstaged git diff 2024-12-01 00:43:44 +00:00
Carl-Robert Linnupuu
4e5b28048b feat: add latest qwen 2.5 coder models and adjust stop tokens 2024-12-01 00:01:26 +00:00
Carl-Robert Linnupuu
3670fdfb0f feat: make Codestral as default code completion model and remove StarCoder entirely 2024-11-30 23:25:17 +00:00
Carl-Robert Linnupuu
f84a659cf6 feat: support multi-line code completions 2024-11-30 23:12:14 +00:00
Carl-Robert Linnupuu
6fef9c26bb 2.13.1 2024-11-27 11:05:38 +00:00
Carl-Robert Linnupuu
b51574ad5c docs: update changelog 2024-11-27 10:53:56 +00:00
Carl-Robert Linnupuu
0a156bcd68 fix: NPE for remaining editor completion state (#777) 2024-11-27 10:50:13 +00:00
Carl-Robert Linnupuu
4611a21ac3 fix: do not trigger code completions when active lookup present 2024-11-27 10:42:42 +00:00
Carl-Robert Linnupuu
8f7c38c705 2.13.0 2024-11-25 11:41:32 +00:00
Carl-Robert Linnupuu
ee4aee2a57 fix: remaining completion when code completion overtyped 2024-11-25 11:32:14 +00:00
Carl-Robert Linnupuu
5a75d1bfd4 docs: update changelog 2024-11-25 10:18:39 +00:00
Carl-Robert Linnupuu
9b326b8830 fix: use JB in-built logic for creating git diff 2024-11-25 00:06:24 +00:00
Carl-Robert Linnupuu
71489db427 fix: refresh chat actions upon apply 2024-11-22 17:43:17 +00:00
Carl-Robert Linnupuu
276e3db7b9 fix: add initial preferred size for prompts tree decorator 2024-11-22 13:44:25 +00:00
Carl-Robert Linnupuu
e4725cb299 feat: add codestral code model 2024-11-22 11:04:43 +00:00
Carl-Robert Linnupuu
89344346c8
feat: consolidate all prompts into a single settings view (#775)
* feat: consolidate all prompts into a single configurable

* feat: implement prompts settings view

* feat: use prompts from PromptsSettings state

* feat: use startInNewWindow settings value

* fix: landing view action placeholder

* feat: update default chat prompts
2024-11-22 10:02:13 +00:00
Jack Boswell
fdc4134aec
chore: bump gradle wrapper 8.11 (#771) 2024-11-21 09:54:19 +00:00
Carl-Robert Linnupuu
148946c5ee refactor: chat request message building 2024-11-18 10:38:19 +00:00
Carl-Robert Linnupuu
1f74dd2311 2.12.5 2024-11-18 10:10:15 +00:00
Carl-Robert Linnupuu
ceb82ff9eb docs: update changelog 2024-11-18 09:37:05 +00:00
Carl-Robert Linnupuu
77101792a4 fix: user chat message rendering 2024-11-18 09:34:05 +00:00
Carl-Robert Linnupuu
0af7d43a06 refactor: load default prompt from resource file and improve instructions 2024-11-17 16:23:17 +00:00
Carl-Robert Linnupuu
cfd5f6f651 fix: chat response streaming for messages received faster than polling rate (fixes #757) 2024-11-15 18:25:40 +00:00
Carl-Robert Linnupuu
2ab6d1a54c feat: explain commits from vcs log tree (relates #688) 2024-11-15 09:07:32 +00:00
Carl-Robert Linnupuu
5ee8ef941d 2.12.4 2024-11-14 16:27:52 +00:00
Carl-Robert Linnupuu
6cdd075706 fix: trim completion values before adding to lookup 2024-11-14 15:54:45 +00:00
Carl-Robert Linnupuu
4b6a5481e2 docs: update changelog 2024-11-14 14:30:10 +00:00
Carl-Robert Linnupuu
2420d068e7 fix: fallback to default inline insertion logic when codegpt elements not found 2024-11-14 14:19:38 +00:00
Carl-Robert Linnupuu
efced71bc5 chore: bump llm-client 2024-11-14 13:56:33 +00:00
Carl-Robert Linnupuu
755791aea8 refactor: rewrite method lookup listener and improve error handling 2024-11-14 13:56:07 +00:00
Carl-Robert Linnupuu
808fdfaf7e refactor: replace inline completion diffing with editor suffix matching 2024-11-14 11:58:56 +00:00
Carl-Robert Linnupuu
25d8835db1 feat: disable code completions when rate limit exceeded 2024-11-14 10:03:30 +00:00
Carl-Robert Linnupuu
8dd74b3d84 feat: add Qwen 2.5 Coder (32B) model (CodeGPT) 2024-11-14 00:16:17 +00:00
Carl-Robert Linnupuu
284dc66961 fix: image notification condition (fixes #711) 2024-11-13 23:28:23 +00:00
Carl-Robert Linnupuu
8daf4f5f05
feat: improve code completion user experience (#763) 2024-11-13 23:18:53 +00:00
Carl-Robert Linnupuu
4e14635492 2.12.3 2024-11-07 09:49:37 +00:00
Carl-Robert Linnupuu
e680092e49 docs: update changelog 2024-11-07 09:07:42 +00:00
Carl-Robert Linnupuu
6b71d1435a chore: bump llm-client 2024-11-07 09:07:25 +00:00
Carl-Robert Linnupuu
829f54d4d1 docs: update signup message 2024-11-07 09:06:38 +00:00
Carl-Robert Linnupuu
358c1105b7 fix: include previously attached files with each message 2024-11-04 15:39:11 +00:00
Carl-Robert Linnupuu
15f589d17a 2.12.2 2024-11-04 12:38:42 +00:00
Carl-Robert Linnupuu
4502c663f9 docs: update changelog 2024-11-04 12:11:22 +00:00
Carl-Robert Linnupuu
d13652ff40 chore: oai compatibility for ollama chat completions 2024-11-04 12:06:43 +00:00
Carl-Robert Linnupuu
50ceecbe5a chore: bump llm-client (fixes #744) 2024-11-03 01:10:01 +00:00
Carl-Robert Linnupuu
ab7f5f9122 fix: prompt text field height issues (fixes #747) 2024-11-02 18:21:09 +00:00
Carl-Robert Linnupuu
9f2669e0b1 fix: endless loading when persona name or instrctions are not set (fixes #748) 2024-11-02 16:25:08 +00:00
Carl-Robert Linnupuu
1f453a47eb 2.12.1 2024-11-01 14:44:28 +00:00
Carl-Robert Linnupuu
eaa5e7929b docs: update changelog 2024-11-01 14:29:27 +00:00
Carl-Robert Linnupuu
478340fe11 fix: code completion state when session contains remining completion 2024-11-01 14:27:18 +00:00
Carl-Robert Linnupuu
04713fe534 feat: add gemini 1.5 pro model (CodeGPT) 2024-11-01 14:24:52 +00:00
Carl-Robert Linnupuu
39c67adcfd Revert "refactor: clean up unused messages"
This reverts commit 7dc610d126.
2024-10-29 14:23:44 +00:00
Carl-Robert Linnupuu
8c16f03e95 2.12.0 2024-10-29 11:20:38 +00:00
Carl-Robert Linnupuu
f10f3a34f9 docs: update changelog 2024-10-29 10:10:29 +00:00
Carl-Robert Linnupuu
a11e667507 fix: build errors caused by missing message keys 2024-10-29 09:40:53 +00:00
Carl-Robert Linnupuu
4912de7fc4 docs: update readme and plugin description 2024-10-29 09:32:18 +00:00
Carl-Robert Linnupuu
7dc610d126 refactor: clean up unused messages 2024-10-29 00:19:23 +00:00
Carl-Robert Linnupuu
dfa551806b feat: additional validation for Auto Apply action 2024-10-28 23:59:51 +00:00
Carl-Robert Linnupuu
cc47859859 fix: total token calculation for highlighted texts 2024-10-28 23:21:53 +00:00
Carl-Robert Linnupuu
33345e3c2e refactor: ensure action is executed on EDT 2024-10-28 17:28:55 +00:00
Carl-Robert Linnupuu
72155a82e4 fix: code completions enabled/disabled state 2024-10-28 17:15:52 +00:00
Carl-Robert Linnupuu
6fbea7d4b8
feat: auto apply (#743) 2024-10-28 16:33:50 +00:00
Carl-Robert Linnupuu
ffa1fbbacf 2.11.7 2024-10-18 15:42:26 +03:00
Carl-Robert Linnupuu
5cc1a0e7f5 docs: update changelog 2024-10-18 15:09:17 +03:00
Carl-Robert Linnupuu
079ad80e60 refactor: improve chat response rendering performance 2024-10-18 01:29:28 +03:00
Carl-Robert Linnupuu
d5d03a53b1 refactor: improve chat completion call handling 2024-10-17 02:24:57 +03:00
Carl-Robert Linnupuu
d0e74d43a2 refactor: improve project directory handling for git repository lookup 2024-10-16 15:50:02 +03:00
Carl-Robert Linnupuu
4521a3335c fix: OpenAI edit code request building (fixes #737) 2024-10-16 15:32:29 +03:00
Carl-Robert Linnupuu
f5da7c4419 2.11.6 2024-10-15 17:02:26 +03:00
Carl-Robert Linnupuu
46ee0a0d43 docs: update changelog 2024-10-15 13:53:11 +03:00
Carl-Robert Linnupuu
8348e3c061 fix: resolve inconsistent text rendering 2024-10-15 13:20:26 +03:00
Carl-Robert Linnupuu
2c68d2e1be fix: toolwindow response editor diff action 2024-10-14 23:54:48 +03:00
Carl-Robert Linnupuu
516183ee3f fix: NPE on suggestion actions when no files are opened in editor (fixes #725) 2024-10-14 16:56:32 +03:00
Carl-Robert Linnupuu
749127e1ef fix: do not track updates for temp files (relates #716) 2024-10-14 16:32:28 +03:00
Carl-Robert Linnupuu
0bc4ccced0 2.11.5 2024-10-10 12:53:10 +03:00
Carl-Robert Linnupuu
bd55906ebd docs: update plugin description 2024-10-10 12:38:55 +03:00
Carl-Robert Linnupuu
9c5f571a1e docs: update changelog 2024-10-09 15:29:18 +03:00
Carl-Robert Linnupuu
8fd4556e27 feat: keep previous files in context while chatting 2024-10-09 15:16:37 +03:00
Carl-Robert Linnupuu
6363053277 fix: chat UI threading issues (fixes #730) 2024-10-09 12:34:29 +03:00
Carl-Robert Linnupuu
020e1aff7f chore: include metadata in codegpt requests 2024-10-09 11:57:03 +03:00
Carl-Robert Linnupuu
30c255c5b5 feat: support high context limits (CodeGPT) 2024-10-08 00:33:33 +03:00
Ruslans Tarasovs
d336b9ec8b
feat: support of parsing Custom OpenAI response as Code Completions (#727) 2024-10-07 21:42:44 +03:00
Carl-Robert Linnupuu
7b9280480e 2.11.4 2024-10-01 17:51:03 +03:00
Carl-Robert Linnupuu
99d087622b docs: update changelog 2024-10-01 17:43:01 +03:00
Carl-Robert Linnupuu
a5368d9341 fix: chat response rendering 2024-10-01 17:31:45 +03:00
Carl-Robert Linnupuu
bacfba16d9 fix: chat response rendering 2024-10-01 16:21:36 +03:00
Carl-Robert Linnupuu
d58c1d8bc0 docs: update plugin description 2024-10-01 14:55:00 +03:00
Carl-Robert Linnupuu
6b4e22b545 feat: support qwen2.5 and o1 models 2024-10-01 13:22:57 +03:00
Carl-Robert Linnupuu
c614411315 docs: update plugin description 2024-09-25 13:23:50 +03:00
Carl-Robert Linnupuu
3f76984f74 docs: update readme 2024-09-25 01:51:41 +03:00
Carl-Robert Linnupuu
a99e5b0963 2.11.3 2024-09-25 01:48:06 +03:00
Carl-Robert Linnupuu
9ee0e9ec8b docs: update changelog 2024-09-25 01:37:43 +03:00
Carl-Robert Linnupuu
f59859745e docs: update readme and description 2024-09-25 00:59:25 +03:00
Carl-Robert Linnupuu
9e979a055e fix: remove claude messages immutability (fixes #707) 2024-09-24 22:25:17 +03:00
Carl-Robert Linnupuu
aeff12cb32 2.11.2 2024-09-24 14:08:36 +03:00
Carl-Robert Linnupuu
80cab0205b docs: update changelog 2024-09-24 12:09:40 +03:00
Carl-Robert Linnupuu
c87ef10d5c chore: bump gradle-intellij-plugin version 2024-09-24 12:01:45 +03:00
Carl-Robert Linnupuu
a584107955 chore: ignore dependabot for treesitter submodule 2024-09-24 12:00:11 +03:00
Carl-Robert Linnupuu
46ccf4159d fix: override prompt textfield default newline creation (fixes #694) 2024-09-24 11:55:12 +03:00
Carl-Robert Linnupuu
6e20c6e8e0 fix: prompt text field theme issues (fixes #701) 2024-09-24 11:38:58 +03:00
Carl-Robert Linnupuu
b8b9e1391d docs: update changelog 2024-09-24 10:53:51 +03:00
Carl-Robert Linnupuu
35e7ca8f20 feat: show models submenu on hover (#681) 2024-09-24 02:44:58 +03:00
Carl-Robert Linnupuu
a360cb76c6 fix: model combobox value upon provider change 2024-09-24 00:50:49 +03:00
Carl-Robert Linnupuu
f26d15fc49 refactor: clean up completion request factory 2024-09-24 00:23:27 +03:00
Carl-Robert Linnupuu
88c54cfa07 fix: openai model field value for various requests 2024-09-23 16:52:05 +03:00
Carl-Robert Linnupuu
d0011689de docs: update changelog 2024-09-23 16:37:12 +03:00
Carl-Robert Linnupuu
d3e8ee823a docs: update readme 2024-09-23 15:53:48 +03:00
Carl-Robert Linnupuu
feb9b6607c Revert "feat: add openai o1 models"
This reverts commit 07fa79ce26.
2024-09-23 14:57:28 +03:00
Carl-Robert Linnupuu
403ab338f9
refactor: consolidate completion request building (#703)
* fix: direct apply and output diff actions visibility

* refactor: consolidate chat completion request building
2024-09-23 14:54:15 +03:00
Carl-Robert Linnupuu
d65a512f0d chore: integrate llama.cpp submodule into prepareSandbox task 2024-09-22 15:19:28 +03:00
Carl-Robert Linnupuu
f410588175 feat: enable Edit Code feature for all providers (closes #700, #698, #696) 2024-09-22 13:56:25 +03:00
Carl-Robert Linnupuu
eb36e11c5f feat: add Qwen 2.5 Coder model 2024-09-22 01:59:23 +03:00
Carl-Robert Linnupuu
37adb90587 docs: update changelog 2024-09-13 16:04:11 +03:00
Carl-Robert Linnupuu
07fa79ce26 feat: add openai o1 models 2024-09-13 15:34:27 +03:00
Carl-Robert Linnupuu
21b8cf33e8 2.11.1 2024-09-12 13:40:13 +03:00
Carl-Robert Linnupuu
4dc959cbaf fix: focus stealing when searching for suggestions 2024-09-12 13:24:35 +03:00
Carl-Robert Linnupuu
0de4306853 fix: make question mark icon platform-wide 2024-09-12 02:59:17 +03:00
Carl-Robert Linnupuu
b4dfde32b4 docs: update changelog 2024-09-12 02:24:57 +03:00
Carl-Robert Linnupuu
0cdf330bd0 chore: bump llm-client 2024-09-12 02:18:06 +03:00
Carl-Robert Linnupuu
63e2ef2a2d fix: highlighted text referencing in prompts 2024-09-12 02:16:12 +03:00
Carl-Robert Linnupuu
7a54bf8788 docs: update changelog 2024-09-11 19:18:17 +03:00
Carl-Robert Linnupuu
5194355879 refactor: improve inlay action UI rendering 2024-09-11 19:12:53 +03:00
GenericMale
2d30472141
feat(ui): improve model combobox menu UI/UX by extracting the providers into standalone subgroups (#681)
* feat: move models into sub-menus

* feat: improve chat model combobox menu UI

---------

Co-authored-by: GenericMale <genericmale00@gmail.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-09-11 15:33:15 +03:00
Carl-Robert Linnupuu
c399e0094d fix: prompt input focusing when opening chat toolwindow (fixes #691) 2024-09-11 14:47:22 +03:00
Carl-Robert Linnupuu
94d0bcd0a0 feat: support quick way of including git commit diffs in the prompt (closes #688) 2024-09-11 12:31:38 +03:00
Carl-Robert Linnupuu
757afeff9e docs: update changelog 2024-09-11 00:47:43 +03:00
Carl-Robert Linnupuu
c9fcf7362d fix: prompt text field persona suggestions (fixes #685) 2024-09-11 00:38:23 +03:00
Carl-Robert Linnupuu
c7333a19f3 refactor: inlay rendering improvements 2024-09-11 00:13:28 +03:00
Carl-Robert Linnupuu
3abd981b49 fix: include selected changes diff only 2024-09-10 22:39:09 +03:00
Carl-Robert Linnupuu
6641daf6fd
feat: add quick code snippet referencing in prompts (#690)
* feat: ability to include cone snippets in prompt text field

* refactor: revert changes

* refactor: improve main editor actions group configuration

* refactor: clean up

* refactor: improve editor actions keymap

* fix: inlay casting

* refactor: consolidate labels
2024-09-10 19:41:03 +03:00
Carl-Robert Linnupuu
9a94813237 fix: use default value when model not found (#687) 2024-09-10 15:24:37 +03:00
Carl-Robert Linnupuu
ed0432b3cf feat: support name suggestions for other languages (closes #615) 2024-09-10 11:45:22 +03:00
Carl-Robert Linnupuu
4ebe35260c 2.11.0 2024-09-05 23:24:10 +03:00
Carl-Robert Linnupuu
45d8c8c11a refactor: remove multiple code models 2024-09-05 20:07:51 +03:00
Carl-Robert Linnupuu
c4531867b4 docs: update changelog 2024-09-05 13:31:33 +03:00
Carl-Robert Linnupuu
64ff342306 Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2024-09-05 13:28:51 +03:00
Carl-Robert Linnupuu
2bc3d8d645 fix: ollama stream requests (fixes #646) 2024-09-05 13:24:30 +03:00
Carl-Robert Linnupuu
a81bfa1005 refactor: remove success notification upon insert at caret action 2024-09-05 12:27:09 +03:00
Aliet Expósito García
4d484182d6
fix: update OpenRouter model version in custom OpenAI provider (#678)
- Updated the model version for the OpenRouter configuration in the custom OpenAI provider from `meta-llama/llama-3-8b-instruct:free` to `meta-llama/llama-3.1-8b-instruct:free`
2024-09-05 09:56:36 +03:00
Carl-Robert Linnupuu
c417ccadac feat: new 'Insert at Caret' toolwindow editor action 2024-09-05 01:28:42 +03:00
Carl-Robert Linnupuu
dc02fd3e65 docs: update changelog 2024-09-04 18:39:29 +03:00
Carl-Robert Linnupuu
7e71d0cf34 fix: prompt text field transparent bg issues (fixes #673) 2024-09-04 18:35:17 +03:00
Carl-Robert Linnupuu
77515a5aed docs: update changelog 2024-09-04 18:15:44 +03:00
Carl-Robert Linnupuu
4898c8580c feat: add apply and diff actions for toolwindow code editor 2024-09-04 18:02:41 +03:00
Moritz
10e48cdb43
feat: enable vision support in GUI for Azure models #649 (#675)
Co-authored-by: Moritz Flöter <moritz.floeter@set.de>
2024-09-01 18:00:14 +03:00
Carl-Robert Linnupuu
a546217155 test: add test coverage for code completions 2024-09-01 17:40:44 +03:00
Carl-Robert Linnupuu
c83d9eff00 fix: apply next word inlay suggestion 2024-09-01 03:39:01 +03:00
Carl-Robert Linnupuu
fb3075cffe Merge branch 'platform/2024.1' 2024-09-01 00:10:51 +03:00
Carl-Robert Linnupuu
cb0146034c feat: add proper streaming implementation 2024-08-31 20:01:51 +03:00
Carl-Robert Linnupuu
2ce05a50af feat: add git context to code completions 2024-08-31 19:39:43 +03:00
Carl-Robert Linnupuu
01a8d6264f feat: add proper streaming implementation 2024-08-31 19:05:33 +03:00
Carl-Robert Linnupuu
753ee7db0f feat: add git context to code completions 2024-08-27 18:36:36 +03:00
Carl-Robert Linnupuu
7ae66e04ca fix: ignore hidden files/folders when applying folders in the context (#666) 2024-08-23 13:34:06 +03:00
Carl-Robert Linnupuu
1fdd835a44 2.10.2 2024-08-23 12:23:57 +03:00
Carl-Robert Linnupuu
97db8aa83c 2.10.2 2024-08-23 12:19:16 +03:00
Carl-Robert Linnupuu
bdef59d45d docs: update changelog 2024-08-23 12:07:09 +03:00
Carl-Robert Linnupuu
404ec8238e docs: update changelog 2024-08-23 12:06:11 +03:00
Carl-Robert Linnupuu
d66ec88377 feat: display web docs progress 2024-08-23 11:47:59 +03:00
Carl-Robert Linnupuu
e70370386b fix: prompt creation from placeholders for custom openai provider (fixes #662) 2024-08-23 11:47:56 +03:00
Carl-Robert Linnupuu
76d21cd877 chore: update deps 2024-08-23 11:47:52 +03:00
Carl-Robert Linnupuu
62582324cc fix: prompt text field inlay offset and up/down keys 2024-08-23 11:47:48 +03:00
Carl-Robert Linnupuu
2f7ba826c7 refactor: implement ConfigurationSettings as a Kotlin service (#634) 2024-08-23 11:47:42 +03:00
Carl-Robert Linnupuu
d672d28474 feat: display web docs progress 2024-08-23 11:26:15 +03:00
Carl-Robert Linnupuu
1016041c40 fix: prompt creation from placeholders for custom openai provider (fixes #662) 2024-08-21 16:23:59 +03:00
Carl-Robert Linnupuu
309491386c chore: update deps 2024-08-21 15:17:44 +03:00
Carl-Robert Linnupuu
915a290479 fix: prompt text field inlay offset and up/down keys 2024-08-21 14:19:12 +03:00
Carl-Robert Linnupuu
083c11f923 refactor: implement ConfigurationSettings as a Kotlin service (#634) 2024-08-21 13:39:48 +03:00
Carl-Robert Linnupuu
71f018330d 2.10.1 2024-08-20 16:29:51 +03:00
Carl-Robert Linnupuu
4e6c4ea624 docs: update changelog (closes #668) 2024-08-20 16:24:40 +03:00
Nick P.
daf9af8283 fix: Codestral Infill templates for code completion in llama.cpp (#667)
* fix: Codestral template variables and [MIDDLE] token

* fix: Codestral references CODESTRAL fixed template
2024-08-20 16:23:30 +03:00
Carl-Robert Linnupuu
42568b1c59 2.10.1 2024-08-20 16:22:40 +03:00
Carl-Robert Linnupuu
cfe5cdb297 fix: reset doc and persona values on submit 2024-08-20 15:52:28 +03:00
Carl-Robert Linnupuu
0c89dc7793 fix: remove revalidations on each event 2024-08-20 15:52:23 +03:00
Carl-Robert Linnupuu
505bcc8d99 fix: reset doc and persona values on submit 2024-08-20 15:50:11 +03:00
Carl-Robert Linnupuu
b5cc3aa97c fix: remove revalidations on each event 2024-08-20 15:47:44 +03:00
Carl-Robert Linnupuu
ca39f95f7c docs: update changelog (closes #668) 2024-08-20 12:34:19 +03:00
Nick P.
f910576f89
fix: Codestral Infill templates for code completion in llama.cpp (#667)
* fix: Codestral template variables and [MIDDLE] token

* fix: Codestral references CODESTRAL fixed template
2024-08-20 12:03:19 +03:00
Carl-Robert Linnupuu
5d873d0899 fix: remove prompt text field background 2024-08-20 02:27:14 +03:00
Carl-Robert Linnupuu
16cbb22f1b fix: remove prompt text field background 2024-08-20 02:04:28 +03:00
Carl-Robert Linnupuu
cd0c0519c9 2.10.0 2024-08-19 14:38:32 +03:00
Carl-Robert Linnupuu
627cf5b8a9 2.10.0 2024-08-19 14:35:55 +03:00
Carl-Robert Linnupuu
9938429809 docs: update changelog 2024-08-19 13:52:11 +03:00
Carl-Robert Linnupuu
2899651753 docs: update plugin description 2024-08-19 13:51:44 +03:00
Carl-Robert Linnupuu
425954f39f fix: use personas only within current chat session context 2024-08-19 13:51:38 +03:00
Carl-Robert Linnupuu
4d77d71f49 docs: update changelog 2024-08-19 13:16:31 +03:00
Carl-Robert Linnupuu
695a745968 docs: update plugin description 2024-08-19 13:04:58 +03:00
Carl-Robert Linnupuu
e36e954276 fix: use personas only within current chat session context 2024-08-19 12:39:55 +03:00
Carl-Robert Linnupuu
d2d4f43a8e feat: add deepseek coder v2 model 2024-08-19 11:03:32 +03:00
Carl-Robert Linnupuu
a57200ff5d docs: update plugin description 2024-08-19 11:03:29 +03:00
Carl-Robert Linnupuu
f073b0e592 fix: reverse inlay text colors 2024-08-19 11:03:26 +03:00
Carl-Robert Linnupuu
6af4e19eaf feat: image support for Custom OpenAI provider (#649) 2024-08-19 11:03:20 +03:00
Carl-Robert Linnupuu
43a1f8d8d7 feat: add deepseek coder v2 model 2024-08-19 02:24:56 +03:00
Carl-Robert Linnupuu
7d342973aa docs: update plugin description 2024-08-19 01:44:43 +03:00
Carl-Robert Linnupuu
6177a7f014 fix: reverse inlay text colors 2024-08-19 01:18:29 +03:00
Carl-Robert Linnupuu
2ddcde1363 feat: image support for Custom OpenAI provider (#649) 2024-08-19 01:17:52 +03:00
Carl-Robert
6a3e894dda feat: replace the underlying input component with EditorTextField (#665) 2024-08-17 15:14:23 +03:00
Carl-Robert Linnupuu
a87ea8ade3 fix: long search queries (fixes #652) 2024-08-17 15:14:19 +03:00
Carl-Robert Linnupuu
59af158f0e fix: slow file searches (fixes #652) 2024-08-17 15:14:11 +03:00
dependabot[bot]
a548917430 chore(deps): bump org.jetbrains.changelog from 2.2.0 to 2.2.1 (#624)
Bumps org.jetbrains.changelog from 2.2.0 to 2.2.1.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-17 15:14:07 +03:00
Carl-Robert Linnupuu
1afbc4de85 fix: chat reset button state when current conversation not properly configured (fixes #651) 2024-08-17 15:14:02 +03:00
Carl-Robert Linnupuu
2a0747f923 feat: add default docs and other minor improvements 2024-08-17 15:13:57 +03:00
Carl-Robert
a2d71efd78 feat: add webpage documentation support (#650)
* feat: documentation support while chatting

* feat: support managing web documentation entries
2024-08-17 15:13:52 +03:00
Carl-Robert
53693f3326
feat: replace the underlying input component with EditorTextField (#665) 2024-08-17 12:22:29 +03:00
Carl-Robert Linnupuu
7935621008 fix: long search queries (fixes #652) 2024-08-14 02:25:01 +03:00
Carl-Robert Linnupuu
041b757c6e Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2024-08-14 02:01:19 +03:00
Carl-Robert Linnupuu
325dfc5d28 fix: slow file searches (fixes #652) 2024-08-14 01:54:56 +03:00
dependabot[bot]
a2d549e6d4
chore(deps): bump org.jetbrains.changelog from 2.2.0 to 2.2.1 (#624)
Bumps org.jetbrains.changelog from 2.2.0 to 2.2.1.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-14 00:28:24 +03:00
Carl-Robert Linnupuu
1d7f3e8349 fix: chat reset button state when current conversation not properly configured (fixes #651) 2024-08-14 00:17:18 +03:00
Carl-Robert Linnupuu
c6e4d5fd7c feat: add default docs and other minor improvements 2024-08-14 00:12:16 +03:00
Carl-Robert
b4ef573be2
feat: add webpage documentation support (#650)
* feat: documentation support while chatting

* feat: support managing web documentation entries
2024-08-13 13:44:40 +03:00
Carl-Robert Linnupuu
8de0e04ece 2.9.0 2024-08-03 14:12:28 +03:00
Carl-Robert Linnupuu
4df8c1478d 2.9.0 2024-08-03 14:09:50 +03:00
Carl-Robert Linnupuu
4c1ad42ab4 fix: web search items UI layout 2024-08-03 13:57:30 +03:00
Carl-Robert Linnupuu
316a7dfeb8 fix: web search items UI layout 2024-08-03 13:53:52 +03:00
Carl-Robert Linnupuu
739be56b2f fix: personas settings state 2024-08-03 04:02:19 +03:00
Carl-Robert Linnupuu
423544a0b1 fix: personas settings state 2024-08-03 02:17:05 +03:00
Carl-Robert Linnupuu
779b321e3d docs: update changelog and description 2024-08-02 17:24:55 +03:00
Carl-Robert Linnupuu
ca5507bd23 docs: update changelog and description 2024-08-02 17:13:38 +03:00
Carl-Robert Linnupuu
0584c31530 feat: improve chat UI performance 2024-08-02 16:09:44 +03:00
Carl-Robert Linnupuu
c211423b9d fix: hide webpage list on any interrupted event 2024-08-02 16:09:40 +03:00
Carl-Robert Linnupuu
6479604dce feat: improve chat UI performance 2024-08-02 16:00:04 +03:00
Carl-Robert Linnupuu
658e78f8ad fix: hide webpage list on any interrupted event 2024-08-02 02:58:16 +03:00
Carl-Robert Linnupuu
06d8b22fc4 docs: update plugin's description 2024-07-31 10:26:24 +03:00
Carl-Robert Linnupuu
c6d241e0b2 docs: update changelog 2024-07-31 10:26:13 +03:00
Carl-Robert Linnupuu
509b43fc3a docs: update plugin's description 2024-07-31 02:46:51 +03:00
Carl-Robert Linnupuu
67eee18a5e docs: update changelog 2024-07-31 02:25:19 +03:00
Carl-Robert
032f2942e0 feat: web search support (#641)
* feat: web search support

* fix: enable web search only for codegpt provider

* fix: checkstyle

* feat: improve list cell design
2024-07-31 02:09:03 +03:00
Carl-Robert
05f146c405
feat: web search support (#641)
* feat: web search support

* fix: enable web search only for codegpt provider

* fix: checkstyle

* feat: improve list cell design
2024-07-30 15:53:45 +03:00
Carl-Robert Linnupuu
070b711e87 feat: add persona prompt tooltip 2024-07-27 16:13:22 +03:00
Carl-Robert Linnupuu
2986c42ad9 refactor: popup suggestions strategy 2024-07-27 16:13:00 +03:00
Carl-Robert Linnupuu
1f28bc6217 feat: add persona prompt tooltip 2024-07-27 15:37:45 +03:00
Carl-Robert Linnupuu
a3567100a9 refactor: popup suggestions strategy 2024-07-27 11:19:26 +03:00
Carl-Robert Linnupuu
44db3495b4 refactor: improve folder suggestions update strategy 2024-07-26 15:07:11 +03:00
Carl-Robert Linnupuu
fc91c4b02b feat: focus popup when initially visible 2024-07-26 15:07:06 +03:00
Carl-Robert Linnupuu
96ac29640d refactor: improve folder suggestions update strategy 2024-07-26 15:06:48 +03:00
Carl-Robert Linnupuu
e0dd612a70 feat: include only valid project folders 2024-07-26 15:06:44 +03:00
Carl-Robert Linnupuu
fb3216ebba fix: popup focus on tab events 2024-07-26 15:06:39 +03:00
Carl-Robert Linnupuu
e34a3c40dd feat: display popup close help text 2024-07-26 15:06:33 +03:00
Carl-Robert Linnupuu
133c3ab846 fix: truncation of suggestion descriptions 2024-07-26 15:06:25 +03:00
Carl-Robert
307c12e15d feat: improved popup suggestions and personas support (#638)
* feat: support personas

* fix: replace previous system prompts with personas

* feat: add persona toolbar label

* refactor: rename properties

* refactor: clean up

* fix: personas settings configurable state

* refactor: code cleanup

* feat: list item auto highlightning

* feat: replace personas toolbar label with action link

* refactor: code cleanup

* fix: manual items not being able to delete

* fix: personas settings configurable state

* refactor: clean up code

* fix: folder selection
2024-07-26 15:06:09 +03:00
Carl-Robert Linnupuu
3d7239a3dd refactor: improve folder suggestions update strategy 2024-07-26 14:39:04 +03:00
Carl-Robert Linnupuu
ff6babf8a6 feat: focus popup when initially visible 2024-07-26 14:00:52 +03:00
Carl-Robert Linnupuu
170a083a39 refactor: improve folder suggestions update strategy 2024-07-26 13:49:37 +03:00
Carl-Robert Linnupuu
c955c64f61 feat: include only valid project folders 2024-07-26 13:20:54 +03:00
Carl-Robert Linnupuu
876f68fde9 fix: popup focus on tab events 2024-07-26 12:50:23 +03:00
Carl-Robert Linnupuu
f85db97c40 feat: display popup close help text 2024-07-26 12:41:07 +03:00
Carl-Robert Linnupuu
e362eb3783 fix: truncation of suggestion descriptions 2024-07-26 00:56:35 +03:00
Carl-Robert
d68b356b42
feat: improved popup suggestions and personas support (#638)
* feat: support personas

* fix: replace previous system prompts with personas

* feat: add persona toolbar label

* refactor: rename properties

* refactor: clean up

* fix: personas settings configurable state

* refactor: code cleanup

* feat: list item auto highlightning

* feat: replace personas toolbar label with action link

* refactor: code cleanup

* fix: manual items not being able to delete

* fix: personas settings configurable state

* refactor: clean up code

* fix: folder selection
2024-07-25 23:50:31 +03:00
Carl-Robert Linnupuu
40fa27a8bd 2.8.5 2024-07-24 20:30:57 +03:00
Carl-Robert Linnupuu
db0df84a64 2.8.5 2024-07-24 20:25:40 +03:00
Carl-Robert Linnupuu
1ab99b73fe docs: update changelog 2024-07-24 20:08:55 +03:00
Carl-Robert Linnupuu
9bcd6a6278 fix: wrong line separators on code completion (fixes #637) 2024-07-24 20:08:38 +03:00
Carl-Robert Linnupuu
090a23313a docs: update changelog 2024-07-24 20:08:33 +03:00
Carl-Robert Linnupuu
be37db8ee5 feat: add llama 3.1 405b model 2024-07-24 20:08:06 +03:00
Carl-Robert Linnupuu
5f932394af docs: update changelog 2024-07-24 20:05:04 +03:00
Carl-Robert Linnupuu
45c0a49078 fix: wrong line separators on code completion (fixes #637) 2024-07-24 20:03:40 +03:00
Carl-Robert Linnupuu
31fde4b981 docs: update changelog 2024-07-24 20:00:24 +03:00
Carl-Robert Linnupuu
6a42f32856 feat: add llama 3.1 405b model 2024-07-24 19:56:09 +03:00
Carl-Robert Linnupuu
25e37749b4 2.8.4 2024-07-19 13:00:58 +03:00
Carl-Robert Linnupuu
daeaa10c72 docs: update changelog 2024-07-19 12:55:27 +03:00
Carl-Robert Linnupuu
0673e20fe0 fix: openai image models support 2024-07-19 12:54:50 +03:00
Carl-Robert Linnupuu
468da234f1 fix: replace hard coded max tokens for edit code request 2024-07-19 12:54:45 +03:00
Carl-Robert Linnupuu
f7ac956da5 feat: add gpt-4o-mini model 2024-07-19 12:54:38 +03:00
Carl-Robert Linnupuu
541cb43c42 2.8.4 2024-07-19 12:50:58 +03:00
Carl-Robert Linnupuu
26b807569d docs: update plugin description 2024-07-19 12:44:39 +03:00
Carl-Robert Linnupuu
b490952ce6 docs: update plugin description 2024-07-19 12:43:38 +03:00
Carl-Robert Linnupuu
ff977f5c1e fix: replace codegpt default anon chat model 2024-07-19 11:27:26 +03:00
Carl-Robert Linnupuu
d9a08fc029 fix: replace codegpt default anon chat model 2024-07-19 11:25:49 +03:00
NEO
91e72a79fd fix: ollama settings sync (#617)
* fix: Updated Ollama settings to sort models and add available models.

1) sort ollama models list when select the model from settings
2) fix: settings of cached ollama models need update
3) sort cached ollama models

* remove code comments

* remove code comments

---------

Co-authored-by: neo <yifei0727@no-reply.users.github.io>
2024-07-19 03:15:03 +03:00
Carl-Robert Linnupuu
f49de84607 docs: update changelog 2024-07-19 03:12:51 +03:00
NEO
501d52245f
fix: ollama settings sync (#617)
* fix: Updated Ollama settings to sort models and add available models.

1) sort ollama models list when select the model from settings
2) fix: settings of cached ollama models need update
3) sort cached ollama models

* remove code comments

* remove code comments

---------

Co-authored-by: neo <yifei0727@no-reply.users.github.io>
2024-07-19 03:11:03 +03:00
Carl-Robert Linnupuu
76cec21a7d fix: openai image models support 2024-07-19 02:45:59 +03:00
Carl-Robert Linnupuu
a2325c1ce4 fix: replace hard coded max tokens for edit code request 2024-07-19 02:40:35 +03:00
Carl-Robert Linnupuu
ecc4613615 feat: add gpt-4o-mini model 2024-07-19 02:22:58 +03:00
Carl-Robert
50d631838f feat: improve tool window's textbox (#621)
* feat: initial smart user input panel implementation

* refactor: clean up
2024-07-18 14:22:48 +03:00
Carl-Robert Linnupuu
c911f3603d chore: upgrade treesitter deps 2024-07-18 14:22:45 +03:00
Laurențiu Lozan
3ccd340262 fix: Numeric values in Custom providers' headers section break configuration. #619 (#620)
https://github.com/carlrobertoh/CodeGPT/issues/619
2024-07-18 14:22:40 +03:00
Carl-Robert
1fc47fa889
feat: improve tool window's textbox (#621)
* feat: initial smart user input panel implementation

* refactor: clean up
2024-07-18 14:18:51 +03:00
Carl-Robert Linnupuu
5baab54697 chore: upgrade treesitter deps 2024-07-18 12:28:52 +03:00
Laurențiu Lozan
671d9caa07
fix: Numeric values in Custom providers' headers section break configuration. #619 (#620)
https://github.com/carlrobertoh/CodeGPT/issues/619
2024-07-18 11:08:40 +03:00
Carl-Robert Linnupuu
d928a7e845 2.8.3 2024-07-15 11:14:11 +03:00
Carl-Robert Linnupuu
e06221bd1b 2.8.3 2024-07-15 11:07:33 +03:00
Carl-Robert Linnupuu
cebf53b56b docs: update plugin description 2024-07-12 16:33:37 +03:00
Carl-Robert Linnupuu
2c18c5531c docs: update changelog 2024-07-12 16:33:30 +03:00
Carl-Robert Linnupuu
60015d8a0f fix: wrong line separators on windows (fixes #605) 2024-07-12 16:32:45 +03:00
Carl-Robert Linnupuu
6c867d78f7 fix: replace code selection behaviour (fixes #614) 2024-07-12 16:32:40 +03:00
Carl-Robert Linnupuu
d4b4edee54 feat: add enter key shortcut for Fast Edit submission (closes #602) 2024-07-12 16:32:32 +03:00
Carl-Robert Linnupuu
98650ee1d6 fix: build (ignore py tests) 2024-07-12 16:31:19 +03:00
Carl-Robert Linnupuu
737eeb0e4c fix: inline completion breaking changes 2024-07-12 16:23:17 +03:00
Phil
60d71cd301 feat: add project context to code completions (#571)
* feat: add context to code completions

* feat: context finder for Python

* feat: improve and refactor context finder for Python

* feat: include method calls in JavaContextFinder

* test: add JavaContextFinder tests

* test: add PythonContextFinder tests

* fix: CompletionContextService thread

* fix: InfillPromptTemplate context files string

* refactor: simplify findRelevantElements for Java and Python

* feat: only add code snippets instead of files for code-completion context

* feat: add default multi-file prompt template

* fix: add Codestral multi-file FIM

* feat: add feature flag for context aware code completions

* feat: truncate project context elements for code completion
2024-07-12 14:25:24 +03:00
Carl-Robert Linnupuu
c193695fc1 fix: ollama form combobox state (fixes #606) 2024-07-12 14:24:28 +03:00
Carl-Robert Linnupuu
1b6a7f2156 chore: remove github sponsorship 2024-07-12 14:24:22 +03:00
Carl-Robert Linnupuu
7ac58b8cbd docs: update plugin description 2024-07-12 14:22:59 +03:00
Carl-Robert Linnupuu
88abf3775b docs: update changelog 2024-07-12 13:51:11 +03:00
Carl-Robert Linnupuu
274dd37ae3 fix: wrong line separators on windows (fixes #605) 2024-07-12 12:29:51 +03:00
Carl-Robert Linnupuu
2b9eaea9d4 fix: replace code selection behaviour (fixes #614) 2024-07-12 11:52:43 +03:00
Carl-Robert Linnupuu
f60fabcded feat: add enter key shortcut for Fast Edit submission (closes #602) 2024-07-03 23:57:11 +03:00
Carl-Robert Linnupuu
e821ff9403 feat: use debouncing for code completions 2024-07-03 17:41:02 +03:00
Phil
620226ff1d
feat: add project context to code completions (#571)
* feat: add context to code completions

* feat: context finder for Python

* feat: improve and refactor context finder for Python

* feat: include method calls in JavaContextFinder

* test: add JavaContextFinder tests

* test: add PythonContextFinder tests

* fix: CompletionContextService thread

* fix: InfillPromptTemplate context files string

* refactor: simplify findRelevantElements for Java and Python

* feat: only add code snippets instead of files for code-completion context

* feat: add default multi-file prompt template

* fix: add Codestral multi-file FIM

* feat: add feature flag for context aware code completions

* feat: truncate project context elements for code completion
2024-07-03 17:38:03 +03:00
Carl-Robert Linnupuu
e6088cc0d8 fix: ollama form combobox state (fixes #606) 2024-07-03 17:00:19 +03:00
Carl-Robert Linnupuu
e7cf2eef8a chore: remove github sponsorship 2024-07-02 03:15:59 +03:00
Carl-Robert Linnupuu
6100c77026 2.8.2 2024-07-01 14:15:45 +03:00
Carl-Robert Linnupuu
ccbf7fc722 fix: test anomalies 2024-07-01 14:13:48 +03:00
Carl-Robert Linnupuu
cda6220bbc docs: add fast edit feature description 2024-07-01 14:09:01 +03:00
Carl-Robert Linnupuu
dc262205e3 2.8.2 2024-07-01 14:07:36 +03:00
Carl-Robert Linnupuu
ba14006779 docs: add fast edit feature description 2024-07-01 14:00:28 +03:00
Carl-Robert Linnupuu
dff71e64da chore: update edit-code feature system prompt 2024-07-01 02:27:57 +03:00
Carl-Robert Linnupuu
a94829ab6c chore: update edit-code feature system prompt 2024-07-01 02:17:56 +03:00
Carl-Robert Linnupuu
d63094c047 feat: add external upgrade plan link to error notification 2024-06-30 18:40:03 +03:00
Carl-Robert Linnupuu
2c6f4b528b chore: update edit-code prompt with detailed instructions 2024-06-30 18:39:59 +03:00
Carl-Robert Linnupuu
ffc667d17e fix: edit code popover loading state 2024-06-30 18:39:54 +03:00
Carl-Robert Linnupuu
d41bb317e5 fix: undo action after completion 2024-06-30 18:39:49 +03:00
Carl-Robert Linnupuu
0e8d6a187d fix: increase max_tokens for code edit requests 2024-06-30 18:39:41 +03:00
Carl-Robert Linnupuu
ae6315601a feat: add external upgrade plan link to error notification 2024-06-30 18:32:41 +03:00
Carl-Robert Linnupuu
9b716a4428 chore: update edit-code prompt with detailed instructions 2024-06-30 18:30:52 +03:00
Carl-Robert Linnupuu
42eb7a3f08 fix: edit code popover loading state 2024-06-30 17:02:55 +03:00
Carl-Robert Linnupuu
fbf88bc75a fix: undo action after completion 2024-06-30 16:57:23 +03:00
Carl-Robert Linnupuu
0d8a182f1f fix: increase max_tokens for code edit requests 2024-06-30 15:51:38 +03:00
Carl-Robert Linnupuu
9166521bbc chore: update changelog 2024-06-30 01:23:13 +03:00
Carl-Robert Linnupuu
db3f4ac98c feat: add default keymap for edit code action 2024-06-30 01:22:25 +03:00
Carl-Robert
b1d8c521c4 feat: fast code edits (#601)
* feat: initial implementation of direct code edits

* fix: popup model selection

* refactor: simplify code replacement logic

* feat: interactive code modifications

* refactor: remove junk
2024-06-30 01:22:18 +03:00
Carl-Robert Linnupuu
7190ed3213 fix: wrong line separators on windows (closes #599) 2024-06-30 01:22:13 +03:00
Carl-Robert Linnupuu
786abd0b31 chore: remove You.com support 2024-06-30 01:22:03 +03:00
Carl-Robert Linnupuu
7fe101ff16 chore: fix checkstyle 2024-06-30 01:21:11 +03:00
Carl-Robert Linnupuu
36cb730db4 fix: disable checkForNewScreenshots by default 2024-06-30 01:21:05 +03:00
Carl-Robert Linnupuu
be906971db fix: tool window autoscroller (closes #459) 2024-06-30 01:20:59 +03:00
Carl-Robert Linnupuu
b74be78890 chore: update changelog 2024-06-30 01:15:10 +03:00
Carl-Robert Linnupuu
2725d5a02b feat: add default keymap for edit code action 2024-06-30 01:15:00 +03:00
Carl-Robert
14a0d4085c
feat: fast code edits (#601)
* feat: initial implementation of direct code edits

* fix: popup model selection

* refactor: simplify code replacement logic

* feat: interactive code modifications

* refactor: remove junk
2024-06-30 00:39:52 +03:00
Carl-Robert Linnupuu
cf5f38365d fix: wrong line separators on windows (closes #599) 2024-06-27 18:23:55 +03:00
Carl-Robert Linnupuu
8a7c84ae35 chore: remove You.com support 2024-06-24 17:48:27 +03:00
Carl-Robert Linnupuu
faeca118ee chore: fix checkstyle 2024-06-24 17:34:07 +03:00
Carl-Robert Linnupuu
ab773c475a fix: disable checkForNewScreenshots by default 2024-06-24 17:26:39 +03:00
Carl-Robert Linnupuu
e07af73f61 fix: tool window autoscroller (closes #459) 2024-06-24 17:24:33 +03:00
Carl-Robert Linnupuu
c21b3a4d06 2.8.1 2024-06-21 12:15:33 +03:00
Carl-Robert Linnupuu
a86bba190d 2.8.1 2024-06-21 12:11:15 +03:00
Carl-Robert Linnupuu
69ffb8f519 docs: update changelog 2024-06-21 12:01:56 +03:00
Carl-Robert Linnupuu
70bc264f6f docs: update changelog 2024-06-21 11:57:26 +03:00
Carl-Robert Linnupuu
ae4b87898d feat: add claude 3.5 sonnet model 2024-06-21 11:41:04 +03:00
Carl-Robert Linnupuu
5eb88b71df chore: bump llm-client 2024-06-21 11:40:56 +03:00
PhilKes
72abd4169f feat: re-select Ollama model after refresh if available otherwise show error 2024-06-21 11:40:29 +03:00
PhilKes
cdcffc249d feat: set maxTokens and temperature for Ollama chat and codecompletion 2024-06-21 11:40:24 +03:00
PhilKes
7e10dd3cfd feat: optional apiKey field for Ollama service 2024-06-21 11:40:18 +03:00
Carl-Robert Linnupuu
1c45d97957 feat: add claude 3.5 sonnet model 2024-06-21 01:47:48 +03:00
Carl-Robert Linnupuu
8017731900 chore: bump llm-client 2024-06-17 19:32:20 +03:00
PhilKes
2fcc7bd38d feat: re-select Ollama model after refresh if available otherwise show error 2024-06-17 19:32:06 +03:00
PhilKes
0789dc40e8 feat: set maxTokens and temperature for Ollama chat and codecompletion 2024-06-17 19:32:01 +03:00
PhilKes
4586838610 feat: optional apiKey field for Ollama service 2024-06-17 19:31:56 +03:00
Carl-Robert Linnupuu
98c3d5073c fix: commit message placeholders 2024-06-17 17:01:24 +03:00
Carl-Robert Linnupuu
9fc685a93a fix: commit message placeholders 2024-06-17 16:54:06 +03:00
Carl-Robert Linnupuu
58e17c0819 chore: bump llm-client 2024-06-10 12:04:54 +03:00
Carl-Robert Linnupuu
3a4208c507 fix: replace codegpt website base url 2024-06-10 12:04:44 +03:00
Carl-Robert Linnupuu
f2e89b429c 2.8.0 2024-06-06 15:55:37 +03:00
Carl-Robert Linnupuu
04b7334696 2.8.0 2024-06-06 15:51:35 +03:00
Carl-Robert Linnupuu
63480ffdb4 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-06-06 02:35:08 +03:00
Carl-Robert Linnupuu
8c92dd5331 Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2024-06-06 00:12:20 +03:00
Carl-Robert Linnupuu
fdb2fb98e0 feat: introduce openai and anthropic models for subscribed users 2024-06-06 00:12:05 +03:00
Rene Leonhardt
ea6b1c8538
feat: Support Codestral 22B 32K (#587) 2024-06-03 11:22:39 +03:00
Carl-Robert Linnupuu
590635bd62 fix: disable code completions by default 2024-05-29 23:35:46 +03:00
Rene Leonhardt
f260a71d1b
chore(deps): Update to Kotlin 2 (#576) 2024-05-28 10:27:30 +03:00
Phil
4856639238
feat: add OpenRouter service template (#581) 2024-05-28 10:27:13 +03:00
Phil
08b592f7e8
feat: add field for environment variables for Llama server (#550)
Co-authored-by: Carl-Robert <carlrobertoh@gmail.com>
2024-05-23 12:55:51 +03:00
Phil
ee6b2d3350
fix: remove trailing slashes from URL text fields (#579) 2024-05-23 01:11:57 +03:00
Rene Leonhardt
73ec3b5d56
feat: Support Phi-3 Medium 128K (#577) 2024-05-23 01:10:02 +03:00
Rene Leonhardt
586cff421e
feat: Support Stable Code Instruct 3B (#552)
* feat: Support Stable Code Instruct 3B

* feat: Sort LLaMA models in settings
2024-05-16 22:28:54 +03:00
Carl-Robert Linnupuu
7e59383e1c 2.7.1 2024-05-15 10:35:08 +03:00
Carl-Robert Linnupuu
9705ab7511 2.7.1 2024-05-15 00:20:46 +03:00
Carl-Robert Linnupuu
65d0993e39 fix: backward compatibility issues on plugin update (fixes #551) 2024-05-15 00:11:20 +03:00
Carl-Robert Linnupuu
d817e950a5 chore: update toolwindow landing panel text content 2024-05-15 00:11:15 +03:00
Rene Leonhardt
d953b0320c feat: Show server name in start/stop notifications (#546)
* feat: Show server name in start/stop notifications

* feat: Show opposite action in notification

* feat: Pre-select biggest downloaded parameter size on model change

* chore: Update to latest llama.cpp fixes (2024-05-14)
2024-05-15 00:11:10 +03:00
Carl-Robert Linnupuu
6f259bf044 fix: backward compatibility issues on plugin update (fixes #551) 2024-05-15 00:09:27 +03:00
Carl-Robert Linnupuu
8b7781f865 chore: update toolwindow landing panel text content 2024-05-14 21:48:47 +03:00
Rene Leonhardt
8e5ba8158d
feat: Show server name in start/stop notifications (#546)
* feat: Show server name in start/stop notifications

* feat: Show opposite action in notification

* feat: Pre-select biggest downloaded parameter size on model change

* chore: Update to latest llama.cpp fixes (2024-05-14)
2024-05-14 21:26:22 +03:00
Carl-Robert Linnupuu
8c9c93987a 2.7.0 2024-05-14 00:33:29 +03:00
Carl-Robert Linnupuu
6de38103d9 2.7.0 2024-05-14 00:28:44 +03:00
Carl-Robert Linnupuu
d38af4226d Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-14 00:11:17 +03:00
Carl-Robert Linnupuu
de3db77755 feat: add gpt-4o model (closes #547) 2024-05-14 00:03:45 +03:00
Carl-Robert Linnupuu
56e38a644a Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 19:11:38 +03:00
Carl-Robert Linnupuu
ab7d06608d docs: update changelog 2024-05-13 19:11:20 +03:00
Carl-Robert Linnupuu
fe7a33ac2a Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 19:08:56 +03:00
Carl-Robert Linnupuu
864f442db1 fix: landing page hyperlinks 2024-05-13 19:04:46 +03:00
Rene Leonhardt
7c668ae143
feat: Start/stop LLaMA Server from statusbar (#544) 2024-05-13 19:02:22 +03:00
Carl-Robert Linnupuu
1a55798997 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 17:59:07 +03:00
Carl-Robert Linnupuu
91c7302008 refactor: remove llama download marker from toolwindow popup menu 2024-05-13 17:56:15 +03:00
Carl-Robert Linnupuu
cd8c086a61 docs: remove feature note 2024-05-13 17:29:18 +03:00
Carl-Robert Linnupuu
cab379ba29 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 17:18:42 +03:00
Carl-Robert Linnupuu
97c090b5b4 docs: update changelog 2024-05-13 16:48:28 +03:00
Carl-Robert Linnupuu
d9d7c65688 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-13 15:42:09 +03:00
Carl-Robert Linnupuu
48e641fc59 Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2024-05-13 15:36:12 +03:00
Carl-Robert Linnupuu
014f26f802 refactor: remove max_tokens configuration and other minor fixes 2024-05-13 15:32:20 +03:00
Rene Leonhardt
9bd7e6e83a
feat: Visualize downloaded models (#543)
* feat: Visualize downloaded models

* Simplify GeneralSettings access
2024-05-13 10:48:55 +03:00
Carl-Robert Linnupuu
0b21652c04 fix: lookup completion request validation 2024-05-11 02:18:24 +03:00
Phil
fcd0808111
feat: add keyboard shortcuts for Editor actions (#542) 2024-05-10 17:10:29 +03:00
Rene Leonhardt
725bf84ac8
fix: Handle problems graciously (#541) 2024-05-10 15:20:48 +03:00
Carl-Robert Linnupuu
47d1d5dea8 fix: store empty string as credential to avoid repeated secret fetching 2024-05-09 16:18:35 +03:00
Carl-Robert Linnupuu
310210957b fix: lookup and commit message completions for codegpt provider 2024-05-09 15:41:04 +03:00
Carl-Robert Linnupuu
8883200817 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-05-09 14:00:56 +03:00
dependabot[bot]
6344f225c9
chore(deps): bump com.fasterxml.jackson:jackson-bom (#539)
Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.0 to 2.17.1.
- [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.0...jackson-bom-2.17.1)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson:jackson-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-09 13:09:19 +03:00
dependabot[bot]
69bef7099d
chore(deps): bump org.jetbrains.kotlin:kotlin-gradle-plugin (#540)
Bumps [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) from 1.9.23 to 1.9.24.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v1.9.23...v1.9.24)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-09 13:09:07 +03:00
Rene Leonhardt
59acb59843
chore: Update to CodeGemma 1.1 7b Instruct (#534) 2024-05-09 13:08:55 +03:00
Carl-Robert Linnupuu
fedbe11fd2 fix: long-running tasks on EDT when initializing forms 2024-05-09 13:05:38 +03:00
Carl-Robert
7bee59a90e
feat: extract providers into their standalone configurables (#538)
* fix: extract services to their own configurables

* feat: switch to selected provider automatically upon apply

* fix: credentials loading at once

* fix: rename llama.cpp title
2024-05-09 11:16:09 +03:00
Carl-Robert
0852c27170
feat: add CodeGPT "native" API provider (#537)
* feat: support codegpt client

* feat: add basic request handler test

* refactor: minor cleanup
2024-05-08 23:59:51 +03:00
Phil
74fc2e6219
feat: add Google Gemini API support (#535) 2024-05-08 16:51:32 +03:00
Carl-Robert Linnupuu
f5a63eb889 chore(deps): bump llm-client and tree-sitter 2024-05-08 16:38:00 +03:00
Phil
5d2bc13f8c
fix: refresh Ollama models only when service is changed to Ollama (#536) 2024-05-08 16:07:00 +03:00
Phil
dcd0a3fc51
Revert "fix: use /infill for llama.cpp code-completions (#513)" (#533)
This reverts commit 8de72b3301.
2024-05-08 16:06:14 +03:00
Rene Leonhardt
ee16bfee10
feat: Support CodeQwen1.5-Chat model (#527)
* feat: Support CodeQwen1.5-Chat model

* Declare model directories explicitly
2024-05-08 16:05:51 +03:00
Jack Boswell
e40630d796
feat: Implement Ollama as a high-level service (#510)
* Initial implementation of Ollama as a service

* Fix model selector in tool window

* Enable image attachment

* Rewrite OllamaSettingsForm in Kt

* Create OllamaInlineCompletionModel and use it for building completion template

* Add support for blocking code completion on models that we don't know support it

* Allow disabling code completion settings

* Disable code completion settings when an unsupported model is entered

* Track FIM template in settings as a derived state

* Update llm-client

* Initial implementation of model combo box

* Add Ollama icon and display models as list

* Make OllamaSettingsState immutable & convert OllamaSettings to Kotlin

* Add refresh models button

* Distinguish between empty/needs refresh/loading

* Avoid storing any model if the combo box is empty

* Fix icon size

* Back to mutable settings
There were some bugs with immutable settings

* Store available models in settings state

* Expose available models in model dropdown

* Add dark icon

* Cleanups for CompletionRequestProvider

* Fix checkstyle issues

* refactor: migrate to SimplePersistentStateComponent

* fix: add code completion stop tokens

* fix: display only one item in the model popup action group

* fix: add back multi model selection

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-05-08 01:11:13 +03:00
Phil
7f7b35d3be
fix: CustomService Test connection with correct settings (#531) 2024-05-07 18:34:35 +03:00
Carl-Robert Linnupuu
13c59cc97b fix: build 2024-05-07 18:20:06 +03:00
Phil
2dfb1b0800
fix: Storing HuggingFaceModel by modelName instead of quantization only (#529) 2024-05-07 18:14:19 +03:00
Phil
33aa0e1065
feat: add Mistral AI service template (#532) 2024-05-07 18:01:07 +03:00
Phil
2c0a28a912
feat: add CodeGemma InfillPromptTemplate (#530) 2024-05-07 17:51:04 +03:00
Rene Leonhardt
a2a8747aca
feat: Support CodeGemma 7b Instruct model (#524) (#525) 2024-05-07 10:43:14 +03:00
Jack Boswell
f44fab551b
refactor: Expand and explicitly handle cases where a ServiceType is checked (#521)
This streamlines changes to ServiceType, where any additions or removals will be flagged at compile time to be handled, instead of silently falling back to a default value.
2024-05-07 10:42:45 +03:00
Jack Boswell
5f5c9cbfa1
chore: Bump llm-client to 0.7.5 (#520)
* Bump llm-client to 0.7.3

* llm-client 0.7.5

Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>

---------

Co-authored-by: Rene Leonhardt <65483435+reneleonhardt@users.noreply.github.com>
2024-05-07 10:41:45 +03:00
Phil
e0f54a6b93
fix: add optional Git4Idea dependency to plugin.xml (#526) 2024-05-07 10:41:10 +03:00
Rene Leonhardt
6d6e0a3ccb
feat: Support Phi-3 Mini model (#516) 2024-04-27 23:50:03 +03:00
Phil
1415f387ff
fix: focus on new editor action and refresh editor actions on apply (#518) 2024-04-27 23:49:36 +03:00
Phil
8de72b3301
fix: use /infill for llama.cpp code-completions (#513) 2024-04-25 16:47:56 +03:00
Carl-Robert Linnupuu
7d05d17797 fix: commit message generation for custom openai services (closes #496) 2024-04-25 15:21:08 +03:00
Rene Leonhardt
a9e147ffc7
fix: NPE when using unsupported model for code completions (#499) 2024-04-24 10:24:44 +03:00
Rene Leonhardt
9823010526
feat: Add Llama 3 download sizes (#498) 2024-04-23 17:30:40 +03:00
Carl-Robert Linnupuu
0b2387c2f6 chore(deps): bump deps 2024-04-23 17:21:29 +03:00
Carl-Robert Linnupuu
0a3034e89a 2.6.3 2024-04-22 12:33:24 +03:00
Carl-Robert Linnupuu
48aa2f45a2 2.6.3 2024-04-22 12:30:29 +03:00
Carl-Robert Linnupuu
ddf2eeef2e fix: kotlin build interoperability 2024-04-22 12:13:55 +03:00
Carl-Robert Linnupuu
9c61b06e0f fix: kotlin build interoperability 2024-04-22 12:04:58 +03:00
Carl-Robert Linnupuu
e7ef58ad3d Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-04-22 11:49:37 +03:00
Carl-Robert Linnupuu
ed9397c3dd fix: llama server success callback trigger 2024-04-21 23:25:53 +03:00
Carl-Robert Linnupuu
7899429d4f fix: llama3 prompt 2024-04-21 23:01:33 +03:00
Carl-Robert Linnupuu
62f0fa43bc docs: update plugin description 2024-04-21 18:00:15 +03:00
Carl-Robert Linnupuu
e8002a116c docs: update changelog 2024-04-21 17:38:57 +03:00
Rene Leonhardt
a10b5f791a
feat: Upgrade submodule for Llama 3 support (#483) 2024-04-21 17:12:14 +03:00
Carl-Robert Linnupuu
39679d9ee9 fix: custom service settings sync 2024-04-21 01:39:26 +03:00
Rene Leonhardt
6e6a499105
feat: Support Llama 3 model (#479)
* feat: Support Llama 3 model (#478)

* Use new InfillPrompt

* Switch to lmstudio-community

* Use new Prompt

* llama.cpp removed the BOS token
https://github.com/ggerganov/llama.cpp/pull/6751/commits/a55d8a9348fc9e9215229bf03f96ecff4dcc7c91

* Add tests

* I would prefer a stream based solution

* Add 70B models

* Add tests for skipping blank system prompt

* Remove InfillPrompt for now
2024-04-21 01:12:13 +03:00
Carl-Robert Linnupuu
bcb33aeeeb docs: update readme 2024-04-21 01:09:48 +03:00
Simon Svensson
14f3254913
feat: code completion for "Custom OpenAI Service" (#476)
* Add code completion setting states for custom service

* Add settings for code completion in Custom OpenAI service

* Move code completion section to the bottom

* Create test testFetchCodeCompletionCustomService

* Add Custom OpenAI to the "Enable/Disable Completion" actions

* New configuration UI separating /v1/chat/completions from /v1/completions

* Code completion for Custom Service

* Formatting fixes

* Move prefix and suffix to templates in body

* Message updates

* New tabbed UI for Chat and Code Completions

* convert to kotlin, improve ui and other minor changes

* fix test connection for chat completions

* add help tooltips

* allow backward compatibility

* support prefix and suffix placeholders

* fix initial state loading

---------

Co-authored-by: Jack Boswell (boswelja) <boswelja@outlook.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-04-20 23:23:08 +03:00
Phil
c8181a62e4
feat: add input field for llama server build parameters and improve error handling (#481) 2024-04-20 23:18:43 +03:00
Rene Leonhardt
67dc425a94
fix: Telemetry can't serialize traits anymore (#477)
* fix: Telemetry can't serialize traits anymore

* Add tests
2024-04-19 17:06:37 +03:00
Phil
9666590cb1
feat: add include file in context to editor context menu (#475)
* feat: add include file in context to editor context menu

* fix: custom title for IncludeFilesInContextAction in editor context menu
2024-04-18 18:49:04 +03:00
Rene Leonhardt
29b36c52f8
chore: Convert utils to Kotlin (#473)
* chore: Convert utils to Kotlin

* Remove nullable operators
2024-04-18 17:01:55 +03:00
Rene Leonhardt
b202d46984
fix: High CPU usage in new files check (#446) (#474)
* fix: High CPU usage in new files check (#446)

* Resolve absolute path
2024-04-18 16:36:49 +03:00
Carl-Robert Linnupuu
92d9d5ee20 fix: file watcher disposable by making it project-level service 2024-04-17 16:33:04 +03:00
ChuangLee
63f139dd74
feat: cancel completions early on newline (#461)
* Stream completion results and cancel early on newline

* Rename 'suggestion, needCancel' to 'message, cancel'

* Replace cancelCurrentCall() with eventSource.cancel() for simplicity

* remove isStreaming variable and onComplete() method

* fix: do not trigger completed callbacks during streaming

---------

Co-authored-by: lichuang <lichuanglai8@163.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-04-17 14:34:37 +03:00
Simon Svensson
b2d9442eba
fix: custom OpenAI service settings sync (#472) 2024-04-17 12:46:21 +03:00
Simon Svensson
7d075f6905
Persist credentials back into the PasswordSafe (#465) 2024-04-17 12:04:40 +03:00
René
2221d72430
feat: add support for placeholders in prompts (#458)
* fixes #432 adds support for Placeholders in Prompts

- activate gradle plugin Git4Idea
- adds PlaceholderUtil
- adds DATE_ISO_8601 PlaceholderReplacer
- adds BRANCH_NAME PlaceholderReplacer

* convert to kotlin, improve ui and add int. test

* fix: do not reuse projects from previous test runs

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-04-17 11:41:21 +03:00
Carl-Robert Linnupuu
24233ebcda 2.6.2 2024-04-15 16:18:12 +03:00
Carl-Robert Linnupuu
5252f492a3 chore(deps): bump llm-client 2024-04-15 16:11:01 +03:00
Rene Leonhardt
3a9e212582 fix: Use System Prompt from user configuration (#454) (#455) 2024-04-15 16:10:55 +03:00
Carl-Robert Linnupuu
f6a5113216 2.6.2 2024-04-15 16:03:37 +03:00
Carl-Robert Linnupuu
077059fd23 chore(deps): bump llm-client 2024-04-15 15:51:12 +03:00
Rene Leonhardt
5f16213bd1
fix: Use System Prompt from user configuration (#454) (#455) 2024-04-15 11:42:42 +03:00
Carl-Robert Linnupuu
763c65e1f6 2.6.1 2024-04-12 18:09:26 +03:00
Carl-Robert Linnupuu
02b0bfe769 fix: remove exclusion of okhttp dependency from gradle-intellij-plugin (required for publishPlugin task) 2024-04-12 18:05:27 +03:00
Carl-Robert Linnupuu
0dfaa128b7 2.6.1 2024-04-12 18:04:51 +03:00
Carl-Robert Linnupuu
d4690e9796 fix: remove exclusion of okhttp dependency from gradle-intellij-plugin (required for publishPlugin task) 2024-04-12 18:01:21 +03:00
Carl-Robert Linnupuu
27efef6223 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-04-12 17:26:05 +03:00
Carl-Robert Linnupuu
2911bc71ce docs: update changelog 2024-04-12 17:17:29 +03:00
Carl-Robert Linnupuu
18a4e80951 chore(deps): bump llm-client 2024-04-12 16:21:54 +03:00
Carl-Robert Linnupuu
a9131430af fix: temporarily disable tree-sitter logic (fixes #452) 2024-04-12 01:57:04 +03:00
Rene Leonhardt
6de7696877
fix: Use correct setting for updates and screenshot checkboxes (#446) (#451) 2024-04-11 17:54:28 +03:00
Rene Leonhardt
0cdd5096ba
chore: Convert Java tests to Kotlin (#447) 2024-04-11 12:03:31 +03:00
Rene Leonhardt
6fb0b8d30c
fix: Catch AssertionError in countTokens() (#445) 2024-04-10 14:56:35 +03:00
Rene Leonhardt
7d89650062
chore: Improve code (#442)
* chore: Improve code

* Convert classes to records
2024-04-10 14:47:38 +03:00
Rene Leonhardt
c29d3928db
Update to latest 233 platform 2023.3.6 (#439)
* Update to latest 233 platform 2023.3.6

* Use first non-blank choice from response
2024-04-08 16:46:13 +03:00
Carl-Robert Linnupuu
9e4cac617e 2.6.0 - 2024.1 2024-04-08 16:40:55 +03:00
Carl-Robert Linnupuu
a50e068813 fix: set until build version 2024-04-08 16:38:10 +03:00
Carl-Robert Linnupuu
b638f2b27e fix: multi-line partial completion acceptance 2024-04-07 22:12:24 +03:00
Carl-Robert Linnupuu
dcee4fdbb3 Merge remote-tracking branch 'origin/master' into platform/2024.1 2024-04-07 18:24:16 +03:00
Carl-Robert Linnupuu
3ef9aba488 docs: extract getting started guide into its own doc 2024-04-07 17:38:00 +03:00
Carl-Robert Linnupuu
3c2d185b8a 2.6.0 2024-04-07 17:28:39 +03:00
Rene Leonhardt
00c9813eeb
chore(deps): Update checkstyle to 10.15.0 (#438)
* Cleaned versions catalog and dependencies
* Fixed checkstyle finding
2024-04-07 16:53:59 +03:00
Carl-Robert Linnupuu
4688a1c8d0 refactor: remove 'Standard' prefix from toolwindow component class names, and other minor cleanup 2024-04-07 16:45:04 +03:00
Rene Leonhardt
7f505e2c30
chore(deps): Update and centralize dependencies (#436)
* chore(deps): Update and centralize dependencies

* Update treesitter to 0.22.2
* Update kotlin to 1.9.23
* Update jackson to 2.17.0
* Update gradle-intellij-plugin to 1.17.3
* Update gradle to 8.7
* Use BOMs where possible
* Centralize dependencies in version catalog
* Allow Dependabot to update other modules (add treesitter and buildSrc/src/main/kotlin, remove core)

* fix: preload credentials only once for all headers
2024-04-06 13:41:02 +03:00
Carl-Robert Linnupuu
52ceaa6a26 docs: update changelog 2024-04-06 02:25:05 +03:00
Carl-Robert Linnupuu
efe0f0b74a fix: use the proper callback for text area autofocus 2024-04-06 02:24:32 +03:00
Carl-Robert Linnupuu
71aee5f6aa fix: prevent sending completion to a closed channel 2024-04-06 02:02:12 +03:00
Carl-Robert Linnupuu
30025d2378 feat: request focus for text area on toolwindow state changes (closes #423) 2024-04-06 00:49:24 +03:00
Carl-Robert Linnupuu
2048f87fa8 docs: update changelog 2024-04-05 19:05:14 +03:00
Artem Borzov
9ed95f4e4e
fix: correctly handle changed files to generate a commit message #338 (#433)
* fix: properly handle changed files to generate commit message (resolve #338)

* fix: re-include staged diff in the final prompt

---------

Co-authored-by: borzov <borzov@skbkontur.ru>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-04-05 19:02:18 +03:00
Carl-Robert Linnupuu
17cfbf43de docs: update readme 2024-04-04 16:40:34 +03:00
Carl-Robert Linnupuu
314fbfbafc docs: update plugin description 2024-04-04 16:16:59 +03:00
Carl-Robert Linnupuu
3246102f06 docs: update changelog 2024-04-04 16:15:55 +03:00
Carl-Robert Linnupuu
fef8f6f903 docs: update changelog 2024-04-03 02:07:54 +03:00
Carl-Robert Linnupuu
f0172722c7 feat: add support for configuring code completions via settings 2024-04-03 02:02:15 +03:00
Carl-Robert Linnupuu
2b98b65210 docs: update changelog 2024-04-02 20:59:22 +03:00
Carl-Robert Linnupuu
79ef7550fe fix: send button enabled state 2024-04-02 20:54:59 +03:00
Carl-Robert Linnupuu
35ee02ba79 feat: display total tokens for all providers (closes #397) 2024-04-02 20:43:26 +03:00
Carl-Robert
8cf5720db9
feat: OpenAI and Claude vision support (#430)
* feat: add OpenAI and Claude vision support

* refactor: replace awaitility with PlatformTestUtil.waitWithEventsDispatching

* feat: display error when image not found

* chore: bump llm-client

* feat: configurable file watcher and minor code cleanup

* fix: ensure image notifications are triggered only for image file types

* docs: update changelog

* fix: user textarea icon button behaviour

* refactor: minor cleanup
2024-04-02 02:50:41 +03:00
Carl-Robert Linnupuu
a825d1cdb4 feat: support partial completion acceptance 2024-03-30 16:02:38 +02:00
Carl-Robert Linnupuu
99b5f94dad fix: enable code completion for DocumentEvent only 2024-03-28 14:55:52 +02:00
Carl-Robert Linnupuu
2ad1e4e917 refactor: code completion request creation to use CodeCompletionRequestFactory for better abstraction 2024-03-28 11:29:45 +02:00
Carl-Robert Linnupuu
6255bf9eb6 fix: preload credentials to avoid long running tasks on EDT 2024-03-28 00:09:49 +02:00
Carl-Robert Linnupuu
b72ddfccd6 fix: migrate from StartupActivity to ProjectActivity 2024-03-27 21:48:48 +02:00
Carl-Robert Linnupuu
9d28e3e009 refactor: code cleanup 2024-03-27 18:27:37 +02:00
Carl-Robert
657868453f
feat: migrate to a new inline completion api (#425)
* fix: plugin since/until build versions

* add necessary kotlin deps

* migrate to new inline completions api

* remove previous implementation

* replace build and platform versions

* bump gradle-intellij-plugin version
2024-03-27 14:34:09 +02:00
Chris Campbell
8ccf331988
fix: Allow single Java files to be added to context (#420) 2024-03-25 11:50:49 +02:00
Carl-Robert Linnupuu
c0c02d9afb refactor: remove custom Azure service configuration 2024-03-14 14:58:58 +02:00
Carl-Robert Linnupuu
42105bf308 refactor: clean up old code 2024-03-14 14:34:29 +02:00
Carl-Robert Linnupuu
33c597d8e5 2.5.1 2024-03-14 14:09:59 +02:00
Carl-Robert Linnupuu
8151a69c7e fix: DeleteConversationAction update thread 2024-03-14 14:06:56 +02:00
Carl-Robert Linnupuu
d4964d139e docs: update changelog 2024-03-14 13:39:22 +02:00
Carl-Robert Linnupuu
a7610acfa1 fix: couple of intellij platform warnings 2024-03-13 16:47:00 +02:00
Carl-Robert Linnupuu
31f96f8642 fix: github workflow build 2024-03-13 12:03:51 +02:00
Carl-Robert Linnupuu
1edea138cf chore: bump sinceBuild and javaVersion 2024-03-13 11:53:15 +02:00
dependabot[bot]
6b2bcc4bf6
chore(deps): bump org.json:json in /codegpt-core (#394)
Bumps [org.json:json](https://github.com/douglascrockford/JSON-java) from 20240205 to 20240303.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 23:21:15 +02:00
dependabot[bot]
04c98ba715
chore(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (#402)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jsr310 from 2.16.1 to 2.16.2.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 23:20:52 +02:00
Carl-Robert Linnupuu
678768c069 fix: intellij platform warning (#400) 2024-03-12 23:13:16 +02:00
Carl-Robert Linnupuu
8c986fd7de feat: support git commit message generation with custom openai and anthropic service (#390) 2024-03-12 21:27:51 +02:00
Carl-Robert Linnupuu
9990c6a57b feat: add code completion feature toggle keyboard-shortcut (#392) 2024-03-12 16:54:51 +02:00
Carl-Robert
91dd7bdb43
feat: apply post-processing for code completions (#404) 2024-03-11 23:13:10 +02:00
Dmitry Melanchenko
12cf5198f8
feat: implement support for You Pro modes (#399)
* Implement support for You Pro modes: Default, Agent, Custom with various 3rd party models and Research

* Update list of You modes/models depending on user having subscription

* add default value for chatMode
2024-03-11 22:25:33 +02:00
Carl-Robert Linnupuu
acbe550810 2.5.0 2024-03-06 16:10:07 +02:00
Carl-Robert Linnupuu
56c2995707 chore(deps): bump llm-client 2024-03-06 15:44:29 +02:00
Carl-Robert Linnupuu
74e0db5eb6 fix: add default api version 2024-03-06 15:07:58 +02:00
Carl-Robert Linnupuu
1aeac0d867 docs: update docs 2024-03-06 13:02:10 +02:00
Carl-Robert Linnupuu
672b7c6a5a docs: update changelog 2024-03-06 12:55:56 +02:00
Carl-Robert
9706a357d2
feat: support claude completions (#398) 2024-03-06 12:48:29 +02:00
squall
20c31de21d
fix: completion prompt template for Deepseek Coder (#387)
* fix: completion prompt template for Deepseek Coder

* Add stop token
2024-02-29 16:23:29 +02:00
Carl-Robert Linnupuu
b972078395 2.4.0 2024-02-26 15:10:26 +02:00
Carl-Robert Linnupuu
88946343c5 fix: custom service request body value conversions 2024-02-24 17:06:52 +02:00
Carl-Robert Linnupuu
eeda43b0e4 feat: support lookup completions for custom openai service 2024-02-24 14:38:51 +02:00
Carl-Robert Linnupuu
557f9b0ca0 fix: custom service request body serialization 2024-02-24 01:12:21 +02:00
Carl-Robert Linnupuu
fbf43393cb docs: update changelog 2024-02-23 18:01:03 +02:00
Carl-Robert
8507c779b1
feat: support custom OpenAI-compatible service (#383) 2024-02-23 17:41:44 +02:00
jlatiav
c8bb33d9b2
fix: respect proxy settings for azure client (#382) 2024-02-22 12:40:12 +02:00
Oleksii Maryshchenko
9627bbda15
feat: use llama cpp for generation of git commit message. (#380)
* Enable remote llama cpp server for Windows.

* Mixtral instruct template was added.

* Use llama cpp for generation of git commit message.

* style fix
2024-02-22 12:23:22 +02:00
Oleksii Maryshchenko
6e1a116ed2
feat: enable remote server settings for Windows + Mixtral Instruct template (#378)
* Enable remote llama cpp server for Windows.

* Mixtral instruct template was added.
2024-02-21 00:03:06 +02:00
Carl-Robert Linnupuu
dd4460a84f 2.3.1 2024-02-19 18:45:03 +02:00
Carl-Robert Linnupuu
df71b04301 docs: update changelog 2024-02-19 18:22:47 +02:00
Carl-Robert Linnupuu
29c40a06aa fix: azure credential condition (fixes #375) 2024-02-19 18:17:06 +02:00
Carl-Robert Linnupuu
ad55078107 chore(deps): bump com.knuddels:jtokkit from 0.6.1 to 1.0.0 2024-02-19 14:52:37 +02:00
Carl-Robert Linnupuu
5a88a7d9f3 feat: hide code completion feature for Azure and You service 2024-02-19 14:33:25 +02:00
Carl-Robert Linnupuu
c05b42fddf fix: caret offset location upon document changes (fixes #367) 2024-02-19 14:11:08 +02:00
Carl-Robert Linnupuu
b059aeac6c fix: general settings isModified state 2024-02-19 01:11:29 +02:00
Carl-Robert Linnupuu
08cb81dabf refactor: openai settings form 2024-02-19 00:56:10 +02:00
Carl-Robert Linnupuu
d475ddb36f feat: support custom openai model configuration 2024-02-19 00:46:28 +02:00
Carl-Robert Linnupuu
4ccba567d9 2.3.0 2024-02-15 21:14:13 +02:00
Carl-Robert Linnupuu
33de777374 feat: upgrade llama submodule 2024-02-14 18:10:30 +02:00
Carl-Robert Linnupuu
4ed74a31c1 feat: second set of autocomplete improvements
- support typing as suggested functionality
- do not fetch completions on cursor change
- other minor fixes
2024-02-11 01:31:34 +02:00
PhilKes
056276d626 fix: Skip AbstractCredentialsManager.setCredential if credential is null 2024-02-09 01:37:08 +02:00
Carl-Robert Linnupuu
01ec29c102 fix: code completion int. test 2024-02-08 02:32:36 +02:00
Carl-Robert Linnupuu
e831213509 fix: code completion cancelling 2024-02-08 01:58:15 +02:00
Carl-Robert Linnupuu
1a7e302ae2 fix: decrease prefix/suffix prompt size 2024-02-08 01:57:50 +02:00
Carl-Robert Linnupuu
5ea3609a92 fix: build caused by recent merge 2024-02-08 01:08:28 +02:00
Carl-Robert
93145098f5
feat: settings and credentials refactoring (#360)
* refactor service credential managers

* refactor azure settings

* refactor openai settings

* refactor llama settings

* refactor you settings

* refactor included files settings

* refactor general settings

* refactor advanced settings

* fix advanced settings component init

* refactor project structure

* refactor service settings forms

* remove openai quota exceeded field validator

* fix credential modified conditions

* fix and rearrange minor stuff

* fix you auth logic, add credential cache
2024-02-08 01:02:08 +02:00
squall
7c067d9edd
feat: remote server, add template suport for DeepSeek Coder (#352)
* feat: remote server, add template suport for DeepSeek Coder

* fix checkstyle error
2024-02-08 00:56:01 +02:00
Carl-Robert Linnupuu
6b07de7f13 chore: upgrade dependencies 2024-02-08 00:40:55 +02:00
Carl-Robert Linnupuu
097f0914bf refactor: extract configuration state into standalone class 2024-02-07 02:13:22 +02:00
Carl-Robert Linnupuu
d0132c6c34 refactor: clean up unused configuration 2024-02-07 00:49:16 +02:00
Carl-Robert Linnupuu
1aac1f1084 fix: code completion improvements 2024-02-07 00:47:13 +02:00
Carl-Robert Linnupuu
dfca391ed5 fix: revert code completion feature toggle dumbaware actions 2024-02-07 00:45:52 +02:00
Carl-Robert Linnupuu
df14b88617 feat: add the latest OpenAI chat models 2024-02-06 18:49:30 +02:00
Carl-Robert Linnupuu
169957687d fix: test execution 2024-02-06 02:20:57 +02:00
Carl-Robert Linnupuu
fe4e02f7f6 Revert "Revert "feat: code completion improvements""
This reverts commit 7f586da0c1.
2024-02-06 02:18:53 +02:00
Carl-Robert Linnupuu
7f586da0c1 Revert "feat: code completion improvements"
This reverts commit abc8dc8d07.
2024-02-05 16:28:18 +02:00
Carl-Robert Linnupuu
abc8dc8d07 feat: code completion improvements
- truncate context when working with bigger files
- fix notification error messages
- other minor fixes
2024-02-05 15:59:49 +02:00
Carl-Robert Linnupuu
f3357ff0a6 docs: update readme 2024-02-04 23:41:16 +02:00
dependabot[bot]
61e35dae7c
chore(deps): bump org.assertj:assertj-core from 3.24.2 to 3.25.2 (#341)
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.24.2 to 3.25.2.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.24.2...assertj-build-3.25.2)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-02 12:25:35 +02:00
Phil
cceba88c35
Allow using existing Llama Server instead of running locally (#345)
* Add setting to use existing Llama server

* minor UI improvements

* support infill template configuration

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-02-02 12:24:41 +02:00
Phil
7387cf4536
Inline Autocompletion Pt.2 (#333)
* Add first draft of inline code completion with mock text

* Adds InsertInlineTextAction for inserting autocomplete suggestion with tab

- Changed to disable suggestions when text is selected
- Adds and removes the insert action based on when it shows the inlay hint

* Request inline code completion

* Move inline completion prompt into txt file

* Add inline completion settings to ConfigurationState

* Fix code style

* Use EditorTrackerListener instead of EditorFactoryListener to enable inline completion

* Code completion requests synchronously without SSE

* Use LlamaClient.getInfill() for inline code completion

* support inlay block element rendering, clean up code

* Use only enclosed Method or Class contents for code completion if possible

* Refactor extracting PsiElement contents in code completion

* bump llm-client

* fix completion call from triggering on EDT, force method params to be nonnull by default

* refactor request building, decrease delay value

* Trigger code completion if cursor is not inside a word

* Improve inlay rendering

* Support cancellable infill requests

* add statusbar widget, disable completions by default

* Show error notification if code completion failed

* Truely disable/enable EditorInlayHandler when completion is turned off/on

* Add CodeCompletionEnabledListener Topic to control enabling/disabling code-completion

* Add progress indicator for code-completion with option to cancel

* Add CodeCompletionServiceTest + refactor inlay ElementRenderers

* several improvements

- replace timer implementation with call debouncing
- use OpenAI /v1/completions API for completions
- code refactoring

* trigger progress indicator only for llama completions

* fix tests

---------

Co-authored-by: James Higgins <james.isaac.higgins@gmail.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2024-01-31 01:05:31 +02:00
Phil
390d8cdd5e
Add setting for custom LLama server executable (#344) 2024-01-30 11:22:22 +02:00
dependabot[bot]
9ad12f8931
Bump com.github.jelmerk:hnswlib-core from 1.1.0 to 1.1.2 (#325)
Bumps [com.github.jelmerk:hnswlib-core](https://github.com/jelmerk/hnswlib) from 1.1.0 to 1.1.2.
- [Commits](https://github.com/jelmerk/hnswlib/commits/v1.1.2)

---
updated-dependencies:
- dependency-name: com.github.jelmerk:hnswlib-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:58:48 +02:00
dependabot[bot]
fd29cf0230
Bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (#315)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jsr310 from 2.16.0 to 2.16.1.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:58:37 +02:00
dependabot[bot]
dee87c0149
Bump com.github.jelmerk:hnswlib-core in /codegpt-core (#326)
Bumps [com.github.jelmerk:hnswlib-core](https://github.com/jelmerk/hnswlib) from 1.1.0 to 1.1.2.
- [Commits](https://github.com/jelmerk/hnswlib/commits/v1.1.2)

---
updated-dependencies:
- dependency-name: com.github.jelmerk:hnswlib-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:58:26 +02:00
dependabot[bot]
78fb10b795
Bump org.jsoup:jsoup from 1.17.1 to 1.17.2 (#317)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.17.1 to 1.17.2.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.17.1...jsoup-1.17.2)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:25:51 +02:00
dependabot[bot]
3a550e2a87
Bump com.fasterxml.jackson.datatype:jackson-datatype-jdk8 (#316)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jdk8 from 2.16.0 to 2.16.1.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:25:40 +02:00
dependabot[bot]
b4dc59cd4e
Bump com.github.jelmerk:hnswlib-utils in /codegpt-core (#327)
Bumps [com.github.jelmerk:hnswlib-utils](https://github.com/jelmerk/hnswlib) from 1.1.0 to 1.1.2.
- [Commits](https://github.com/jelmerk/hnswlib/commits/v1.1.2)

---
updated-dependencies:
- dependency-name: com.github.jelmerk:hnswlib-utils
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 11:25:17 +02:00
Carl-Robert
f831a1facd
feat: add support for auto resolving compilation errors (#318) 2023-12-29 16:41:47 +02:00
Strange Dreams
7031a6dc73
Move the CodeGPT Telemetry settings screen. (#222)
The CodeGPT Telemetry settings screen was previously a 'stand-alone' configuration window under the 'Tools' section of the IDEA settings. Moving it under the parent plugin makes it more apparent and keeps it better organized.
2023-12-21 23:19:44 +02:00
Carl-Robert Linnupuu
695f1658e0 docs: update readme 2023-12-21 22:12:58 +02:00
Carl-Robert Linnupuu
4ab63ca38a Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2023-12-21 21:07:19 +02:00
Carl-Robert Linnupuu
c287128744 2.2.12 2023-12-21 15:26:16 +02:00
Carl-Robert Linnupuu
e230640063 feat: extract llama request settings to its own state, improve UI/UX 2023-12-21 14:46:45 +02:00
dependabot[bot]
ec0b1cc583
Bump actions/upload-artifact from 3 to 4 (#309)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 12:34:30 +02:00
Paolo Inaudi
0edc0455db
Fix license in README.md (#313)
This aligns with the LICENSE file in this repo and on Jetbrains website, and is coherent with https://github.com/carlrobertoh/CodeGPT/issues/275
2023-12-19 12:34:06 +02:00
Aliet Expósito García
9d83107dd5
Add support for some extended parameters of llama.cpp(top_k, top_p, min_p, and repeat_penalty) (#311)
* Add support for some extended parameters of llama.cpp(top_k, top_p, min_p, and repeat_penalty)

Added 'top_k,' 'top_p,' 'min_p,' and 'repeat_penalty' fields to the llama.cpp request configuration. The default values for these fields match the defaults of llama.cpp. If left untouched, they do not affect the model's response to the request.

* Bump llm-client

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2023-12-18 11:53:23 +02:00
Carl-Robert Linnupuu
52c1b5d68c 2.2.11 2023-12-14 15:36:22 +02:00
Carl-Robert Linnupuu
06895364ba feat: throw an error when too many files selected (temp) 2023-12-14 10:17:28 +02:00
Carl-Robert Linnupuu
6824fbeb3b feat: replace editor pane with action links 2023-12-13 16:52:35 +02:00
Carl-Robert Linnupuu
ee4d1e8da6 feat: improve multi-file selection dialog UI 2023-12-13 14:52:59 +02:00
Carl-Robert Linnupuu
56c69f5eeb feat: allow commit message and method name generation with Azure service 2023-12-12 22:46:16 +02:00
Carl-Robert
f4be25bdac
Feature: Support chatting with multiple files (#306)
* Initial implementation

* Refactor UI related classes and organize imports

* Display selected files notification, include the files in the prompt

* feat: store referenced file paths in the messate state

* feat: add selected files accordion

* feat: update UI

* feat: improve file selection

* feat: support prompt template configuration

* fix: token calculation for virtualfile checkbox tree

* refactor: clean up

* refactor: move labels/descriptions to bundle
2023-12-12 22:30:39 +02:00
Carl-Robert Linnupuu
4354000ddb refactor: delete docs 2023-12-12 15:35:15 +02:00
Carl-Robert Linnupuu
02a336ae9c 2.2.10 2023-12-12 10:21:15 +02:00
René
c214b59f55
adds: configuration for the commit-message system prompt (#304)
* adds: configuration for the commit-message system prompt

this will remove the default file and move it to the code to be overwritten if the user chooses to modify the prompt.

* fix: checkstyle

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2023-12-09 14:48:10 +02:00
Carl-Robert Linnupuu
c36d4dd566 fix: redundant chat tab creation on provider change 2023-12-08 03:05:01 +02:00
Carl-Robert Linnupuu
cfe89fccb7 refactor: remove you.com coupon 2023-12-08 02:32:49 +02:00
Carl-Robert Linnupuu
3f57427a45 docs: move assets outside of the repo 2023-12-08 02:22:03 +02:00
Carl-Robert Linnupuu
ffb8299571 fix: azure host and path overriding 2023-12-08 01:03:41 +02:00
Carl-Robert Linnupuu
33ba3a0fd5 feat: add codegpt header value when making calls to azure 2023-12-07 23:16:00 +02:00
Carl-Robert Linnupuu
425b0cd58b refactor: improve llm-client code modularity 2023-12-07 21:48:12 +02:00
Carl-Robert Linnupuu
c0ecce8d45 docs: update readme and image assets 2023-12-05 01:35:38 +02:00
Carl-Robert Linnupuu
06ad159adf fix: JetBrains internal API usage warnings 2023-12-04 21:56:51 +02:00
Carl-Robert Linnupuu
624180a626 2.2.9 2023-12-04 16:45:07 +02:00
Carl-Robert Linnupuu
f557406b96 chore: bump gradle version 2023-12-04 16:39:50 +02:00
dependabot[bot]
1241212b44
Bump actions/setup-java from 3 to 4 (#299)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 11:28:52 +02:00
dependabot[bot]
a3df87f57d
Bump org.jsoup:jsoup from 1.16.2 to 1.17.1 (#294)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.16.2 to 1.17.1.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.16.2...jsoup-1.17.1)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 11:28:39 +02:00
Carl-Robert Linnupuu
5a7d0abaf2 docs: update readme and plugin description 2023-12-03 23:15:57 +02:00
Carl-Robert Linnupuu
46b88a4952 fix: settings state on server failure 2023-12-03 18:43:20 +02:00
Carl-Robert Linnupuu
0e61bee0f8 feat: improve llama server logging 2023-12-03 18:10:39 +02:00
Carl-Robert Linnupuu
1392775940 feat: display notification on plugin updates 2023-12-02 01:14:37 +02:00
Carl-Robert Linnupuu
10b090e2d2 2.2.8 2023-12-01 01:07:30 +02:00
Carl-Robert Linnupuu
dc2cc3c5a1 fix: UI concurrency issues (run completion events on EDT) 2023-12-01 00:32:52 +02:00
Carl-Robert Linnupuu
fde20109cd 2.2.7 2023-11-30 11:21:12 +02:00
Viktor
92dbbb4a4d
Local LLM: Added empty check for Additional parameters field (#295)
Co-authored-by: Viktor <viktor.hoshyi@gg4l.com>
2023-11-28 20:15:22 +02:00
Carl-Robert Linnupuu
2e75826d39 Bump llm-client 2023-11-28 01:46:20 +02:00
Carl-Robert Linnupuu
63b356ab18 2.2.6 2023-11-27 12:46:52 +02:00
Carl-Robert Linnupuu
8cb96037a5 Bump llm-client version 2023-11-27 12:38:05 +02:00
Carl-Robert
ae7f5d17db
262 - Support auto code formatting (#292) 2023-11-27 01:24:02 +02:00
Carl-Robert
2372eec3cf
285 - Include actual user selected files in the diff (#291) 2023-11-27 00:28:39 +02:00
Carl-Robert Linnupuu
8d4189c503 Minor clean up 2023-11-26 22:03:49 +02:00
Carl-Robert Linnupuu
01963e2faa Support additional command-line params for the server startup process 2023-11-26 13:21:02 +02:00
Carl-Robert
1df20ccb86
Update toolwindow UI (#290) 2023-11-26 10:52:47 +02:00
Carl-Robert Linnupuu
3797126de4 Add deepseek coder instruct models (1-33B) 2023-11-23 17:22:48 +02:00
Carl-Robert Linnupuu
0faf48ed7e 2.2.5 2023-11-23 15:47:23 +02:00
Viktor
1acb950c33
Local LLM: Use OSProcessHandler.Silent intead of OSProcessHandler to prevent server process killing (#287)
Co-authored-by: Viktor <viktor.hoshyi@gg4l.com>
2023-11-23 00:10:33 +02:00
Carl-Robert Linnupuu
ac39a863d1 Fix chat response JTextPane caret visibility 2023-11-22 02:10:48 +02:00
Carl-Robert
2317b54d56
272 - Fix editor actions when createNewChatOnEachAction cfg is turned on (#283) 2023-11-22 00:22:36 +02:00
Carl-Robert Linnupuu
ecf6ac02ed Disable tool window chat editor when initially displayed 2023-11-21 23:09:31 +02:00
Carl-Robert Linnupuu
53bdbcd4f5 Remove Quartz Scheduler, You.com model change topic, theme utils, and include other basic refactoring 2023-11-21 22:47:09 +02:00
Viktor
73870cca40
Added option to set the number of threads for local LLM models (#282)
* Added option to set the number of threads for local LLM models

* Refactoring

---------

Co-authored-by: Viktor <viktor.hoshyi@gg4l.com>
2023-11-21 00:36:19 +02:00
Carl-Robert Linnupuu
fc6d085b61 2.2.4 2023-11-20 15:59:05 +02:00
Carl-Robert Linnupuu
85eafadb47 Replace label 2023-11-20 15:47:50 +02:00
Carl-Robert
5c8a7c0e2b
Include default parameters for llama client (#281) 2023-11-20 00:07:31 +02:00
Carl-Robert
845c7b4cee
Support method name lookup generation (#280) 2023-11-19 22:56:12 +02:00
dependabot[bot]
3d95269836
Bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (#270)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jsr310 from 2.15.3 to 2.16.0.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-17 14:52:50 +02:00
dependabot[bot]
6f8e6fc43a
Bump com.fasterxml.jackson.datatype:jackson-datatype-jdk8 (#271)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jdk8 from 2.15.3 to 2.16.0.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-17 11:40:00 +02:00
Carl-Robert
44e5aa79dd
Support git commit message generation (#276)
* Add git commit message generation feature using OpenAI service
2023-11-17 01:20:00 +02:00
Carl-Robert Linnupuu
a53bc94d9f Update license 2023-11-17 00:54:49 +02:00
Carl-Robert
c4115e257b
Add checkstyle rules (#274) 2023-11-16 17:15:11 +02:00
Carl-Robert Linnupuu
fe613afc74 2.2.3 2023-11-15 11:18:02 +02:00
Carl-Robert Linnupuu
318dd4286a Fix minor issues related to total tokens calculation 2023-11-15 00:44:13 +02:00
Carl-Robert Linnupuu
346218b512 Clean up code 2023-11-14 16:20:59 +02:00
Carl-Robert Linnupuu
ec3120a5e6 Add interactive total token count label, codebase refactoring 2023-11-14 13:27:15 +02:00
Carl-Robert Linnupuu
d8e5e18998 Expand/Collapse logic for toolwindow editors 2023-11-10 15:06:22 +02:00
Carl-Robert Linnupuu
dea80fe8aa Fix model changed logic 2023-11-10 01:37:07 +02:00
Carl-Robert Linnupuu
14acc5b09f Remove Azure model selection and max completion token limit 2023-11-09 20:31:19 +02:00
Carl-Robert Linnupuu
5446e675fc Minor UI updates 2023-11-09 19:11:40 +02:00
Carl-Robert Linnupuu
c3da76f2bd Clean up BaseChatToolWindowTabPanel code 2023-11-09 18:43:05 +02:00
dependabot[bot]
bfd50b18ad
Bump org.junit.jupiter:junit-jupiter-engine from 5.10.0 to 5.10.1 (#264)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-08 19:18:44 +02:00
Carl-Robert
cfa5ff7776
Use enum value to store selected service (#265) 2023-11-08 19:17:25 +02:00
dependabot[bot]
ff60d1eab5
Bump org.junit.vintage:junit-vintage-engine from 5.10.0 to 5.10.1 (#253)
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 21:59:59 +02:00
dependabot[bot]
7413646edd
Bump org.junit.platform:junit-platform-launcher from 1.10.0 to 1.10.1 (#254)
Bumps [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit5) from 1.10.0 to 1.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-launcher
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 21:54:57 +02:00
dependabot[bot]
47e9a7a1da
Bump org.json:json from 20230618 to 20231013 in /codegpt-core (#240)
Bumps [org.json:json](https://github.com/douglascrockford/JSON-java) from 20230618 to 20231013.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 21:50:17 +02:00
dependabot[bot]
a34d94e404
Bump org.junit.jupiter:junit-jupiter-params from 5.9.2 to 5.10.1 (#255)
Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.9.2 to 5.10.1.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.9.2...r5.10.1)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 21:49:06 +02:00
dependabot[bot]
111012a586
Bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (#235)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jsr310 from 2.15.2 to 2.15.3.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 21:48:09 +02:00
Carl-Robert Linnupuu
26af45126f 2.2.2 2023-11-07 16:47:14 +02:00
Carl-Robert
1e4c1e3ca9
Bump llm-client, remove credentials validation for llama service (#263) 2023-11-07 16:37:55 +02:00
Carl-Robert Linnupuu
9322382c3a 2.2.1 2023-11-06 23:44:20 +02:00
Carl-Robert Linnupuu
487f8a949f Fix llama telemetry service value 2023-11-06 22:55:22 +02:00
Carl-Robert
b25bef5fd4
Fix azure path (#259) 2023-11-06 22:48:51 +02:00
Carl-Robert
43abca66c4
Remove pluginUntilBuild value to include all builds (#258)
* Remove value to include all builds
2023-11-06 20:08:42 +02:00
Carl-Robert
547cd889de
Fix right click context menu (#257) 2023-11-06 19:35:14 +02:00
dependabot[bot]
24fee1b0fc
Bump org.apache.commons:commons-text from 1.10.0 to 1.11.0 (#247)
Bumps org.apache.commons:commons-text from 1.10.0 to 1.11.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-text
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-03 13:50:48 +02:00
dependabot[bot]
dbd58c7629
Bump org.jsoup:jsoup from 1.16.1 to 1.16.2 (#241)
Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.16.1 to 1.16.2.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.16.1...jsoup-1.16.2)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-03 13:30:06 +02:00
Carl-Robert Linnupuu
cd58f77982 2.2.0 2023-11-03 12:13:00 +02:00
Carl-Robert
45908e69df
#178 - Add support for running local LLMs via LLaMA C/C++ port (#249)
* Initial implementation of integrating llama.cpp to run LLaMA models locally

* Move submodule

* Copy llama submodule to bundle

* Support for downloading models from IDE

* Code cleanup

* Store port field

* Replace service selection radio group with dropdown

* Add quantization support + other fixes

* Add option to override host

* Fix override host handler

* Disable port field when override host enabled

* Design updates

* Fix llama settings configuration, design changes, clean up code

* Improve You.com coupon design

* Add new Phind model and help tooltip

* Fetch you.com subscription

* Add CodeBooga model, fix downloadable model selection

* Chat history support

* Code refactoring, minor bug fixes

* UI updates, several bug fixes, removed code llama python model

* Code cleanup, enable llama port only on macOS

* Change downloaded gguf models path

* Move some of the labels to codegpt bundle

* Minor fixes

* Remove ToRA model, add help texts

* Fix test

* Modify description
2023-11-03 12:00:24 +02:00
Carl-Robert Linnupuu
ca2eb9b6fa 2.1.7 2023-10-26 02:17:03 +03:00
Carl-Robert
3f67be5f78
You.com service updates (#246)
* Free GPT4 for a month to try

* Free GPT4 for a month to try

* Better tooltip

* Replace toggle component with checkbox and other minor ui improvements

* Add UTM and userId params to You.com completion request

* Fix #145 - web serach results not being displayed despite the flag

---------

Co-authored-by: siilats <keith@siilats.com>
2023-10-26 02:13:44 +03:00
keith siilats
4519b2ade6
Make it clear that you.com is free in case people run out of OpenAI credits (#238)
* Make it clear that you.com is free in case people run out of OpenAI credits

* Clear quota exceeded flag on new api key, minor refactoring

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2023-10-17 10:50:20 +03:00
dependabot[bot]
41b3956bf4
Bump com.fasterxml.jackson.datatype:jackson-datatype-jdk8 (#236)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jdk8 from 2.15.2 to 2.15.3.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-14 22:48:50 +03:00
Carl-Robert
799f560523
Switch telemetry service to rudderstack (#237)
* Switch to rudderstack
* Do not send null ip to rudderstack
2023-10-14 22:48:30 +03:00
Carl-Robert Linnupuu
f21e0d9cd6 2.1.6 2023-10-12 22:58:41 +03:00
Carl-Robert
21fa61d2af
Support you.com gpt-4 model (#233) 2023-10-12 11:18:37 +03:00
TautCony
0343842af9
set line wrap style to be wrapped at word boundaries (#230) 2023-10-10 23:07:21 +03:00
TautCony
99e6c5a733
fix memory leak in extensions (#229) 2023-10-10 12:03:29 +03:00
Carl-Robert
7dfe62b96d
Codebase refactoring (#226)
* Refactor codebase
2023-10-05 02:43:06 +03:00
keith siilats
4c8b8d4e4f
on quota exceeded suggest user switch to different LLM provider (#221)
* on quota exceeded suggest user switch to different LLM provider

* Improve insufficient quota handling, add more telemetry actions

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2023-10-05 00:18:50 +03:00
Carl-Robert Linnupuu
a45646740e Rename md title 2023-10-05 00:13:02 +03:00
Carl-Robert Linnupuu
b4881be72a Add default value for destination text field 2023-10-03 00:33:54 +03:00
Carl-Robert Linnupuu
730ed5121a 2.1.5 2023-10-02 11:54:01 +03:00
wangwangxf
8269ba371c
210 - Add diff function (#213)
* Add diff function

* modify writeSpace

* Remove unnecessary code

* Add telemetry for toolwindow editor actions

---------

Co-authored-by: wang <1625116638@qq.com>
Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2023-10-02 11:24:09 +03:00
Carl-Robert Linnupuu
a2738dac0f Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2023-10-01 13:16:23 +03:00
Carl-Robert Linnupuu
e3e547fa51 2.1.4 2023-10-01 13:16:05 +03:00
Carl-Robert
7ff48dc928
Ability to edit generated code (#220)
* Ability to edit generated code inside the chat toolwindow

* Improve icon behaviour

* Fix browseFolderListener automatic disposal by recreating the inputs on each action

* Replace label
2023-10-01 03:59:32 +03:00
Carl-Robert Linnupuu
d05f7d4583 Fix privacy policy url 2023-10-01 03:59:03 +03:00
Carl-Robert Linnupuu
d85606bfeb Merge branch 'master' of github.com:carlrobertoh/CodeGPT 2023-09-30 02:05:44 +03:00
dependabot[bot]
a24fb39ecf
Bump com.segment.analytics.java:analytics from 3.4.0 to 3.5.0 (#218)
Bumps [com.segment.analytics.java:analytics](https://github.com/segmentio/analytics-java) from 3.4.0 to 3.5.0.
- [Changelog](https://github.com/segmentio/analytics-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/segmentio/analytics-java/compare/analytics-parent-3.4.0...analytics-parent-3.5.0)

---
updated-dependencies:
- dependency-name: com.segment.analytics.java:analytics
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-30 01:58:23 +03:00
Carl-Robert
e417ac8a03
Ability to create new files from codegpt toolwindow editor (#219) 2023-09-30 01:40:37 +03:00
Carl-Robert Linnupuu
e95b5ba175 Code refactoring 2023-09-29 11:48:31 +03:00
Carl-Robert Linnupuu
6490a2c8d5 2.1.3 2023-09-28 17:16:33 +03:00
Carl-Robert Linnupuu
b35daaae88 Fix error logging and add more telemetry actions 2023-09-28 17:08:31 +03:00
Carl-Robert Linnupuu
d504922fea 2.1.2 2023-09-28 01:02:39 +03:00
Carl-Robert
f502e3b43c
194 - Proper use of project-level light service (#216) 2023-09-28 00:45:10 +03:00
Carl-Robert Linnupuu
439c231658 2.1.1 2023-09-27 20:01:43 +03:00
keith siilats
8f9980fbf1
anymous telemetry based on redhat (#212)
* initial telemetry

* fixed segment bugs

* Move telemetry impl to submodule, add more actions

* Replace privacy policy link, minor refactoring

---------

Co-authored-by: Carl-Robert Linnupuu <carlrobertoh@gmail.com>
2023-09-27 18:44:01 +03:00
dependabot[bot]
05c7560ec9
Bump com.github.jelmerk:hnswlib-utils in /codegpt-core (#204)
Bumps [com.github.jelmerk:hnswlib-utils](https://github.com/jelmerk/hnswlib) from 1.0.1 to 1.1.0.
- [Commits](https://github.com/jelmerk/hnswlib/commits)

---
updated-dependencies:
- dependency-name: com.github.jelmerk:hnswlib-utils
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-21 13:48:23 +03:00
dependabot[bot]
01691b01e7
Bump com.github.jelmerk:hnswlib-core from 1.0.1 to 1.1.0 (#208)
Bumps [com.github.jelmerk:hnswlib-core](https://github.com/jelmerk/hnswlib) from 1.0.1 to 1.1.0.
- [Commits](https://github.com/jelmerk/hnswlib/commits)

---
updated-dependencies:
- dependency-name: com.github.jelmerk:hnswlib-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-21 13:26:10 +03:00
Carl-Robert Linnupuu
5c8ecda4e0 2.1.0 2023-09-21 12:37:15 +03:00
Carl-Robert
37af74ebdf
You API integration (#203)
* Ability to configure custom service

* Add example preset templates, rename module

* Custom service client impl

* Add YOU API integration

* Remove/ignore generated antlr classes

* Remove text completion models(deprecated)

* Remove unused code, fix settings state sync

* Display model name/icon in the tool window

* Update chat history UI

* Fix model/service sync

* Clear plugin state

* Fix minor bugs, add settings sync tests

* UI changes

* Separate model configuration

* Add support for overriding the completion path

* Update Find Bugs prompt
2023-09-14 14:52:18 +03:00
keith siilats
a860054360
Update EditorAction.java (#202)
add and output code with bugs fixed to the prompt
2023-09-13 17:53:47 +03:00
dependabot[bot]
0b0c2d09e3
Bump actions/checkout from 3 to 4 (#199)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-08 01:34:24 +03:00
dependabot[bot]
0b144a1844
Bump org.antlr:antlr4 from 4.13.0 to 4.13.1 (#197)
Bumps [org.antlr:antlr4](https://github.com/antlr/antlr4) from 4.13.0 to 4.13.1.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/dev/doc/go-changes.md)
- [Commits](https://github.com/antlr/antlr4/compare/4.13.0...4.13.1)

---
updated-dependencies:
- dependency-name: org.antlr:antlr4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-08 01:33:44 +03:00
dependabot[bot]
d350240b0d
Bump org.jetbrains.changelog from 2.1.2 to 2.2.0 (#193)
Bumps org.jetbrains.changelog from 2.1.2 to 2.2.0.

---
updated-dependencies:
- dependency-name: org.jetbrains.changelog
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 14:06:43 +03:00
Carl-Robert Linnupuu
87b6114bb4 2.0.6 2023-08-29 09:56:47 +03:00
Carl-Robert Linnupuu
1f279cafc9 Fix configuring azure service 2023-08-29 09:31:44 +03:00
dependabot[bot]
8ba31379f8
Bump org.junit.vintage:junit-vintage-engine from 5.6.1 to 5.10.0 (#190)
Bumps [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit5) from 5.6.1 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.1...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.vintage:junit-vintage-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 11:16:14 +03:00
dependabot[bot]
f3368e9e93
Bump com.fasterxml.jackson.datatype:jackson-datatype-jdk8 (#191)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jdk8 from 2.14.2 to 2.15.2.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jdk8
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 11:16:06 +03:00
dependabot[bot]
d88c13a460
Bump org.junit.platform:junit-platform-launcher from 1.6.1 to 1.10.0 (#192)
Bumps [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit5) from 1.6.1 to 1.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/commits)

---
updated-dependencies:
- dependency-name: org.junit.platform:junit-platform-launcher
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 11:15:57 +03:00
dependabot[bot]
ff60018996
Bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (#183)
Bumps com.fasterxml.jackson.datatype:jackson-datatype-jsr310 from 2.14.2 to 2.15.2.

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 18:40:53 +03:00
dependabot[bot]
c1c5358c54
Bump org.antlr:antlr4 from 4.5 to 4.13.0 in /embeddings (#184)
Bumps [org.antlr:antlr4](https://github.com/antlr/antlr4) from 4.5 to 4.13.0.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/dev/doc/go-changes.md)
- [Commits](https://github.com/antlr/antlr4/compare/4.5...4.13.0)

---
updated-dependencies:
- dependency-name: org.antlr:antlr4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 18:40:42 +03:00
Carl-Robert
61540da93f
Remove unnecessary gradle plugin (#189) 2023-08-27 18:40:35 +03:00
dependabot[bot]
371b801b20
Bump org.junit.jupiter:junit-jupiter-engine from 5.6.1 to 5.10.0 (#185)
Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.6.1 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](https://github.com/junit-team/junit5/compare/r5.6.1...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-engine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 18:19:05 +03:00
dependabot[bot]
930a9a7157
Bump com.knuddels:jtokkit from 0.2.0 to 0.6.1 (#186)
Bumps [com.knuddels:jtokkit](https://github.com/knuddelsgmbh/jtokkit) from 0.2.0 to 0.6.1.
- [Release notes](https://github.com/knuddelsgmbh/jtokkit/releases)
- [Commits](https://github.com/knuddelsgmbh/jtokkit/compare/0.2.0...0.6.1)

---
updated-dependencies:
- dependency-name: com.knuddels:jtokkit
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 18:18:26 +03:00
dependabot[bot]
043dc0de67
Bump com.vladsch.flexmark:flexmark-all from 0.64.0 to 0.64.8 (#187)
Bumps [com.vladsch.flexmark:flexmark-all](https://github.com/vsch/flexmark-java) from 0.64.0 to 0.64.8.
- [Commits](https://github.com/vsch/flexmark-java/commits)

---
updated-dependencies:
- dependency-name: com.vladsch.flexmark:flexmark-all
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 18:18:01 +03:00
dependabot[bot]
c815c699ca
Bump org.antlr:antlr4-runtime from 4.7.1 to 4.13.0 (#188)
Bumps [org.antlr:antlr4-runtime](https://github.com/antlr/antlr4) from 4.7.1 to 4.13.0.
- [Release notes](https://github.com/antlr/antlr4/releases)
- [Changelog](https://github.com/antlr/antlr4/blob/dev/doc/go-changes.md)
- [Commits](https://github.com/antlr/antlr4/compare/4.7.1...4.13.0)

---
updated-dependencies:
- dependency-name: org.antlr:antlr4-runtime
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 18:17:07 +03:00
Carl-Robert
ef5fd5919f
Encapsulate settings (#180) 2023-08-27 18:16:08 +03:00
Carl-Robert Linnupuu
de971806d0 Fix running ide locally 2023-08-27 18:14:48 +03:00
Carl-Robert Linnupuu
df0485a94f Add dependabot 2023-08-27 17:53:34 +03:00
Carl-Robert Linnupuu
9b1e29c155 Upgrade gradle 8.3 2023-08-26 13:58:25 +03:00
Carl-Robert
3c2c23b3ea
Move embeddings impl to a different module (#179)
* Move embeddings impl to a different module
* Disable plugin verifier for sub modules
2023-08-26 12:55:32 +03:00
Carl-Robert Linnupuu
d68ef65f8b Update readme 2023-08-25 17:19:00 +03:00
Carl-Robert
55607cf781 Update issue templates 2023-08-25 17:13:48 +03:00
Carl-Robert
ea329da170 Update issue templates 2023-08-25 17:02:52 +03:00
Carl-Robert Linnupuu
2b346d0d24 Update readme 2023-08-25 16:50:51 +03:00
Carl-Robert Linnupuu
bdc719b169 Remove generated grammar files 2023-08-25 16:41:13 +03:00
Carl-Robert Linnupuu
26a3e07360 Reopen plugin's source code (1.10.8 → 2.0.5) 2023-08-25 16:36:22 +03:00
Matthieu Borgraeve
faf02a5c0a
Adding documentation for Azure OpenAI. (#120)
Signed-off-by: Matthieu Borgraeve <3082664+mborgraeve@users.noreply.github.com>
Co-authored-by: Matthieu Borgraeve <matthieu.borgraeve@bell.ca>
2023-06-06 14:06:38 +01:00
Carl-Robert Linnupuu
68f29aed06 Update README 2023-06-04 17:07:15 +01:00
Carl-Robert Linnupuu
99c1f683fc Update README 2023-06-04 16:02:03 +01:00
Carl-Robert Linnupuu
1b7dd27753 Add gifs 2023-06-04 15:30:45 +01:00
Carl-Robert
e93d57b1ba
Delete docs/assets/gif directory 2023-06-03 17:56:05 +01:00
Carl-Robert Linnupuu
97de54439d Replace change notes 2023-05-18 00:13:55 +01:00
Carl-Robert Linnupuu
0520d1ae41 Fix com.intellij.diagnostic.PluginException by providing label as action description (fixes #95) 2023-05-17 23:21:17 +01:00
Carl-Robert Linnupuu
2e6e0b78ae Remove model comments 2023-05-17 23:06:29 +01:00
Carl-Robert Linnupuu
0eba3a16af 1.10.8 - Ability to use custom server/models, support api key retrieval from env var (closes #90) 2023-05-17 22:59:50 +01:00
Carl-Robert Linnupuu
b26681ed7b 🐢 2023-05-04 23:24:44 +01:00
Carl-Robert Linnupuu
31fee06d1c 1.10.7 - Add keymap support for plugin actions (closes #63), support off-screen browser rendering 2023-05-04 23:08:31 +01:00
Carl-Robert Linnupuu
a514983ca3 1.10.6 - Add support for both Azure auth methods 2023-05-03 22:16:37 +01:00
Carl-Robert Linnupuu
3a854c9f46 Closes #93 2023-05-01 23:13:21 +01:00
Carl-Robert Linnupuu
c9565a4c7d Settings UI improvements 2023-05-01 23:09:47 +01:00
Carl-Robert Linnupuu
4ceca4e45e Add tests and build workflow, bump sinceVersion 2023-05-01 14:08:49 +01:00
Mirek
a7927eea56
Add Azure OpenAI Service support (#96)
* Add Azure OpenAI Service support

* Bump version number

* Bump openai-client dependency to 1.0.12

* Improve settings panel logic, bump openai-client

---------

Co-authored-by: Shalak <github.author@shalak.eu.org>
2023-05-01 14:00:12 +01:00
Carl-Robert Linnupuu
9a4197e453 👾 2023-04-29 19:46:05 +01:00
Carl-Robert Linnupuu
9acac891c0 1.10.4 - Add support to configure organization and display name, improve displaying error msgs, fix known issues 2023-04-22 10:41:13 +01:00
Carl-Robert Linnupuu
7adb65a286 Sync model settings on tab change 2023-04-22 10:28:25 +01:00
Carl-Robert Linnupuu
1e64186450 Make display name configurable (closes #89) 2023-04-21 23:29:53 +01:00
Carl-Robert Linnupuu
087f4f4fe0 Add organization field and popup menu, fix deprecated warning msg, improve error displaying 2023-04-21 22:38:37 +01:00
Carl-Robert Linnupuu
4c029ef03b 1.10.3 - Add gpt-4-32k model, codestyle rules and cursor pointer for conversation panel, remove custom prompt textarea 2023-04-19 23:39:54 +01:00
Carl-Robert Linnupuu
0f11373d1d 1.0.2 - Support for seamless conversations, use custom scrollbar design 2023-04-16 22:47:47 +01:00
Carl-Robert Linnupuu
5da38d225b Remove chat model condition when using seamless conversation (#68) 2023-04-16 22:24:40 +01:00
Carl-Robert Linnupuu
fd072fd673 Take max token value from the selected model (#68) 2023-04-16 21:55:38 +01:00
Carl-Robert Linnupuu
cc66ed9f74 Initialize EncodingManager with select model encoding, Code refactoring (#68) 2023-04-16 21:11:33 +01:00
Carl-Robert Linnupuu
f4be55b213 Support seamless chat experience - GPT-3.5 (#68) 2023-04-16 15:05:51 +01:00
Carl-Robert Linnupuu
36caef792d Use custom scrollbar style (#80) 2023-04-14 12:15:29 +01:00
Carl-Robert Linnupuu
0d9951aec1 1.10.1 - Improve code replacement, add option to delete previous messages (closes #55) 2023-04-12 22:42:18 +01:00
Carl-Robert Linnupuu
0fce4a99fc Ability to delete previous messages 2023-04-12 20:31:40 +01:00
Carl-Robert Linnupuu
c02a387c87 Improve Replace In Editor logic 2023-04-12 17:38:30 +01:00
Carl-Robert Linnupuu
e8a1ac39d9 1.10.0 - Add copy/replace code functionality, remove data usage support (closes #56) 2023-04-08 19:41:45 +01:00
Carl-Robert Linnupuu
e41f253653 Remove usage support 2023-04-08 19:21:07 +01:00
Carl-Robert Linnupuu
d88282f9f6 Merge master 2023-04-08 17:33:48 +01:00
Carl-Robert Linnupuu
7b9e216e06 Add support for copying and replacing the generated code 2023-04-08 17:19:33 +01:00
Carl-Robert Linnupuu
49604f0546 1.9.1 - Fix code from overflowing 2023-04-04 16:06:35 +01:00
Carl-Robert Linnupuu
9a6038c582 Fix code from overflowing (fixes #75) 2023-04-04 16:00:05 +01:00
Carl-Robert Linnupuu
0aada19345 🍋 2023-04-01 23:19:28 +01:00
Carl-Robert Linnupuu
fb288faea0 🦉 2023-04-01 23:08:18 +01:00
Carl-Robert Linnupuu
db0594c593 💥 1.9.0 - New Chat UI, ability to parse and render markdown, fix text input placeholder (closes #39) 2023-04-01 22:21:01 +01:00
Carl-Robert Linnupuu
7346a624bf Use proper String escaping 2023-04-01 19:33:47 +01:00
Carl-Robert Linnupuu
d3a05bf069 Handle IDE theme change 2023-04-01 17:29:25 +01:00
Carl-Robert Linnupuu
a392c8662e Index content improvements 2023-04-01 16:22:37 +01:00
Carl-Robert Linnupuu
75a21e62fd Improve svg icon rendering 2023-04-01 15:50:52 +01:00
Carl-Robert Linnupuu
4962661865 Add missing deps 2023-04-01 15:26:03 +01:00
Carl-Robert Linnupuu
496d8919a0 Merge master 2023-04-01 15:13:01 +01:00
Carl-Robert Linnupuu
0fd61a7135 Logic for parsing markup and rendering the content in CefBrowser 2023-04-01 15:02:00 +01:00
Michael Best
e3c748b0fa
Change how placeholder text is displayed and hidden (#64)
* Change how placeholder text is displayed and hidden
- based on the IntelliJ Platform UI Guidelines https://jetbrains.design/intellij/controls/input_field/#placeholder
- remove focus event and listener

* Remove color styling on input box text
2023-03-29 00:31:02 +01:00
Michael Best
87dbc42040
Update project name to CodeGPT in IntelliJ (#66) 2023-03-28 23:21:26 +01:00
Carl-Robert Linnupuu
de7793199e 🎉 1.8.0 - Add tabs for multiple concurrent conversations (closes #54) 2023-03-26 13:46:58 +01:00
Carl-Robert Linnupuu
2cd4854cb6 Chat tabs improvements (#54) 2023-03-26 13:19:23 +01:00
Carl-Robert Linnupuu
fbabf96463 Logic for closing active tabs 2023-03-24 13:46:26 +00:00
Carl-Robert Linnupuu
5a9897dbfa Merge master 2023-03-23 22:39:10 +00:00
Carl-Robert Linnupuu
b9abdbf0b0 Improve multiple concurrent conversations (#54) 2023-03-23 22:38:03 +00:00
Carl-Robert
3819ec111f
Create FUNDING.yml 2023-03-23 16:29:55 +00:00
Carl-Robert Linnupuu
3e00703412 Merge master 2023-03-23 14:10:05 +00:00
Carl-Robert Linnupuu
fab065c888 1.7.1 (closes #57) 2023-03-23 10:43:41 +00:00
Carl-Robert Linnupuu
88206648b9 Fix setting the model enum constant 2023-03-23 10:38:37 +00:00
Alex Minakov
e1b90fdc2b
Confirmation dialogs for deleting conversations (#59)
* Show a confirmation dialog when clearing the history or removing a single conversation

* Add custom icon

* Fix typos in confirmation messages

* Fix formatting
2023-03-23 10:32:19 +00:00
Carl-Robert Linnupuu
3d104c8b5a Add tabs for multiple concurrent conversations (#54) 2023-03-22 23:42:32 +00:00
Carl-Robert Linnupuu
638fb557a7 1.7.0 - (closes #51) 2023-03-22 10:42:32 +00:00
Carl-Robert Linnupuu
a22007439d Improve response regeneration (#51) 2023-03-22 10:27:02 +00:00
Carl-Robert Linnupuu
525c316739 Use string type model state 2023-03-22 00:11:31 +00:00
Carl-Robert Linnupuu
1b312da9ab Replace last message on response regeneration #51 2023-03-21 23:38:45 +00:00
Carl-Robert Linnupuu
ad3196afb1 Update openai-client 2023-03-21 00:34:15 +00:00
Carl-Robert Linnupuu
57e1095dd1 Switch to openai-client, add conversation history empty label, remove unofficial reverse proxy (closes #43) 2023-03-21 00:27:27 +00:00
Carl-Robert Linnupuu
33a5e520f2 1.6.2 - Fetch account details async, update credit info on tab change, update description 2023-03-18 17:50:33 +00:00
Carl-Robert Linnupuu
030c1308d7 Fetch account details async, update credit info on tab change 2023-03-18 16:23:54 +00:00
Carl-Robert Linnupuu
69fcc725bb 1.6.1 - Relative fonts (closes #36) 2023-03-17 15:28:51 +00:00
1149 changed files with 132436 additions and 4742 deletions

1
.gitattributes vendored Normal file
View file

@ -0,0 +1 @@
*.gif filter=lfs diff=lfs merge=lfs -text

47
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View file

@ -0,0 +1,47 @@
name: Bug report
description: Create a report to help us improve
labels: ["bug"]
body:
- type: textarea
id: issue
attributes:
label: What happened?
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output or stack trace
description: |
Please copy and paste any relevant log output.
Add the full stack trace if available.
If possible, run the failing task with `--stacktrace` flag.
*This will be automatically formatted into code, so there is no need for backticks.*
render: shell
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior
- type: input
id: version
attributes:
label: CodeGPT version
placeholder: 1.16.0
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating System
options:
- macOS
- Linux
- Windows

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1 @@
blank_issues_enabled: true

View file

@ -0,0 +1,22 @@
name: Feature request
description: Suggest an idea for this project
labels: ["enhancement"]
body:
- type: textarea
id: cause
attributes:
label: Describe the need of your request
description: A clear and concise description of what the need or problem is.
- type: textarea
id: solution
attributes:
label: Proposed solution
description: A clear and concise description of what you want to happen.
- type: textarea
id: context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.

23
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,23 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "gradle"
directory: "/buildSrc/src/main/kotlin" # /buildSrc and /codegpt-telemetry use only references
schedule:
interval: "daily"
- package-ecosystem: "gradle"
directory: "/codegpt-treesitter"
schedule:
interval: "daily"
ignore:
- dependency-name: "*"

63
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,63 @@
name: Build
on:
push:
branches: [ master ]
pull_request:
branches: [ '**' ]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Fetch Sources
uses: actions/checkout@v5
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Run Tests
run: ./gradlew check
- name: Collect Tests Result
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: tests-result
path: ${{ github.workspace }}/build/reports/tests
verify:
name: Verify Plugin
needs: [ build ]
runs-on: ubuntu-latest
if: ${{ false }} # Disable temporarily
steps:
- name: Maximize Build Space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
large-packages: false
- name: Fetch Sources
uses: actions/checkout@v5
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Run Plugin Verification tasks
run: ./gradlew runPluginVerifier
- name: Collect Plugin Verifier Result
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: pluginVerifier-result
path: ${{ github.workspace }}/build/reports/pluginVerifier

17
.gitignore vendored
View file

@ -1,14 +1,21 @@
codegpt-core/src/main/java/grammar/*
!codegpt-core/src/main/java/grammar/PythonLexerBase.java
!codegpt-core/src/main/java/grammar/PythonParserBase.java
!codegpt-core/src/main/java/grammar/PythonVersion.java
!codegpt-core/src/main/java/grammar/TypeScriptLexerBase.java
!codegpt-core/src/main/java/grammar/TypeScriptParserBase.java
.gradle
.kotlin
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
local.properties
### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
.idea/*
.intellijPlatform/*
*.iws
*.iml
*.ipr
@ -39,4 +46,4 @@ bin/
.vscode/
### Mac OS ###
.DS_Store
.DS_Store

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "llama.cpp"]
path = src/main/cpp/llama.cpp
url = https://github.com/ggerganov/llama.cpp

8
.idea/.gitignore generated vendored
View file

@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

1
.idea/.name generated
View file

@ -1 +0,0 @@
ChatGPT

17
.idea/gradle.xml generated
View file

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

View file

@ -1,8 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,java.util.concurrent.Executors,newSingleThreadExecutor,org.asynchttpclient.Dsl,asyncHttpClient,okhttp3.Call,execute" />
</inspection_tool>
</profile>
</component>

13
.idea/misc.xml generated
View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="FrameworkDetectionExcludesConfiguration">
<file type="web" url="file://$PROJECT_DIR$" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="ProjectType">
<option name="id" value="jpab" />
</component>
</project>

127
.idea/uiDesigner.xml generated
View file

@ -1,127 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
<component name="uidesigner-configuration">
<option name="INSTRUMENT_CLASSES" value="false" />
</component>
</project>

6
.idea/vcs.xml generated
View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -1,24 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run Plugin" type="GradleRunConfiguration" factoryName="Gradle">
<log_file alias="idea.log" path="$PROJECT_DIR$/build/idea-sandbox/system/log/idea.log"/>
<ExternalSystemSettings>
<option name="executionName"/>
<option name="externalProjectPath" value="$PROJECT_DIR$"/>
<option name="externalSystemIdString" value="GRADLE"/>
<option name="scriptParameters" value=""/>
<option name="taskDescriptions">
<list/>
</option>
<option name="taskNames">
<list>
<option value="runIde"/>
</list>
</option>
<option name="vmOptions" value=""/>
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<method v="2"/>
</configuration>
</component>

1446
CHANGELOG.md Normal file

File diff suppressed because it is too large Load diff

126
DESCRIPTION.md Normal file
View file

@ -0,0 +1,126 @@
<!-- Plugin description -->
ProxyAI is an AI-powered code assistant designed to help you with various programming activities.
It's a powerful alternative to Cursor, Windsurf, GitHub Copilot, AI Assistant, and other JetBrains plugins.
## Highly Configurable
Access top-tier language models (LLMs) with your own API key or use privately hosted models within your corporate network.
- **Cloud Providers & Custom Setups:** Integrate top-tier models from OpenAI, Anthropic, Azure, Mistral, or use self-hosted models for offline use.
- **Bring Your Own Key:** Connect with your preferred provider using your API key.
- **Custom Setup:** Integrate privately hosted models with OpenAI API-compatible configuration.
## Build Your Own Local AI Assistant
ProxyAI is the leading open-source extension for connecting your locally running LLM with JetBrains IDEs. Enjoy full AI assistance without sending data externally or needing an internet connection.
- **Ollama Integration:** Automatically detect and utilize Ollama-managed models.
- **GGUF Support:** Easily connect custom models.
- **LLaMA C/C++ Integration:** Run various open-source LLMs without third-party software.
## Core Features
ProxyAI offers a wide range of features to enhance your development experience:
### Chat
Get instant coding advice through a ChatGPT-like interface that accepts image input. Ask questions, share screenshots, seek explanations, or get guidance on your projects without leaving your IDE.
**Auto Apply**
Stream AI-suggested code changes directly into your editor. Preview modifications in diff view and
approve or reject them with a single click.
![Auto apply](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/auto-apply-w800.png)
**Use images**
Chat with your images. Upload manually or let ProxyAI auto-detect your screenshots.
![Use images](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/use-images-w800.png)
**Reference your files and folders**
Quickly access and reference your project files and folders for context-aware coding assistance.
![Reference files and folders](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/reference-files-w800.png)
**Reference web documentations**
Easily pull in relevant web documentation into your chat for quick reference—whether its API docs, library guides, framework manuals, or something else.
![Reference files and folders](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/reference-docs-w800.png)
**Search the web**
Connect your favourite LLM to the web. ProxyAI will search for the most relevant information to answer your questions.
![Web search](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/web-search-w800.png)
**Customize your assistant**
Choose between multiple different personas for your specific needs, whether you're looking to learn, write or proofread.
![Customize your assistant](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/persona-suggestions-w800.png)
### Code
Get helpful code completions as you type, edit your code using natural language, create clear and
concise commit messages automatically, and more. ProxyAI equips you with cutting-edge tools to
streamline your workflow.
**Next edits**
Get multi-line edits based on your recent activity as you type.
![Code assistant](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/code-assistant-w800.png)
**Autocomplete your code**
Receive single-line or whole-function autocomplete suggestions as you type.
![Autocomplete your code](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/inline-completion-w800.png)
**Edit code in natural language**
Highlight the code you want to modify, describe the desired changes, and watch ProxyAI work its magic.
![Edit code](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/edit-code-w800.png)
**Get name suggestions**
Get context-aware naming suggestions for methods, variables, and more.
![Name suggestions](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/name-suggestions-w800.png)
**Generate commit messages**
Generate concise and descriptive commit messages based on the changes made in your codebase.
![Generate commit messages](https://d90fxihmgd9lz.cloudfront.net/images/jetbrains/features/generate-commit-message-w800.png)
**Offline Development Support (llama.cpp and Ollama)**
Integrate local open-source language models into your coding environment and enjoy a full experience without sending your data anywhere or needing an internet connection.
![Offline Development Support](https://github.com/carlrobertoh/CodeGPT-docs/blob/main/images/plugin-description/old/llama-settings-resized.png?raw=true)
## Privacy
**Your data stays yours.** ProxyAI **does not** collect or store any sensitive information. With users' consent, we collect anonymous usage data to understand how users interact with the extension, including the most-used features and preferred providers.
## License
ProxyAI's code is open source under the Apache License 2.0.
## Feedback
Your input helps us grow. Reach out through:
- [Homepage](https://proxyai.ee)
- [Issue Tracker](https://github.com/carlrobertoh/ProxyAI/issues)
- [Discord](https://discord.gg/8dTGGrwcnR)
- [Email](mailto:carlrobertoh@gmail.com)
<!-- Plugin description end -->

86
GETTING_STARTED.md Normal file
View file

@ -0,0 +1,86 @@
## Getting Started
1. **Download the Plugin**
2. **Choose Your Preferred Service**:
a) **OpenAI** - Requires authentication via OpenAI API key.
b) **Azure** - Requires authentication via Active Directory or API key.
c) **Custom OpenAI-compatible service** - Choose between multiple different providers, such as Together, Anyscale,
Groq, Ollama and many more.
d) **Anthropic** - Requires authentication via API key.
e) **You.com** - A free, web-connected service with an optional upgrade to You⚡Pro for enhanced features.
f) **LLaMA C/C++ Port** - Recommended to have a decent computer to handle the computational requirements of running
inference.
> **Note**: Currently supported only on Linux and MacOS.
3. **Start Using the Features**
### Installation
The plugin is available from [JetBrains Marketplace][plugin-repo].
You can install it directly from your IDE via the `File | Settings/Preferences | Plugins` screen.
On the `Marketplace` tab simply search for `codegpt` and select the `CodeGPT` suggestion:
![marketplace][marketplace-img]
### OpenAI
After successful installation, configure your API key. Navigate to the plugin's settings via **File |
Settings/Preferences | Tools | CodeGPT**. Paste your OpenAI API key into the field and click `Apply/OK`.
### Azure OpenAI
For Azure OpenAI services, you'll need to input three additional fields:
- **Resource name**: The name of your Azure OpenAI Cognitive Services. It's the first part of the url you're provided to
use the service: "https://**my-resource-name**.openai.azure.com/". You can find it in your Azure Cognitive Services
page, under `Resource Management``Resource Management``Keys and Endpoints`.
- **Deployment ID**: The name of your Deployment. You can find it in the Azure AI Studio,
under `Management``Deployment``Deployment Name` column in the table.
- **API version**: The most recent non-preview version.
In addition to these, you need to input one of the two API Keys provided, found along with the `Resource Name`.
### You.com (Free)
**You.com** is a search engine that summarizes the best parts of the internet for **you**, with private ads and with
privacy options.
**You⚡Pro**
Use the **CodeGPT** coupon for a free month of unlimited GPT-4 usage.
Check out the full [feature list](https://about.you.com/hc/youpro/what-features-are-included-in-youpro/) for more
details.
### LLaMA C/C++ Port (Free, Local)
> **Note**: Currently supported only on Linux and MacOS.
The main goal of `llama.cpp` is to run the LLaMA model using 4-bit integer quantization on a MacBook.
#### Getting Started
1. **Select the Model**: Depending on your hardware capabilities, choose the appropriate model from the provided list.
Once selected, click on the `Download Model` link. A progress bar will appear, indicating the download process.
2. **Start the Server**: After successfully downloading the model, initiate the server by clicking on the `Start Server`
button. A status message will be displayed, indicating that the server is starting up.
3. **Apply Settings**: With the server running, you can now apply the settings to start using the features. Click on
the `Apply/OK` button to save your settings and start using the application.
<img alt="animated" style="max-width: 100%; width: 600px;" src="https://github.com/carlrobertoh/CodeGPT-docs/blob/main/images/llama-settings.png?raw=true" />
> **Note**: If you're already running a server and wish to configure the plugin against that, then simply select the
> port and click `Apply/OK`.
[marketplace-img]: https://github.com/carlrobertoh/CodeGPT-docs/blob/main/images/marketplace.png?raw=true
[plugin-repo]: https://plugins.jetbrains.com/plugin/21056-codegpt

214
LICENSE
View file

@ -1,21 +1,201 @@
MIT License
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
Copyright (c) 2023 Carl-Robert Linnupuu
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
1. Definitions.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2023 Carl-Robert Linnupuu
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

157
README.md
View file

@ -2,18 +2,21 @@
<br />
<div align="center">
<a href="https://github.com/carlrobertoh/CodeGPT">
<img alt="plugin-icon" src="docs/assets/icon.png">
<a href="https://github.com/carlrobertoh/ProxyAI">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="/src/main/resources/icons/proxyRounded_dark.svg">
<img alt="ProxyAI Logo" src="/src/main/resources/icons/proxyRounded.svg">
</picture>
</a>
<h1 style="margin: 0;" align="center">CodeGPT</h1>
<p>
A JetBrains extension that allows you to use ChatGPT inside your favourite IDE
<h1 style="margin: 0;" align="center">ProxyAI</h1>
<p style="width: 640px">
The leading open-source AI copilot for <a target="_blank" href="https://plugins.jetbrains.com/plugin/21056-proxy-ai">JetBrains</a>. Connect to any model in any environment, and customize your coding experience in any way you like.
</p>
</div>
[![Contributions welcome][contributions-welcome-svg]][contributions-welcome]
[![Downloads][downloads-shield]][plugin-repo]
[![Rating][Rating-shield]][plugin-repo]
[![Rating][rating-shield]][plugin-repo]
[![Discord][discord-shield]][invite-link]
[![Version][version-shield]][plugin-repo]
<!-- TABLE OF CONTENTS -->
@ -21,132 +24,110 @@
<summary>Table of Contents</summary>
<ol>
<li><a href="#about-the-project">About The Project</a></li>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#api-key-configuration">API Key Configuration</a></li>
</ul>
</li>
<li><a href="#features">Features</a></li>
<li><a href="#roadmap">Roadmap</a></li>
<li><a href="#contributing">Contributing</a></li>
<li><a href="#core-features">Core Features</a></li>
<li><a href="#running-locally">Running Locally</a></li>
<li><a href="#privacy">Privacy</a></li>
<li><a href="#feedback">Feedback</a></li>
<li><a href="#license">License</a></li>
</ol>
</details>
![Plugin screenshot](https://tryproxy.io/images/main.png)
## About The Project
This is an extension for JetBrains IDEs that integrates ChatGPT into your coding environment.
By leveraging the power of GPT-3, this makes it an invaluable tool for developers looking to streamline their workflow and gain a deeper understanding of the code they're working on.
ProxyAI is an AI-powered code assistant designed to help you with various programming activities. It is a great alternative to GitHub Copilot, AI Assistant, Codiumate, or any other extension on the JetBrains marketplace.
## Getting Started
We equip you with the latest models, advanced tools, and on-premise solutions that are designed to significantly enhance your developer experience.
To get started, follow these simple steps:
Access top-tier language models from OpenAI, Anthropic, Azure, Mistral, and others, or opt for a self-hosted model for a full offline experience.
### Prerequisites
## Core Features
In order to use the extension, you need to have a JetBrains IDE installed and the API key configured.
You can find the API key in your [User settings][api-key-url].
ProxyAI offers a wide range of features to enhance your development experience:
### Installation
### Chat
The plugin is available from [JetBrains Marketplace][plugin-repo].
You can install it directly from your IDE via the `File | Settings/Preferences | Plugins` screen.
On the `Marketplace` tab simply search for `codegpt` and select the `CodeGPT` suggestion:
- **Auto Apply:** Stream AI-suggested code changes directly into your editor. Preview modifications in diff view and approve or reject them with a single click.
![marketplace][marketplace-img]
- **Use images:** Chat with your images. Upload manually or let ProxyAI auto-detect your screenshots.
### API Key Configuration
- **Reference your files and folders:** Quickly access and reference your project files and folders for context-aware coding assistance.
After the plugin has been successfully installed, the API key needs to be configured.
- **Reference web docs:** Quickly reference web docs in your chat session, such as API guides, library manuals, and more.
You can configure the key by going to the plugin's settings via the `File | Settings/Preferences | Tools | CodeGPT`.
On the settings panel simply click on the `API key` field, paste the key obtained from the OpenAI website and click `Apply/OK`:
- **Reference git history:** Quickly reference commit logs and changes in your chat session
![plugin-settings][plugin-settings]
- **Search the web:** Connect your favourite LLM to the web. ProxyAI will search for the most relevant information to answer your questions.
## Features
- **Customize your assistant:** Choose between multiple different personas for your specific needs, whether you're looking to learn, write or proofread.
The plugin provides several key features, such as:
### Code
### Ask ChatGPT
Ask anything you'd like.
- **Next edits:** Get multi-line edits based on your recent activity as you type.
<p align="center">
<img src="docs/assets/gif/ask-anything.gif" alt="animated" />
</p>
- **Autocomplete your code:** Receive single-line or whole-function autocomplete suggestions as you type.
### Conversation History
- **Edit code in natural language:** Highlight the code you want to modify, describe the desired changes, and watch ProxyAI work its magic.
View conversation history and restore previous sessions, making it easy to pick up where you left off.
- **Get name suggestions:** Get context-aware naming suggestions for methods, variables, and more.
<p align="center">
<img src="docs/assets/gif/conversation-history.gif" />
</p>
- **Generate commit messages:** Generate concise and descriptive commit messages based on the changes made in your codebase.
### Custom Prompt
For a full list of features and detailed descriptions, visit our [official documentation](https://docs.tryproxy.io/features).
Create a custom prompt for your selected code. The previous prompt will be remembered for subsequent questions.
## Running locally
<p align="center">
<img src="docs/assets/gif/custom-prompt.gif" />
</p>
**Linux or macOS**
```shell
git clone https://github.com/carlrobertoh/ProxyAI.git
cd ProxyAI
git submodule update
./gradlew runIde
```
### Stop/Regenerate Response
**Windows ARM64**
```shell
./gradlew runIde -Penv=win-arm64
```
Stop the response generation or re-generate a new response from the existing query.
**Tailing logs**
```shell
tail -f build/idea-sandbox/IU-2026.1/log/idea.log
```
<p align="center">
<img src="docs/assets/gif/stop-reload.gif" />
</p>
## Privacy
## Roadmap
**Your data stays yours.** ProxyAI **does not** collect or store any kind of sensitive information.
- [x] Add proxy support
- [ ] Add conversation history
- [x] Ability to start/restore sessions
- [ ] Ability to export conversations in Markdown/JSON format
- [ ] Add codex and user's fine-tuned models
- [ ] Add support for overriding prompts and request params
- [ ] Add support for custom fonts, colors and sizes
- [ ] Add support for model fine-tuning
However, with users' consent, we do collect anonymous usage data, which we use to understand how users interact with the extension, including the most-used features and preferred providers.
See the [open issues][open-issues] for a full list of proposed features (and known issues).
## Feedback
## Contributing
Your input helps us grow. Reach out through:
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
- [Issue Tracker](https://github.com/carlrobertoh/ProxyAI/issues)
- [Discord](https://discord.gg/8dTGGrwcnR)
- [Email](mailto:carlrobertoh@gmail.com)
## License
MIT © [Carl-Robert Linnupuu][portfolio]
Apache 2.0 © [Carl-Robert Linnupuu][portfolio]
If you found this project interesting, kindly rate it on the marketplace and don't forget to give it a star. Thanks again!
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[downloads-shield]: https://img.shields.io/jetbrains/plugin/d/21056-codegpt
[version-shield]: https://img.shields.io/jetbrains/plugin/v/21056-codegpt?label=version
[rating-shield]: https://img.shields.io/jetbrains/plugin/r/rating/21056-codegpt
[contributions-welcome-svg]: http://img.shields.io/badge/contributions-welcome-brightgreen
[contributions-welcome]: https://github.com/JetBrains/ideavim/blob/master/CONTRIBUTING.md
[marketplace-img]: docs/assets/marketplace.png
[plugin-repo]: https://plugins.jetbrains.com/plugin/21056-codegpt
[plugin-settings]: docs/assets/plugin-settings.png
[open-issues]: https://github.com/carlrobertoh/CodeGPT/issues
[downloads-shield]: https://img.shields.io/jetbrains/plugin/d/21056-proxy-ai
[discord-shield]: https://img.shields.io/discord/1118629761049182238?style=flat&logo=discord&label=Discord
[version-shield]: https://img.shields.io/jetbrains/plugin/v/21056-proxy-ai?label=version
[rating-shield]: https://img.shields.io/jetbrains/plugin/r/rating/21056-proxy-ai
[marketplace-img]: https://github.com/carlrobertoh/CodeGPT-docs/blob/main/images/marketplace.png?raw=true
[plugin-repo]: https://plugins.jetbrains.com/plugin/21056-proxy-ai
[invite-link]: https://discord.gg/8dTGGrwcnR
[open-issues]: https://github.com/carlrobertoh/ProxyAI/issues
[api-key-url]: https://platform.openai.com/account/api-keys
[portfolio]: https://carlrobert.ee

View file

@ -1,47 +1,251 @@
plugins {
id("java")
id("org.jetbrains.intellij") version "1.13.1"
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.jetbrains.changelog.Changelog
import org.jetbrains.changelog.markdownToHTML
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
import org.jetbrains.intellij.platform.gradle.tasks.RunIdeTask
import java.io.FileInputStream
import java.util.*
val localPropertiesFile = file("local.properties")
val env = environment("env").getOrNull()
fun loadProperties(filename: String): Properties = Properties().apply {
load(FileInputStream(filename))
}
group = "ee.carlrobert"
version = "1.6.0"
val localProperties: Properties? = if (localPropertiesFile.exists()) {
loadProperties("local.properties")
} else {
null
}
val customIdePath: String? = localProperties?.getProperty("customIdePath")
fun properties(key: String): Provider<String> {
if ("win-arm64" == env) {
val property = loadProperties("gradle-win-arm64.properties").getProperty(key)
?: return providers.gradleProperty(key)
return providers.provider { property }
}
return providers.gradleProperty(key)
}
fun environment(key: String) = providers.environmentVariable(key)
plugins {
id("proxyai.java-conventions")
id("org.jetbrains.intellij.platform")
alias(libs.plugins.changelog)
alias(libs.plugins.protobuf)
alias(libs.plugins.kotlin.serialization)
}
group = properties("pluginGroup").get()
version = properties("pluginVersion").get() + "-" + properties("pluginSinceBuild").get()
repositories {
mavenCentral()
mavenCentral()
gradlePluginPortal()
intellijPlatform {
defaultRepositories()
}
}
intellij {
version.set("2021.1")
type.set("IC")
plugins.set(listOf())
changelog {
groups.empty()
repositoryUrl.set(properties("pluginRepositoryUrl"))
}
dependencies {
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.14.2")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2")
implementation("com.fifesoft:rsyntaxtextarea:3.3.2")
implementation("com.squareup.okhttp3:okhttp:4.10.0")
implementation("com.squareup.okhttp3:okhttp-sse:4.10.0")
intellijPlatform {
intellijIdea(properties("platformVersion"))
bundledPlugin("com.intellij.java")
bundledPlugin("org.jetbrains.kotlin")
bundledPlugin("Git4Idea")
testFramework(TestFrameworkType.Platform)
testFramework(TestFrameworkType.JUnit5)
}
implementation(project(":proxyai-telemetry"))
implementation(project(":proxyai-treesitter"))
implementation(platform(libs.slf4j.bom))
implementation(platform(libs.jackson.bom))
implementation(platform(libs.mcp.sdk.bom))
implementation(libs.jackson.datatype.jdk8)
implementation(libs.jackson.datatype.jsr310)
implementation(libs.jackson.module.kotlin)
implementation(libs.kotlin.stdlib)
implementation(libs.acp.sdk) {
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-core")
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-core-jvm")
}
implementation(libs.flexmark.all) {
// vulnerable transitive dependency
exclude(group = "org.jsoup", module = "jsoup")
}
implementation(libs.koog.agents) {
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-common")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk7")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-reflect")
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-core")
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-jdk8")
}
implementation(libs.koog.serialization.jackson)
implementation(libs.jsoup)
implementation(libs.commons.text)
implementation(libs.jtokkit)
implementation(libs.grpc.protobuf)
implementation(libs.grpc.stub)
implementation(libs.grpc.netty.shaded)
implementation(libs.protobuf.runtime)
implementation(libs.mcp.sdk)
testImplementation(libs.junit4)
testImplementation(kotlin("test"))
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
tasks.register<Exec>("updateSubmodules") {
workingDir(rootDir)
commandLine("git", "submodule", "update", "--init", "--recursive")
}
intellijPlatform {
pluginConfiguration {
name = properties("pluginName")
version = properties("pluginVersion").get() + "-" + properties("pluginSinceBuild").get()
description =
providers.fileContents(layout.projectDirectory.file("DESCRIPTION.md")).asText.map {
val start = "<!-- Plugin description -->"
val end = "<!-- Plugin description end -->"
with(it.lines()) {
if (!containsAll(listOf(start, end))) {
throw GradleException("Plugin description section not found in DESCRIPTION.md:\n$start ... $end")
}
subList(indexOf(start) + 1, indexOf(end)).joinToString("\n")
.let(::markdownToHTML)
}
}
val changelog = project.changelog // local variable for configuration cache compatibility
// Get the latest available change notes from the changelog file
changeNotes = properties("pluginVersion").map { pluginVersion ->
with(changelog) {
renderItem(
(getOrNull(pluginVersion) ?: getUnreleased())
.withHeader(false)
.withEmptySections(false),
Changelog.OutputType.HTML,
)
}
}
ideaVersion {
sinceBuild = properties("pluginSinceBuild")
untilBuild = properties("pluginUntilBuild")
}
}
pluginVerification {
ides {
recommended()
}
}
signing {
certificateChain = System.getenv("CERTIFICATE_CHAIN")
privateKey = System.getenv("PRIVATE_KEY")
password = System.getenv("PRIVATE_KEY_PASSWORD")
}
publishing {
token = System.getenv("PUBLISH_TOKEN")
channels = listOf("stable")
}
}
/**
- * Task to run a custom IntelliJ IDEA sandbox.
- *
- * This task launches a custom IntelliJ IDEA installation using the path specified in the
- * 'customIdePath' property from local.properties.
- *
- * IMPORTANT:
- * - On macOS, the path must include the 'Contents' directory (e.g., /Applications/IntelliJ IDEA.app/Contents).
- * - For Windows or Linux, specify the appropriate path to the IntelliJ IDEA installation.
- *
- * Usage:
- * ./gradlew runCustomIde
- */
if (customIdePath != null) {
tasks.register<RunIdeTask>("runCustomIde") {
group = "intellij"
description = "Start custom idea sandbox"
sandboxDirectory = file(customIdePath)
environment("ENVIRONMENT", "LOCAL")
}
}
tasks {
patchPluginXml {
sinceBuild.set("211")
untilBuild.set("231.*")
}
wrapper {
gradleVersion = properties("gradleVersion").get()
}
signPlugin {
certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
privateKey.set(System.getenv("PRIVATE_KEY"))
password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
}
prepareSandbox {
dependsOn("updateSubmodules")
from(layout.projectDirectory.dir("src/main/cpp/llama.cpp")) {
into("ProxyAI/llama.cpp")
}
}
publishPlugin {
token.set(System.getenv("PUBLISH_TOKEN"))
}
runIde {
environment("ENVIRONMENT", "LOCAL")
}
buildPlugin {
dependsOn("prepareSandbox")
}
publishPlugin {
dependsOn("patchChangelog")
}
test {
exclude("**/testsupport/*")
testLogging {
events("started", "passed", "skipped", "failed")
exceptionFormat = TestExceptionFormat.FULL
showStandardStreams = true
}
}
}
protobuf {
protoc {
artifact = libs.protobuf.protoc.get().toString()
}
plugins {
create("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:${libs.versions.grpc.get()}"
}
}
generateProtoTasks {
all()
.forEach {
it.plugins {
create("grpc")
}
}
}
}

13
buildSrc/build.gradle.kts Normal file
View file

@ -0,0 +1,13 @@
plugins {
`kotlin-dsl`
}
repositories {
mavenCentral()
gradlePluginPortal()
}
dependencies {
implementation(libs.gradle.intellij.plugin)
implementation(libs.kotlin.gradle.plugin)
}

View file

@ -0,0 +1,7 @@
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml")) // Allow references
}
}
}

View file

@ -0,0 +1,72 @@
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val libs = versionCatalogs.named("libs")
fun lib(reference: String) = libs.findLibrary(reference).get()
fun properties(key: String) = project.findProperty(key).toString()
plugins {
id("java")
id("idea")
id("org.jetbrains.intellij.platform.module")
id("org.jetbrains.kotlin.jvm")
}
version = properties("pluginVersion")
repositories {
mavenCentral()
intellijPlatform {
defaultRepositories()
}
}
dependencies {
if (project.name != rootProject.name) {
intellijPlatform {
val type = providers.gradleProperty("platformType").get()
val version = providers.gradleProperty("platformVersion")
if (type == "IC") {
intellijIdea(version)
} else {
create(type, version)
}
testFramework(TestFrameworkType.Platform)
}
}
implementation(lib("kotlinx.serialization.json"))
testImplementation("junit:junit:4.13.2")
testImplementation(platform(lib("junit.bom")))
testImplementation(lib("assertj.core"))
testImplementation("org.junit.jupiter:junit-jupiter-params")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine")
}
tasks {
properties("javaVersion").let {
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(it.toInt()))
}
}
extensions.configure<KotlinJvmProjectExtension>("kotlin") {
jvmToolchain(it.toInt())
}
withType<JavaCompile> {
sourceCompatibility = it
targetCompatibility = it
}
withType<KotlinCompile> {
compilerOptions.jvmTarget.set(JvmTarget.fromTarget(it))
compilerOptions.freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
}
}
}

598
codestyle.xml Normal file
View file

@ -0,0 +1,598 @@
<?xml version="1.0" encoding="UTF-8"?>
<code_scheme name="GoogleStyle">
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
<option name="USE_TAB_CHARACTER" value="false" />
<option name="SMART_TABS" value="false" />
<option name="LABEL_INDENT_SIZE" value="0" />
<option name="LABEL_INDENT_ABSOLUTE" value="false" />
<option name="USE_RELATIVE_INDENTS" value="false" />
</value>
</option>
<option name="INSERT_INNER_CLASS_IMPORTS" value="true" />
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
<value />
</option>
<option name="IMPORT_LAYOUT_TABLE">
<value>
<package name="" withSubpackages="true" static="true" />
<emptyLine />
<package name="" withSubpackages="true" static="false" />
</value>
</option>
<option name="RIGHT_MARGIN" value="100" />
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
<option name="JD_P_AT_EMPTY_LINES" value="false" />
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="0" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="0" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="THROWS_KEYWORD_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="WRAP_COMMENTS" value="true" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
<AndroidXmlCodeStyleSettings>
<option name="USE_CUSTOM_SETTINGS" value="true" />
<option name="LAYOUT_SETTINGS">
<value>
<option name="INSERT_BLANK_LINE_BEFORE_TAG" value="false" />
</value>
</option>
</AndroidXmlCodeStyleSettings>
<JSCodeStyleSettings>
<option name="INDENT_CHAINED_CALLS" value="false" />
</JSCodeStyleSettings>
<Python>
<option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true" />
</Python>
<TypeScriptCodeStyleSettings>
<option name="INDENT_CHAINED_CALLS" value="false" />
</TypeScriptCodeStyleSettings>
<XML>
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<codeStyleSettings language="CSS">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="ECMA Script Level 4">
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
</codeStyleSettings>
<codeStyleSettings language="HTML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_RESOURCES" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="EXTENDS_LIST_WRAP" value="1" />
<option name="THROWS_KEYWORD_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="WRAP_COMMENTS" value="true" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JSON">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="RIGHT_MARGIN" value="80" />
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="CALL_PARAMETERS_WRAP" value="1" />
<option name="METHOD_PARAMETERS_WRAP" value="1" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="TERNARY_OPERATION_WRAP" value="1" />
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
<option name="IF_BRACE_FORCE" value="3" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="PROTO">
<option name="RIGHT_MARGIN" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="protobuf">
<option name="RIGHT_MARGIN" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="Python">
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="RIGHT_MARGIN" value="80" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="SASS">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="SCSS">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:.*Style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_width</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_height</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_weight</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_margin</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginTop</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginBottom</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginStart</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginEnd</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginLeft</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_marginRight</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:padding</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingTop</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingBottom</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingStart</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingEnd</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingLeft</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:paddingRight</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res-auto</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/tools</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<Objective-C>
<option name="INDENT_NAMESPACE_MEMBERS" value="0" />
<option name="INDENT_C_STRUCT_MEMBERS" value="2" />
<option name="INDENT_CLASS_MEMBERS" value="2" />
<option name="INDENT_VISIBILITY_KEYWORDS" value="1" />
<option name="INDENT_INSIDE_CODE_BLOCK" value="2" />
<option name="KEEP_STRUCTURES_IN_ONE_LINE" value="true" />
<option name="FUNCTION_PARAMETERS_WRAP" value="5" />
<option name="FUNCTION_CALL_ARGUMENTS_WRAP" value="5" />
<option name="TEMPLATE_CALL_ARGUMENTS_WRAP" value="5" />
<option name="TEMPLATE_CALL_ARGUMENTS_ALIGN_MULTILINE" value="true" />
<option name="ALIGN_INIT_LIST_IN_COLUMNS" value="false" />
<option name="SPACE_BEFORE_SUPERCLASS_COLON" value="false" />
</Objective-C>
<Objective-C-extensions>
<option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
<option name="RELEASE_STYLE" value="IVAR" />
<option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE" />
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cc" header="h" />
<pair source="c" header="h" />
</extensions>
</Objective-C-extensions>
<codeStyleSettings language="ObjectiveC">
<option name="RIGHT_MARGIN" value="80" />
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
<option name="BLANK_LINES_BEFORE_IMPORTS" value="0" />
<option name="BLANK_LINES_AFTER_IMPORTS" value="0" />
<option name="BLANK_LINES_AROUND_CLASS" value="0" />
<option name="BLANK_LINES_AROUND_METHOD" value="0" />
<option name="BLANK_LINES_AROUND_METHOD_IN_INTERFACE" value="0" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="false" />
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
<option name="FOR_STATEMENT_WRAP" value="1" />
<option name="ASSIGNMENT_WRAP" value="1" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
</code_scheme>

View file

@ -0,0 +1,366 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<!--
Checkstyle configuration that checks the Google coding conventions from Google Java Style
that can be found at https://google.github.io/styleguide/javaguide.html
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.org (or in your downloaded distribution).
To completely disable a check, just comment it out or delete it from the file.
To suppress certain violations please review suppression filters.
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
-->
<module name="Checker">
<module name="SuppressWarningsFilter"/>
<property name="charset" value="UTF-8"/>
<property name="severity" value="error"/>
<property name="fileExtensions" value="java, properties, xml"/>
<!-- Excludes all 'module-info.java' files -->
<!-- See https://checkstyle.org/filefilters/index.html -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
<!-- https://checkstyle.org/filters/suppressionfilter.html -->
<module name="SuppressionFilter">
<property name="file" value="${config_loc}/suppressions.xml"/>
</module>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.org/checks/whitespace/index.html -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<module name="LineLength">
<property name="fileExtensions" value="java"/>
<property name="max" value="100"/>
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
</module>
<module name="TreeWalker">
<module name="OuterTypeFilename"/>
<module name="IllegalTokenText">
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
<property name="format"
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
<property name="message"
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
</module>
<module name="AvoidEscapedUnicodeCharacters">
<property name="allowEscapesForControlCharacters" value="true"/>
<property name="allowByTailComment" value="true"/>
<property name="allowNonPrintableEscapes" value="true"/>
</module>
<module name="AvoidStarImport"/>
<module name="OneTopLevelClass"/>
<module name="NoLineWrap">
<property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT"/>
</module>
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE"/>
</module>
<module name="NeedBraces">
<property name="tokens"
value="LITERAL_DO, LITERAL_ELSE, LITERAL_FOR, LITERAL_IF, LITERAL_WHILE"/>
</module>
<module name="LeftCurly">
<property name="tokens"
value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
INTERFACE_DEF, LAMBDA, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT,
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="RightCurly">
<property name="id" value="RightCurlySame"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
LITERAL_DO"/>
</module>
<module name="RightCurly">
<property name="id" value="RightCurlyAlone"/>
<property name="option" value="alone"/>
<property name="tokens"
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
COMPACT_CTOR_DEF"/>
</module>
<module name="SuppressionXpathSingleFilter">
<!-- suppresion is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
<property name="id" value="RightCurlyAlone"/>
<property name="query" value="//RCURLY[parent::SLIST[count(./*)=1]
or preceding-sibling::*[last()][self::LCURLY]]"/>
</module>
<module name="WhitespaceAfter">
<property name="tokens"
value="COMMA, SEMI, TYPECAST, LITERAL_IF, LITERAL_ELSE, LITERAL_RETURN,
LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, LITERAL_FINALLY, DO_WHILE, ELLIPSIS,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_CATCH, LAMBDA,
LITERAL_YIELD, LITERAL_CASE"/>
</module>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyLambdas" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<property name="ignoreEnhancedForColon" value="false"/>
<property name="tokens"
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED,
LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND"/>
<message key="ws.notFollowed"
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks
may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
<message key="ws.notPreceded"
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
</module>
<module name="OneStatementPerLine"/>
<module name="MultipleVariableDeclarations"/>
<module name="ArrayTypeStyle"/>
<module name="MissingSwitchDefault"/>
<module name="FallThrough"/>
<module name="UpperEll"/>
<module name="ModifierOrder"/>
<module name="EmptyLineSeparator">
<property name="tokens"
value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF,
COMPACT_CTOR_DEF"/>
<property name="allowNoEmptyLineBetweenFields" value="true"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapDot"/>
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapComma"/>
<property name="tokens" value="COMMA"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/259 -->
<property name="id" value="SeparatorWrapEllipsis"/>
<property name="tokens" value="ELLIPSIS"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/258 -->
<property name="id" value="SeparatorWrapArrayDeclarator"/>
<property name="tokens" value="ARRAY_DECLARATOR"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapMethodRef"/>
<property name="tokens" value="METHOD_REF"/>
<property name="option" value="nl"/>
</module>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
<message key="name.invalidPattern"
value="Package name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="TypeName">
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
ANNOTATION_DEF, RECORD_DEF"/>
<message key="name.invalidPattern"
value="Type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MemberName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern"
value="Member name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LambdaParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="CatchParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LocalVariableName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="PatternVariableName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Pattern variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="RecordComponentName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Record component name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="RecordTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Record type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MethodTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Method type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="InterfaceTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="NoFinalizer"/>
<module name="GenericWhitespace">
<message key="ws.followed"
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
<message key="ws.preceded"
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
<message key="ws.illegalFollow"
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
<message key="ws.notPreceded"
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
</module>
<module name="Indentation">
<property name="basicOffset" value="2"/>
<property name="braceAdjustment" value="2"/>
<property name="caseIndent" value="2"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="2"/>
</module>
<module name="AbbreviationAsWordInName">
<property name="ignoreFinal" value="false"/>
<!--<property name="allowedAbbreviationLength" value="0"/>-->
<property name="allowedAbbreviationLength" value="3"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, ANNOTATION_DEF, ANNOTATION_FIELD_DEF,
PARAMETER_DEF, VARIABLE_DEF, METHOD_DEF, PATTERN_VARIABLE_DEF, RECORD_DEF,
RECORD_COMPONENT_DEF"/>
</module>
<module name="NoWhitespaceBeforeCaseDefaultColon"/>
<module name="OverloadMethodsDeclarationOrder"/>
<module name="VariableDeclarationUsageDistance"/>
<module name="CustomImportOrder">
<property name="sortImportsInGroupAlphabetically" value="true"/>
<property name="separateLineBetweenGroups" value="true"/>
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
<property name="tokens" value="IMPORT, STATIC_IMPORT, PACKAGE_DEF"/>
</module>
<module name="MethodParamPad">
<property name="tokens"
value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF,
SUPER_CTOR_CALL, ENUM_CONSTANT_DEF, RECORD_DEF"/>
</module>
<module name="NoWhitespaceBefore">
<property name="tokens"
value="COMMA, SEMI, POST_INC, POST_DEC, DOT,
LABELED_STAT, METHOD_REF"/>
<property name="allowLineBreaks" value="true"/>
</module>
<module name="ParenPad">
<property name="tokens"
value="ANNOTATION, ANNOTATION_FIELD_DEF, CTOR_CALL, CTOR_DEF, DOT, ENUM_CONSTANT_DEF,
EXPR, LITERAL_CATCH, LITERAL_DO, LITERAL_FOR, LITERAL_IF, LITERAL_NEW,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_WHILE, METHOD_CALL,
METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA,
RECORD_DEF"/>
</module>
<module name="OperatorWrap">
<property name="option" value="NL"/>
<property name="tokens"
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF,
TYPE_EXTENSION_AND "/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationMostCases"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF,
RECORD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationVariables"/>
<property name="tokens" value="VARIABLE_DEF"/>
<property name="allowSamelineMultipleAnnotations" value="true"/>
</module>
<module name="NonEmptyAtclauseDescription"/>
<module name="InvalidJavadocPosition"/>
<module name="SummaryJavadoc">
<property name="forbiddenSummaryFragments"
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
</module>
<module name="JavadocParagraph"/>
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
<module name="AtclauseOrder">
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
<property name="target"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
</module>
<module name="JavadocMethod">
<property name="accessModifiers" value="public"/>
<property name="allowMissingParamTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/>
<property name="allowedAnnotations" value="Override, Test"/>
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="MethodName">
<property name="format" value="^[a-z][a-z0-9]\w*$"/>
<message key="name.invalidPattern"
value="Method name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="SingleLineJavadoc"/>
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected"/>
</module>
<module name="CommentsIndentation">
<property name="tokens" value="SINGLE_LINE_COMMENT, BLOCK_COMMENT_BEGIN"/>
</module>
<!-- https://checkstyle.org/filters/suppressionxpathfilter.html -->
<module name="SuppressionXpathFilter">
<property name="file" value="${org.checkstyle.google.suppressionxpathfilter.config}"
default="checkstyle-xpath-suppressions.xml" />
<property name="optional" value="true"/>
</module>
<module name="SuppressWarningsHolder" />
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)" />
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)" />
<property name="checkFormat" value="$1" />
</module>
<module name="SuppressWithNearbyCommentFilter">
<property name="commentFormat" value="CHECKSTYLE.SUPPRESS\: ([\w\|]+)"/>
<!-- $1 refers to the first match group in the regex defined in commentFormat -->
<property name="checkFormat" value="$1"/>
<!-- The check is suppressed in the next line of code after the comment -->
<property name="influenceFormat" value="1"/>
</module>
</module>
</module>

View file

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<suppressions>
<suppress
files="[\\/]src[\\/]main[\\/]java[\\/]ee[\\/]carlrobert[\\/]codegpt[\\/]telemetry"
checks="."/>
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]grammar" checks="."/>
<suppress
files="[\\/]build[\\/]generated[\\/]source[\\/]proto[\\/]main"
checks="."/>
</suppressions>

4
docs/.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
node_modules
.next/
.idea/
.DS_Store

21
docs/LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Carl-Robert Linnupuu
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 679 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

5
docs/next-env.d.ts vendored Normal file
View file

@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

10
docs/next.config.js Normal file
View file

@ -0,0 +1,10 @@
const withNextra = require('nextra')({
theme: 'nextra-theme-docs',
themeConfig: './theme.config.tsx',
})
module.exports = withNextra({
images: {
domains: ['www.tryproxy.io'],
},
})

32
docs/package.json Normal file
View file

@ -0,0 +1,32 @@
{
"name": "proxyai-docs",
"version": "0.0.1",
"description": "ProxyAI Documentation",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
},
"repository": {
"type": "git",
"url": "git+hhttps://github.com/carlrobertoh/ProxyAI.git"
},
"author": "Carl-Robert Linnupuu <carlrobertoh@gmail.com>",
"license": "MIT",
"bugs": {
"url": "https://github.com/carlrobertoh/ProxyAI/issues"
},
"homepage": "https://github.com/carlrobertoh/ProxyAI/issues#readme",
"dependencies": {
"@vercel/analytics": "^1.5.0",
"next": "^14.2.3",
"nextra": "^2.13.4",
"nextra-theme-docs": "^2.13.4",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/node": "18.11.10",
"typescript": "^4.9.3"
}
}

11
docs/pages/_app.tsx Normal file
View file

@ -0,0 +1,11 @@
import type { AppProps } from 'next/app'
import { Analytics } from '@vercel/analytics/react'
export default function App({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
<Analytics />
</>
)
}

23
docs/pages/_meta.json Normal file
View file

@ -0,0 +1,23 @@
{
"index": "Introduction",
"getting-started": "Getting Started",
"agent": "Agent",
"features": "Features",
"context": "Context",
"providers": "Providers",
"configuration": "Configuration",
"enterprise": "Enterprise",
"privacy": "Privacy & Security",
"tutorials": "Tutorials",
"about": {
"title": "About",
"type": "page",
"href": "https://tryproxy.io"
},
"contact": {
"title": "Contact ↗",
"type": "page",
"href": "mailto:contact@codegpt.ee",
"newWindow": true
}
}

View file

@ -0,0 +1,8 @@
{
"index": "Overview",
"subagents": "Subagents",
"skills": "Skills",
"hooks": "Hooks",
"tools": "Tools",
"timeline": "Timeline"
}

736
docs/pages/agent/hooks.mdx Normal file
View file

@ -0,0 +1,736 @@
---
title: Hooks
description: Observe, control, and extend the agent loop with custom scripts.
---
# Hooks
Hooks are small programs that run alongside ProxyAI's agent loop. They let you plug in checks and automation at well-defined points.
A hook runs as its own process. ProxyAI sends it a JSON payload on stdin and reads JSON back from stdout (if you print any).
What hooks are good for:
- Run a formatter or linter after edits
- Record tool usage for debugging or analytics
- Scan content for secrets
- Block high-risk operations
- Inject additional context at any point of time
## Where hooks run
Hooks are grouped by when they fire:
Agent-level hooks (every tool call):
- `beforeToolUse` (runs before a tool executes)
- `afterToolUse` (runs after a tool completes)
Tool-level hooks (only for certain tools):
- Bash: `beforeShellExecution`, `afterShellExecution`
- Read: `beforeReadFile`
- Edit: `afterFileEdit`
- Task: `subagentStart`, `subagentStop`
Lifecycle:
- `stop` (runs when the agent finishes or errors)
## Quickstart
This example logs every tool call to a file. It's useful when you're debugging an agent, trying to understand why it made a decision, or just want a paper trail.
Add a hooks config to `.proxyai/settings.json`:
```json
{
"ignore": [],
"permissions": { "allow": [] },
"hooks": {
"afterToolUse": [
{
"command": ".proxyai/hooks/tool-audit.sh",
"timeout": 10
}
]
}
}
```
Create the hook script:
```bash
#!/usr/bin/env bash
set -euo pipefail
# .proxyai/hooks/tool-audit.sh
# Read the JSON payload ProxyAI sends on stdin.
payload=$(cat)
# Append one JSON object per line.
# (If you prefer pretty logs, pipe through jq in your own version.)
printf '%s\n' "$payload" >> "$PROXYAI_PROJECT_DIR/.proxyai/hooks/tool-audit.log"
```
Make it executable:
```bash
chmod +x .proxyai/hooks/tool-audit.sh
```
Once the settings file is saved, ProxyAI picks up the hook configuration automatically.
## Hook types
ProxyAI hooks are command-based.
You provide a `command` to run (typically a shell script). ProxyAI feeds the hook a JSON payload on stdin and captures JSON output on stdout (if you produce any).
```json
{
"hooks": {
"beforeShellExecution": [
{
"command": ".proxyai/hooks/approve-network.sh",
"timeout": 30,
"matcher": "curl|wget|nc"
}
]
}
}
```
## Configuration
Configure hooks in your project's `.proxyai/settings.json`. Each hook event (for example `afterFileEdit`) maps to an array of hook entries.
### Working directory
Hooks run from the project root.
- Relative paths in `command` resolve from the project root
- Child processes inherit the project root as their working directory
- `PROXYAI_PROJECT_DIR` contains the absolute project path
### Hook settings format
```json
{
"ignore": [],
"permissions": { "allow": [] },
"hooks": {
"preToolUse": [
{
"command": ".proxyai/hooks/validate-shell.sh",
"matcher": "Shell"
}
],
"subagentStart": [
{
"command": ".proxyai/hooks/validate-explore.sh",
"matcher": "explore|shell"
}
],
"beforeShellExecution": [
{
"command": ".proxyai/hooks/approve-network.sh",
"matcher": "curl|wget|nc "
}
]
}
}
```
### Hook fields
| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `command` | string | required | Executable path to a hook script (for example `.proxyai/hooks/tool-audit.sh`). |
| `timeout` | number | `30` | Optional timeout value in seconds (defaults to 30 if not set). |
| `matcher` | string | `null` | Optional matcher string (used to filter when hook runs). |
| `enabled` | boolean | `true` | Whether the hook is active. |
### Matcher behavior
If `matcher` is provided, it is evaluated against a target string that depends on the event:
- `preToolUse`, `afterToolUse`: tool name (for example `Bash`).
- `beforeShellExecution`, `afterShellExecution`: full command string.
- `beforeReadFile`, `afterFileEdit`: file path.
- `subagentStart`, `subagentStop`: subagent type.
- `stop`: status or reason.
Matcher uses regex if valid; otherwise it falls back to substring matching.
### Timeout behavior
Hooks that exceed their timeout are forcibly terminated and treated as failures. This prevents hung hook scripts from blocking the agent indefinitely. The default timeout is 30 seconds.
### Hook execution order
When multiple hooks are configured for the same event:
1. All matching hooks (based on `enabled` flag and `matcher`) execute in order
2. Each hook runs independently; failure of one doesn't stop others
3. Any hook returning a deny decision prevents the action
4. Hooks are executed sequentially, not in parallel
## Hook generation
If you prefer not to write hooks by hand, you can generate a hook from natural language in the UI.
### Steps
1. Open settings and go to Hooks.
2. Click **Generate**.
3. Describe what you want (for example: "Log every tool execution to a file for auditing").
4. Review the preview:
- Event (you can change which event triggers the hook)
- Command, matcher, and timeout
- Generated script content
5. Click **Add Hook** to save:
- Scripts are written to `.proxyai/hooks/` in your project.
- The hook entry is added to `.proxyai/settings.json`.
### Notes
- Generated scripts are marked executable on macOS/Linux. On Windows, you may need to adjust how the script is invoked.
- Generation uses the configured agent model and can take a few seconds.
## How hooks work
When a hook runs, ProxyAI launches your command and sends it a JSON payload on stdin.
Your hook can:
- Do nothing and exit (for logging-only hooks)
- Print JSON on stdout to allow/deny the action
- Print JSON on stdout to rewrite the tool input or output
### Runtime details
| Item | Description |
| --- | --- |
| Input | JSON payload on stdin. |
| Common field | `hook_event_name` is included in every payload. |
| Working directory | Project root directory (`{projectRoot}/.proxyai/`). |
| Visibility | Hook runs appear in the tool output panel (event, hook name, status, details). |
### Environment variables
Hooks receive these environment variables:
| Variable | Description | Always Present |
| --- | --- | --- |
| `PROXYAI_PROJECT_DIR` | Project root directory (absolute path) | Yes |
| `PROXYAI_HOOK_EVENT` | The hook event name (for example `beforeShellExecution`) | Yes |
### Exit codes
ProxyAI treats the hook's exit code as the hook status:
- `0`: success
- `2`: deny (include JSON with a `reason` on stdout)
- any other code: failure (hook failures do not block the tool)
### Output JSON fields (stdout)
If you print JSON, you can return any of the fields below.
- `decision`: `"allow"` or `"deny"`
- `reason`: shown when the hook denies
- `user_message`: shown in the UI tool output
- `agent_message`: shown to the agent
- `updated_input`: replaces the tool input
- `updated_output`: replaces the tool output
## Examples
### Audit every tool call
```bash
#!/usr/bin/env bash
set -euo pipefail
# Log all tool calls to a file.
payload=$(cat)
printf '%s\n' "$payload" >> .proxyai/hooks/tool-audit.log
exit 0
```
### Return a deny decision
```json
{"reason":"Blocked by policy"}
```
Exit with code `2` when emitting the JSON above.
### Block network commands
```bash
#!/usr/bin/env bash
set -euo pipefail
# Read JSON payload
payload=$(cat)
command=$(echo "$payload" | grep -o '"command":"[^"]*"' | cut -d'"' -f4)
# Block network commands that aren't explicitly whitelisted
if echo "$command" | grep -qE 'curl|wget|nc|ssh' 2>/dev/null; then
echo '{"reason":"Network commands require approval"}'
exit 2
fi
exit 0
```
Configuration:
```json
{
"hooks": {
"beforeShellExecution": [
{
"command": ".proxyai/hooks/network-deny.sh",
"matcher": "curl|wget|nc"
}
]
}
}
```
### Block Bash tool commands (generic)
Use `beforeShellExecution` to deny high-risk command patterns.
```bash
#!/usr/bin/env sh
set -eu
# Consume JSON payload from stdin.
cat >/dev/null
# Exit code 2 means "deny".
printf '{"reason":"Blocked by project policy: this command is not allowed."}\n'
exit 2
```
Configuration:
```json
{
"hooks": {
"beforeShellExecution": [
{
"command": ".proxyai/hooks/block-command.sh",
"matcher": "rm -rf|terraform apply|docker system prune"
}
]
}
}
```
### Prefer settings.json for path restrictions
If your goal is to protect files or folders, prefer `.proxyai/settings.json` `ignore` patterns over hooks. Ignore patterns are simpler and apply consistently across tools.
- Use `ignore` for path-level protection (for example `.env`, `.git/`, `node_modules/`)
- Use hooks when you need command-level policy checks
- See [Ignore Rules](/agent/security/ignore-rules) and [Permissions](/agent/security/permissions) for baseline guardrails
## Event reference
### preToolUse
Called before any tool execution. This is a generic hook that fires for all tool types.
#### Input Payload
```json
{
"tool_name": "Bash",
"tool_input": { "command": "pnpm install", "working_directory": "/project" },
"tool_use_id": "abc123",
"cwd": "/project",
"hook_event_name": "beforeToolUse"
}
```
**Input Fields:**
| Field | Type | Required | Description |
| ----- | ---- | -------- | ----------- |
| `tool_name` | string | Yes | Name of the tool being executed (e.g., `Bash`, `Read`, `Edit`) |
| `tool_input` | object | Yes | Input parameters passed to the tool (structure varies by tool type) |
| `tool_use_id` | string | Yes | Unique identifier for this tool invocation |
| `cwd` | string | Yes | Current working directory for the operation |
| `hook_event_name` | string | Yes | Always `"beforeToolUse"` for this event |
#### Output Payload (Optional)
```json
{
"decision": "allow",
"reason": "Reason if denied",
"updated_input": { "command": "npm ci" }
}
```
**Output Fields:**
| Field | Type | Description |
| ----- | ---- | ----------- |
| `decision` | string | `"deny"` to block, `"allow"` to proceed |
| `reason` | string | *(Optional)* Explanation shown to the agent/user when denied |
| `updated_input` | object | *(Optional)* Modified tool input to use instead |
### afterToolUse
Called after successful tool execution.
**Input:**
```json
{
"tool_name": "Bash",
"tool_input": { "command": "pnpm test" },
"tool_output": "All tests passed",
"tool_use_id": "abc123",
"cwd": "/project",
"hook_event_name": "afterToolUse"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `tool_name` | string | The name of the tool that was executed |
| `tool_input` | object | Input parameters passed to the tool |
| `tool_output` | string | Full output from the tool |
| `tool_use_id` | string | Unique identifier for this tool use |
| `cwd` | string | Current working directory |
| `hook_event_name` | string | The hook event name ("afterToolUse") |
**Output (optional):**
```json
{
"updated_output": { "modified": "tool output" }
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `updated_output` | object (optional) | Modified tool output to use instead |
### subagentStart
Called before spawning a subagent (Task tool). Can allow or deny subagent creation.
**Input:**
```json
{
"subagent_type": "generalPurpose",
"description": "Explore auth flow",
"prompt": "Explore the authentication flow",
"hook_event_name": "subagentStart"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `subagent_type` | string | Type of subagent: "generalPurpose", "explore", "shell", etc. |
| `description` | string | Short description of the subagent task |
| `prompt` | string | Full prompt given to the subagent |
| `hook_event_name` | string | The hook event name ("subagentStart") |
**Output (optional):**
```json
{
"decision": "allow",
"reason": "Reason if denied"
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `decision` | string | "deny" to block, "allow" to proceed |
| `reason` | string (optional) | Explanation shown if denied |
### subagentStop
Called when a subagent completes or errors.
**Input:**
```json
{
"subagent_type": "generalPurpose",
"status": "completed",
"result": "<subagent output>",
"duration": 45000,
"hook_event_name": "subagentStop"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `subagent_type` | string | Type of subagent that ran: "generalPurpose", "explore", "shell", etc. |
| `status` | string | "completed" or "error" |
| `result` | string | Output/result from the subagent |
| `duration` | number | Execution time in milliseconds |
| `hook_event_name` | string | The hook event name ("subagentStop") |
**Output (optional):**
```json
{
"followup_message": "Continue with this message"
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `followup_message` | string | Optional follow-up message to auto-submit |
### beforeShellExecution
Called immediately before a Bash command runs.
**Input:**
```json
{
"command": "pnpm lint",
"cwd": "/project",
"timeout": 30,
"hook_event_name": "beforeShellExecution"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `command` | string | The full terminal command to execute |
| `cwd` | string | Current working directory |
| `timeout` | number | Execution timeout in seconds |
| `hook_event_name` | string | The hook event name ("beforeShellExecution") |
**Output (optional):**
```json
{
"decision": "allow",
"user_message": "Message shown in client",
"agent_message": "Message sent to agent"
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `decision` | string | "deny" to block, "allow" to (default) proceed |
| `user_message` | string (optional) | Message shown to the user |
| `agent_message` | string (optional) | Message sent to the agent |
**Fail-closed behavior:** If the hook script fails (crashes, times out, or returns invalid JSON), the shell command is blocked for security.
### afterShellExecution
Called after a Bash command executes.
**Input:**
```json
{
"command": "pnpm lint",
"output": "...",
"exit_code": 0,
"hook_event_name": "afterShellExecution"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `command` | string | The full terminal command that was executed |
| `output` | string | Full output captured from the terminal |
| `exit_code` | number | Exit code from the command execution |
| `hook_event_name` | string | The hook event name ("afterShellExecution") |
**Note:** When a command fails with an exception, the payload uses `error` instead of `output`:
```json
{
"command": "pnpm lint",
"error": "Command failed",
"exit_code": "null",
"hook_event_name": "afterShellExecution"
}
```
**Output:** No output fields currently supported (observable only).
### beforeReadFile
Called before a file is read, after content is loaded but before returned to the tool. Can inspect content and deny access.
**Input:**
```json
{
"file_path": "/project/README.md",
"content": "<file contents>",
"attachments": [],
"hook_event_name": "beforeReadFile"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `file_path` | string | Absolute path to the file being read |
| `content` | string | Full contents of the file |
| `attachments` | array | Context attachments associated with the prompt |
| `hook_event_name` | string | The hook event name ("beforeReadFile") |
**Output (optional):**
```json
{
"decision": "allow",
"user_message": "Message shown when denied"
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `decision` | string | "deny" to block, "allow" to (default) proceed |
| `user_message` | string (optional) | Message shown to the user when denied |
**Fail-closed behavior:** If the hook script fails, the file read is blocked for security.
### afterFileEdit
Called after a file edit is applied. Can deny the edit even after it was applied.
**Input:**
```json
{
"file_path": "/project/README.md",
"replacements_made": 2,
"edit_locations": [{ "line": 10, "column": 4 }],
"hook_event_name": "afterFileEdit"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `file_path` | string | Absolute path to the edited file |
| `replacements_made` | number | Number of string replacements applied |
| `edit_locations` | array | Array of edit location objects with line/column info |
| `hook_event_name` | string | The hook event name ("afterFileEdit") |
**Output (optional):**
```json
{
"reason": "Denial reason"
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `reason` | string (optional) | Reason for denying the edit |
### stop
Called when the agent loop ends.
**Input:**
```json
{
"status": "completed",
"agent_id": "agent-123",
"hook_event_name": "stop"
}
```
Or when an error occurs:
```json
{
"status": "error",
"agent_id": "agent-123",
"error": "Error message",
"hook_event_name": "stop"
}
```
**Input parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `status` | string | "completed" or "error" |
| `agent_id` | string | Identifier for the agent instance |
| `error` | string (optional) | Error message when status is "error" |
| `hook_event_name` | string | The hook event name ("stop") |
**Output (optional):**
```json
{
"followup_message": "Auto-continue with this message"
}
```
**Output parameters:**
| Field | Type | Description |
| --- | --- | --- |
| `followup_message` | string | Optional follow-up message to auto-submit |
## Troubleshooting
### Hooks not executing
1. Verify the hook command path is correct relative to the project root
2. Ensure the hook file is executable (`chmod +x path/to/hook.sh`)
3. Check that the hook is in `.proxyai/settings.json` under the correct event key
4. Verify the hook returns valid JSON if it produces output
### Hook timeout issues
- Increase the `timeout` value in the hook configuration
- Profile your hook script to identify slow operations
- Consider moving expensive operations to background jobs or caching
### Access denied errors
- Verify `.proxyai/settings.json` file permissions are readable
- Ensure the hook file has execute permissions
- Check that the working directory is correct (use `PROXYAI_PROJECT_DIR` env var)
### Debug hook execution
1. Enable debug logging in ProxyAI settings
2. Check the tool output panel for hook execution details
3. The `hook_event_name` field in payloads confirms which event triggered the hook
4. Add `printf` or `echo` statements to your hook script with stderr redirect
### Exit code blocking
- Exit code 2 from command hooks blocks the action (equivalent to returning a deny decision)
- Exit code 0 allows the action to proceed
- Other exit codes are treated as failures but do not block the action (fail-open)
## See also
- [Subagents](/agent/subagents) for Task inputs and subagent setup.
- [Tools](/agent/tools) for which tools require approval.

View file

@ -0,0 +1,30 @@
---
title: Agent
description: How the ProxyAI agent works, what it can do, and how it runs tasks.
---
# Agent
The Agent is ProxyAI's autonomous mode for multi-step work. It plans and executes tasks, calls tools on your behalf, and can delegate specific work to subagents when it needs focused help.
## What it can do
- Plan and execute multi-step work with approvals for risky actions
- Support multi-turn conversations by asking clarifying questions when needed
- Read, search, edit, and run commands across your project
- Inspect prior runs, roll back changes, and continue from checkpoints with [Timeline](/agent/timeline)
- Delegate focused work to [Subagents](/agent/subagents)
- Load reusable instruction packs with [Skills](/agent/skills)
- Extend and control runs with [Hooks](/agent/hooks) (for example: block risky operations, log tool usage, build usage dashboards)
- Follow project-specific instructions from a `PROXYAI.md` file at the repo root
- Run with many different models and providers (see [Providers](/providers/overview))
- Automatically compress long-running context to stay within model limits
## Where to go next
- Learn how specialized agents work in [Subagents](/agent/subagents)
- Work with checkpoints and rollback using [Timeline](/agent/timeline)
- Define reusable instruction packs in [Skills](/agent/skills)
- Configure guardrails in [Security](/agent/security)
- Customize automation with [Hooks](/agent/hooks)
- See the available tools in [Tools](/agent/tools)

View file

@ -0,0 +1,78 @@
---
title: Skills
description: Reusable instruction packs that the agent can load on demand.
---
# Skills
Skills are reusable instruction packs stored as markdown files in your project under `.proxyai/skills`.
They help the agent follow consistent workflows without stuffing every run's prompt with long instructions.
## How Skills work
1. You create skill folders in `.proxyai/skills/<skill-folder>/`.
2. Each folder contains a `SKILL.md` file.
3. ProxyAI scans `SKILL.md` files and reads metadata from markdown frontmatter.
4. ProxyAI includes each discovered skill in the system prompt (name + title + description).
5. When needed, the agent calls `LoadSkill` with the skill name (or title).
4. ProxyAI injects the full skill content back into the conversation as a **new user message**.
5. The agent continues with that new context.
This keeps the default system prompt compact while still allowing deep, task-specific guidance when needed.
## Skill file interface (common format)
Each skill must define metadata in frontmatter:
- `name` (required): stable identifier for tool lookup.
- `description` (required): short purpose statement shown in system prompt.
- `title` (optional): display title. If omitted, ProxyAI uses the first `# Heading` in the file, then falls back to `name`.
Example `.proxyai/skills/kotlin-test-writer/SKILL.md`:
```md
---
name: kotlin-test-writer
title: Kotlin Test Writer
description: Write focused unit tests for Kotlin services and tools.
---
# Kotlin Test Writer
When writing tests:
- Prefer existing `IntegrationTest` patterns in this repo.
- Cover behavior + edge cases.
- Keep assertions explicit and deterministic.
```
## `LoadSkill` tool
Use the `LoadSkill` tool when the system prompt indicates a relevant skill.
For the exact schema and behavior, see [LoadSkill reference](/agent/tools#loadskill).
### Input
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `skill_name` | string | Yes | Exact skill name (or title) from the available list. |
### Behavior
- If found, the skill is queued as a user message.
- If not found, the tool returns an error with available discovered skills.
- The agent asks for approval before loading the skill into context.
- The tool does not directly edit files; it only injects context.
## Best practices
- Keep skill descriptions specific so the model can choose correctly.
- Keep content procedural and actionable (checklists, constraints, style rules).
- Split broad guidance into multiple focused skills rather than one giant skill.
- Put volatile facts (versions, dates) in normal conversation, not in long-lived skills.
## See also
- [LoadSkill reference](/agent/tools#loadskill) for exact input/output details.
- [Subagents](/agent/subagents) for delegated agent runs.
- [Hooks](/agent/hooks) for execution-time policy and automation.
- [Agent Skills](https://agentskills.io/) for the broader skills concept and ecosystem.

View file

@ -0,0 +1,114 @@
---
title: Subagents
description: Delegate focused tasks to specialized agents with controlled tool access.
---
# Subagents
Subagents are specialized agents launched by the main Agent through the `Task` tool. They let the main agent delegate focused work (like exploration or implementation) while keeping tool access and behavior scoped.
## Custom subagents
Custom subagents are user-defined agent profiles. You can create them either in the UI or by editing your config file.
Each custom subagent has:
- A **title** (this is the value you pass in `subagent_type`)
- An **objective/behavior** description
- An optional **runtime override**
- A **tool allowlist** that controls what it can do
### Create in the UI
1. Open settings and go to Subagents.
2. Click **Add** (or **Generate** if you want ProxyAI to draft it from a prompt).
3. Set the title, objective, runtime, and allowed tools.
4. Save.
### Create via settings.json
You can also add subagents directly in your project's `.proxyai/settings.json`.
**Subagent definition fields**
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | number | Yes | Unique numeric ID for this subagent. |
| `title` | string | Yes | Display name and the value you pass as `subagent_type`. |
| `objective` | string | Yes | Instructions that shape how the subagent behaves. |
| `tools` | string[] | Yes | Allowed tools, stored as lowercase tool IDs (for example `read`, `intellijsearch`, `edit`). |
| `provider` | string | No | Native provider override. Must be paired with `model`. |
| `model` | string | No | Native model override. Must be paired with `provider`. |
| `external_agent_id` | string | No | External ACP runtime preset ID (for example `codex`). |
If you omit `provider`, `model`, and `external_agent_id`, the subagent inherits the parent Agent runtime.
Example:
```json
{
"subagents": [
{
"id": 200,
"title": "Dependency Researcher",
"objective": "Help choose the best dependency for the user's topic (e.g., auth, logging, HTTP, testing). Compare 2-4 realistic options, call out licensing, maintenance signals, and ecosystem fit. Prefer reading existing repo usage first, then use Context7 for API details, and WebSearch only for release notes/security/official docs. Provide a short recommendation with sources.",
"provider": "OPENAI",
"model": "gpt-5-mini",
"tools": [
"read",
"intellijsearch",
"resolvelibraryid",
"getlibrarydocs",
"websearch",
"todowrite",
"exit"
]
}
]
}
```
## Generate subagents
If you don't want to hand-write subagent definitions, you can generate one from natural language in the UI.
### Steps
1. Open settings and go to Subagents.
2. Click **Generate**.
3. Describe what you want (for example: "Review Kotlin code for style and complexity").
4. Review the generated title and objective.
5. Adjust the tool allowlist if needed, then save.
### Notes
- Generation creates the title and objective text. Tool access is suggested based on your prompt, but it's still your call.
- If your prompt includes words like "edit", "implement", or "modify", ProxyAI will usually suggest write-capable tools.
## Task input reference
When the agent spawns a subagent, it calls the `Task` tool with the inputs below.
| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | Yes | Short label for the run. |
| `prompt` | string | Yes | Full instruction for the subagent. |
| `subagent_type` | string | Yes | Which subagent to run (built-in type or a custom title). |
| `model` | string | No | Optional native-model override for that subagent run. ProxyAI rejects this when the resolved runtime is external. |
| `project_path` | string | No | Optional working directory override. |
## How subagents are surfaced
Subagent tool calls are bridged back to the parent agent run so the UI can display them and approval prompts still work as expected.
The task row also shows the resolved runtime as soon as the subagent starts, for example:
- `OpenAI · GPT-5`
- `Anthropic · Claude 4.5 Sonnet`
- `Codex`
## See also
- [Tools](/agent/tools) for the tool registry and schemas.
- [Skills](/agent/skills) for on-demand reusable instructions.
- [Hooks](/agent/hooks) for `subagentStart` and `subagentStop`.

View file

@ -0,0 +1,59 @@
---
title: Agent Timeline
description: Inspect past agent runs, roll back changes, and branch into a new session from any checkpoint.
---
# Agent Timeline
Agent Timeline lets you move through a session's history as a sequence of runs and checkpoints. You can inspect what happened, copy outputs, roll back file changes, and continue from an earlier point.
## Open the timeline
1. Open an **Agent** tab that already has at least one completed run.
2. In the input toolbar, click the **Timeline** (history) icon.
3. Select a run/checkpoint from the timeline tree.
If a run is still active, stop it first. Timeline context editing is blocked while the session is running.
## How the timeline is organized
- The dialog groups history by **Run 1, Run 2, ...**.
- Each run contains checkpoints for user messages, assistant responses, reasoning messages, and tool calls.
- Thinking blocks (`<think>...</think>`) are stripped from visible assistant text.
## Right-click actions
Right-click any checkpoint row to open actions:
- **Rollback**: Rewinds file changes and syncs the current session view back to that point.
- **Continue From New Session**: Creates a new Agent tab starting from the selected checkpoint.
- **Copy Output**: Copies output for assistant/reasoning/tool-call entries.
You can also double-click a checkpoint (or press `Enter`) to continue from that point in a new session.
## Edit session context
Click **Edit** to enter context selection mode:
- Check or uncheck full runs or individual checkpoints to decide what stays in context.
- Watch the context stats label (`messages` and estimated `tokens`) update as you select.
- Click **Apply** to rewrite the current tab's session context.
- Click **New Session** to create a fresh tab from the selected context.
When you select assistant/tool checkpoints, ProxyAI keeps required linked messages (for example the matching user prompt or tool result) so the history stays coherent.
## Rollback behavior
Rollback is run-aware:
- For the current run, ProxyAI uses tracked run snapshots and shows a confirmation list of changed files.
- For older checkpoints, ProxyAI reconstructs reversible `Edit`/`Write` operations from checkpoint history and applies them in reverse order.
If a file has diverged too far from expected content, rollback can be partial and ProxyAI will show which operations failed.
## Related pages
- [Agent overview](/agent)
- [Tools reference](/agent/tools)
- [Hooks](/agent/hooks)

412
docs/pages/agent/tools.mdx Normal file
View file

@ -0,0 +1,412 @@
---
title: Tools
description: "Tool reference: inputs, outputs, and approval behavior."
---
# Tools
This is the reference for ProxyAI's built-in tools: what each tool does, what inputs it accepts, and what it returns. Tools are the contract between the model and your machine. If something feels "magical", it usually maps to one of these tools.
## Quick map
- Need to inspect a file? Use **Read**.
- Need to find a file/symbol name-first? Use **IntelliJSearch**.
- Need to change files? Use **Edit** (precise replace) or **Write** (create/overwrite).
- Need to run commands? Use **Bash**, and monitor with **BashOutput**.
- Need content from a specific URL? Use **WebFetch**.
- Need to delegate? Use **Task**.
- Need reusable workflow instructions? Use **LoadSkill**.
## Approvals
The UI asks for approval for:
- **Edit** and **Write**
- **Bash**
For path-level restrictions, see [Ignore Rules](/agent/security/ignore-rules). For tool allow rules (`Bash`, `Read`), see [Permissions](/agent/security/permissions).
## Tool reference
### Read
Reads a file from disk and returns it in numbered `cat -n` format.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `file_path` | string | Yes | Must be an absolute path. |
| `offset` | number | No | 1-indexed line offset. |
| `limit` | number | No | Number of lines to read. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `filePath` | string | Echoes the path requested. |
| `content` | string | Numbered content (lines truncated to 2000 chars each). |
| `lineCount` | number | Lines returned (not total lines). |
| `truncated` | boolean | True when the file/selection exceeds the read limit. |
| `fileType` | string \| null | IntelliJ file type name. |
| `startLine` | number \| null | First line returned (when offset is used). |
| `endLine` | number \| null | Last line returned (when limit truncates). |
### IntelliJSearch
Name-oriented search (files/classes/symbols). Use it when you don't know the exact path yet.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `pattern` | string | Yes | Search query. |
| `scope` | string | No | `project`, `module`, `directory`, `file`, `custom`. |
| `path` | string | No | Used with `directory` or `file` scope. |
| `fileType` | string | No | Filter by language/file type. |
| `context` | string | No | Search context selector. |
| `caseSensitive` | boolean | No | Defaults to false. |
| `regex` | boolean | No | Defaults to false. |
| `wholeWords` | boolean | No | Defaults to false. |
| `outputMode` | string | No | `content`, `files_with_matches`, `count`. |
| `limit` | number | No | Max results. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `pattern` | string | Echoes the query. |
| `scope` | string | Effective scope. |
| `totalMatches` | number | Number of matches included. |
| `matches` | array | Structured matches (file, line, column, text, context). |
| `output` | string | Human-readable summary. |
### Edit
Exact string replacement in a file.
**Approval required.**
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `file_path` | string | Yes | Must be an absolute path. |
| `old_string` | string | Yes | Must match exactly (including whitespace). |
| `new_string` | string | Yes | Replacement text; can be empty. |
| `short_description` | string | Yes | Shown in UI/logs. |
| `replace_all` | boolean | No | Defaults to false. |
**Output (success)**
| Field | Type | Notes |
| --- | --- | --- |
| `filePath` | string | Edited file path. |
| `replacementsMade` | number | Count of replacements. |
| `message` | string | Human-readable message. |
| `oldStringPreview` | string \| null | Preview (up to ~200 chars). |
| `newStringPreview` | string \| null | Preview (up to ~200 chars). |
| `editLocations` | array | Line/column + small context for each replacement. |
**Output (error)**
| Field | Type | Notes |
| --- | --- | --- |
| `filePath` | string | Requested file path. |
| `error` | string | Error message. |
### Write
Creates a file or overwrites an existing file.
**Approval required.**
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `file_path` | string | Yes | Absolute path to the file. |
| `content` | string | Yes | Full file contents. |
**Output (success)**
| Field | Type | Notes |
| --- | --- | --- |
| `filePath` | string | Written file path. |
| `bytesWritten` | number | UTF-8 byte count. |
| `isNewFile` | boolean | Whether the file was created. |
| `message` | string | Human-readable message. |
**Output (error)**
| Field | Type | Notes |
| --- | --- | --- |
| `filePath` | string | Requested file path. |
| `error` | string | Error message. |
### Bash
Runs a shell command.
**Approval required.**
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `command` | string | Yes | Shell command to execute. |
| `timeout` | number | No | Timeout in ms (defaults to 60000 in the tool implementation). |
| `description` | string \| null | No | Short description of what the command does. |
| `run_in_background` | boolean \| null | No | Start in background; use BashOutput to monitor. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `command` | string | Echoes the command. |
| `exitCode` | number \| null | Null when running in background or timed out. |
| `output` | string | Combined stdout/stderr and status messages. |
| `bash_id` | string \| null | Present when started in background. |
### BashOutput
Reads incremental output from a background Bash process.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `bash_id` | string | Yes | ID returned by Bash. |
| `filter` | string \| null | No | Regex filter to include matching lines only. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `bash_id` | string | Echoes the ID. |
| `stdout` | string | New stdout since last check. |
| `stderr` | string | New stderr since last check. |
| `status` | string | `running`, `completed`, `terminated`, `not_found`, `denied`. |
| `exit_code` | number \| null | Exit code when available. |
### KillShell
Stops a background Bash process.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `bash_id` | string | Yes | ID returned by Bash. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `bash_id` | string | Echoes the ID. |
| `success` | boolean | Whether the process was terminated. |
| `message` | string | Human-readable status message. |
### WebSearch
Web search tool. Use it for general web content; for library/API docs use Context7 tools.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `query` | string | Yes | Search query. |
| `allowed_domains` | string[] \| null | No | Domain allowlist. |
| `blocked_domains` | string[] \| null | No | Domain blocklist. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `query` | string | Echoes query. |
| `results` | array | `title`, `url`, `content`. |
| `sources` | string[] | Markdown links to sources. |
### WebFetch
Fetches a specific URL and converts HTML content to Markdown.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `url` | string | Yes | Full `http://` or `https://` URL. |
| `selector` | string \| null | No | Optional CSS selector to scope extraction (for example `main`, `article`). |
| `timeout_ms` | number | No | Request timeout in milliseconds (default `10000`). |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `url` | string | Source URL requested. |
| `final_url` | string \| null | Final URL after redirects. |
| `title` | string \| null | Page title, when available. |
| `markdown` | string | Converted Markdown content. |
| `content_type` | string \| null | Response content type. |
| `status_code` | number \| null | HTTP status code. |
| `used_selector` | string \| null | Echoes selector if provided. |
| `error` | string \| null | Error message on failure. |
### ResolveLibraryId
Resolves a library name into a Context7-compatible ID.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `library_name` | string | Yes | Name to search for (e.g. "nextjs", "mongodb"). |
**Output (success)**
| Field | Type | Notes |
| --- | --- | --- |
| `libraryName` | string | Echoes the search query. |
| `libraries` | array | Candidate libraries; includes `id` you pass to GetLibraryDocs. |
**Output (error)**
| Field | Type | Notes |
| --- | --- | --- |
| `error` | string | Error message. |
### GetLibraryDocs
Fetches docs from Context7 for a specific library ID.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `context7CompatibleLibraryID` | string | Yes | `/org/project[/version]`. |
| `mode` | string | No | `code` (default) or `info`. |
| `topic` | string \| null | No | Topic filter. |
| `page` | number | No | Page number (1-10). |
**Output (success)**
| Field | Type | Notes |
| --- | --- | --- |
| `libraryId` | string | Echoes the library id. |
| `documentation` | string | Plain text docs (truncated). |
| `docMode` | string | `code` or `info`. |
| `page` | number | Page number returned. |
**Output (error)**
| Field | Type | Notes |
| --- | --- | --- |
| `error` | string | Error message. |
### LoadSkill
Loads a configured skill and injects it back into the run as a new user message.
Skills are discovered from `.proxyai/skills/**/SKILL.md`.
**Approval required** (generic ask/approve flow).
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `skill_name` | string | Yes | Exact skill title from the available skills list in the system prompt. |
**Output (success)**
| Field | Type | Notes |
| --- | --- | --- |
| `title` | string | Loaded skill title. |
| `description` | string | Loaded skill description. |
| `queued` | boolean | Whether the user-message injection was queued. |
**Output (error)**
| Field | Type | Notes |
| --- | --- | --- |
| `message` | string | Error message with available skills when possible. |
### AskUserQuestion
Asks the user a structured question in the UI.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `questions` | array | Yes | Max 1-4 questions. Each question includes `header`, `question`, `options`, and `multiSelect`. |
| `answers` | object \| null | No | Prefill answers (rare). |
**Output (success)**
| Field | Type | Notes |
| --- | --- | --- |
| `answers` | object | Map of header -> selected value(s). |
**Output (error)**
| Field | Type | Notes |
| --- | --- | --- |
| `message` | string | Error message. |
### TodoWrite
Creates/updates a todo list rendered in the UI.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `title` | string | Yes | Short title (max 4 words). |
| `todos` | array | Yes | Todo items: `content`, `status`, `activeForm`. |
**Output**
Returns a formatted string summary (used to render the UI todo widget).
### Task
Launches a subagent.
**Input**
| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `description` | string | Yes | Short label. |
| `prompt` | string | Yes | Full instruction for the subagent. |
| `subagent_type` | string | Yes | Built-in type or custom subagent title. |
| `model` | string \| null | No | Optional model override. |
| `project_path` | string \| null | No | Optional working directory override. |
**Output**
| Field | Type | Notes |
| --- | --- | --- |
| `agentType` | string | The subagent type used. |
| `description` | string | Echoes description. |
| `prompt` | string | Echoes prompt. |
| `output` | string | Subagent output text. |
| `executionTime` | number | Duration in ms. |
| `totalTokens` | number | Token usage (when available). |
### Exit
Ends the current agent run.
**Input**
No input.
**Output**
No output.
## See also
- [Timeline](/agent/timeline)
- [Subagents](/agent/subagents)
- [Hooks](/agent/hooks)

View file

@ -0,0 +1,4 @@
{
"ignore-rules": "Ignore Rules",
"permissions": "Permissions"
}

View file

@ -0,0 +1,77 @@
---
title: Ignore Rules
description: Configure path-level visibility filtering in .proxyai/settings.json.
---
# Ignore Rules
Use `.proxyai/settings.json` `ignore` rules to make files and folders invisible to AI-facing features.
This is a visibility filter, not just an access denial.
## Settings shape
```json
{
"ignore": [
".env",
".env.*",
".git/",
"node_modules/",
"build/",
"dist/",
"*.pem",
"secrets/**",
"app/src/main/"
]
}
```
## What gets filtered
Ignored paths should be removed from:
- file and folder suggestions in `@` search
- attach-file and folder pickers
- MCP browse/listing responses
- agent/chat file discovery outputs
For direct tool calls, ignored paths should appear as non-existent.
## Pattern behavior
Ignore entries are path globs:
| Pattern | Meaning | Example match |
| --- | --- | --- |
| `.env` | exact file name | `.env` |
| `.env.*` | same segment wildcard | `.env.local` |
| `*.pem` | extension in one segment | `cert.pem` |
| `secrets/**` | directory subtree | `secrets/prod/key.txt` |
| `build/` | directory and children | `build/`, `build/out/a.txt` |
| `app/src/main/` | exact directory path | `app/src/main/` |
| `**/*Outdated*/` | any nested matching directory | `src/fooOutdatedBar/a.kt` |
Paths are normalized before matching, and both relative and absolute forms are considered.
## Recommended folder rules
When you want to hide a folder completely, define both the folder and its subtree:
```json
{
"ignore": [
"app/src/main/",
"app/src/main/**"
]
}
```
This avoids edge cases where descendants are matched but the directory entry itself is still visible.
## Current notes
- Bash handling can still show deny-style behavior in some flows and is being aligned with full visibility filtering.
- If you update ignore rules during a running session, ensure settings are reloaded before validating behavior.
For tool allow/ask/deny policy rules, see [Permissions](/configuration/permissions).

View file

@ -0,0 +1,105 @@
---
title: Permissions
description: Configure allow, ask, and deny permission rules for Bash and Read.
---
# Permissions
Permissions define how tool calls are handled before execution.
In the current implementation phase, permission enforcement is applied to:
- `Bash` (specifier matches the command string)
- `Read` (specifier matches file path and file name)
## Permission settings
| Key | Description | Example |
| --- | --- | --- |
| `allow` | Rules that allow tool use. | `[ "Bash(git diff *)" ]` |
| `ask` | Rules that require confirmation before tool use. | `[ "Bash(git push *)" ]` |
| `deny` | Rules that block tool use. | `[ "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |
## Permission rule syntax
Rules follow this format:
- `Tool`
- `Tool(specifier)`
Use this syntax to match as broadly or as narrowly as needed.
## Rule evaluation order
When multiple rules match, they are evaluated in this order:
1. `deny`
2. `ask`
3. `allow`
The first matching tier determines behavior.
This means a deny rule takes precedence even if an allow rule also matches.
## Matching all uses of a tool
Use the bare tool name to match all uses:
| Rule | Effect |
| --- | --- |
| `Bash` | Matches all Bash commands |
| `Read` | Matches all Read calls |
`Tool(*)` is equivalent to `Tool`.
## Using specifiers for fine-grained control
Add a specifier in parentheses for exact or pattern-based matching:
| Rule | Effect |
| --- | --- |
| `Bash(npm run build)` | Matches the exact command `npm run build` |
| `Read(./.env)` | Matches reading `./.env` |
| `Read(./secrets/**)` | Matches files under `./secrets/` |
| `Read(config.json)` | Matches reads by filename target `config.json` |
## Wildcard patterns
Wildcard `*` is supported inside specifiers and may appear at the beginning, middle, or end.
```json
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git commit *)",
"Bash(git * main)",
"Bash(* --version)",
"Read(./src/**)"
],
"deny": [
"Bash(git push *)",
"Read(./.env)"
]
}
}
```
The space before `*` matters:
- `Bash(ls *)` matches `ls -la`, but not `lsof`
- `Bash(ls*)` matches both `ls -la` and `lsof`
## Bash pattern limitations
Bash argument-constraining patterns are useful but not a security boundary.
For example, `Bash(curl http://github.com/ *)` may miss variants such as:
- flags before URL (`curl -X GET http://github.com/...`)
- different protocol (`curl https://github.com/...`)
- shell-variable forms
Use deny rules and path-level ignore rules together for stronger protection.
- For path-level protections, see [Ignore Rules](/configuration/ignore-rules)
- For maximum-level of control, see [Hooks](/agent/hooks)

View file

@ -0,0 +1,6 @@
{
"overview": "Overview",
"symbols": "@ Symbols",
"personas": "Personas",
"images": "Images"
}

View file

@ -0,0 +1,49 @@
---
title: Image Context
description: Using images as context within ProxyAI chat.
---
import Image from 'next/image'
# Image Context
Chat with your images directly within ProxyAI. Upload screenshots, diagrams, or error messages and let the AI analyze them for you.
## How it Works
When you share an image with ProxyAI, the AI analyzes what it sees. This works especially well with:
- Screenshots of error messages
- UI mockups or interfaces
- Diagrams and flowcharts
- Code snippets captured as images
The AI can describe what it sees, explain diagrams, help with UI elements, extract text, or troubleshoot errors shown in your images.
## Adding Images
You can add images to your chat in two ways:
- **Manual Upload:** Click the upload button in the chat interface or simply drag and drop an image.
- **Auto-detect Screenshots:** Enable this feature in settings to have ProxyAI monitor for new screenshots. When you take a screenshot, ProxyAI will offer to add it to your current conversation.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/images.mp4"
alt="Use Images"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## Screenshot Detection
When auto-detect is enabled, you'll see a notification like this whenever you take a new screenshot:
<Image src="/images/features/images-upload.png" alt="Screenshot detection notification" width={960} height={400}
className="nx-rounded-lg nx-my-4"/>
You can turn screenshot detection on or off from: **Settings/Preferences > Tools > ProxyAI > Configuration > Check for new screenshots automatically**.

View file

@ -0,0 +1,27 @@
---
title: Chat Overview
description: Overview of ProxyAI chat capabilities within the IDE.
---
# Context Overview
Context is what helps ProxyAI understand your specific situation. Without context, the AI can only provide generic responses. With context, it can deliver precise, relevant assistance.
## @ Symbols
Use @ symbols to quickly add context to your conversations:
* **Code:** Include code snippets from your project
* **Files & Folders:** Reference specific project files and directories
* **Git:** Use commit history and recent changes as context
* **Web:** Allow the AI to perform web searches for up-to-date information
* **Documentation:** Fetch content from external documentation URLs
* **Images:** Analyze images like screenshots and diagrams
## Personas
Switch between different AI personalities based on your current task. Choose specialized personas for code writing, explaining concepts, proofreading, or create custom ones.
## Images
Share screenshots, diagrams, or error messages directly in chat. ProxyAI can analyze visual content to troubleshoot problems or explain what it sees.

View file

@ -0,0 +1,48 @@
---
title: Personas
description: Customize AI behavior with different personas in ProxyAI chat.
---
import Image from 'next/image'
# Personas
Use personas to change how ProxyAI responds to you. You can adjust the AI's tone, style, and focus. This helps you get better results for specific tasks, like learning new concepts, writing code, or proofreading text.
## Create a Persona
You create and manage your personas in the plugin settings.
1. Go to **Settings/Preferences > Tools > ProxyAI > Prompts**.
2. Find the section for managing personas. Add your new persona instructions there.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/create-persona.mp4"
alt="Creating a persona in ProxyAI settings"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## Select a Persona
You can select a persona in two ways:
### Set a Default Persona
Choose your default persona in the settings (**Settings/Preferences > Tools > ProxyAI > Prompts**). ProxyAI uses this persona for all your chat conversations automatically, unless you override it for a specific session.
### Use a Persona for One Session
Need a different persona just for the current chat? Use the `@Personas` symbol.
1. Type `@` in the chat input.
2. Select `Personas` from the list that appears.
3. Choose the specific persona you want to use.
This selection applies only to the current chat session. It temporarily overrides your default persona.
Learn more about using context symbols like `@Personas` in the [@ Symbols Overview](/context/symbols/overview).

View file

@ -0,0 +1,7 @@
{
"overview": "Overview",
"files": "Files & Folders",
"docs": "Documentations",
"git": "Git",
"web": "Web"
}

View file

@ -0,0 +1,27 @@
---
title: Documentation Context
description: Integrating external documentation directly into the chat.
---
# Documentation Context
Easily pull relevant web documentation into your chat for quick reference and AI analysis. Whether its API documentation, library guides, framework manuals, or technical articles, ProxyAI can fetch and utilize this content.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/docs.mp4"
alt="Docs Demo"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## How it Works
Using a dedicated command, you can instruct ProxyAI to fetch content from a specific URL. The AI can then use this documentation to:
* Answer questions about a library or API based on its official docs.
* Explain concepts using provided guides or manuals.
* Help you implement features according to framework documentation.

View file

@ -0,0 +1,12 @@
---
title: Files & Folders Context
description: Referencing project files and folders within ProxyAI chat.
---
import Image from 'next/image'
# Files & Folders Context
Quickly access and reference your project files and folders within the chat, enabling ProxyAI to provide context-aware coding assistance based on your project structure and content.
<Image src="https://www.tryproxy.io/images/features/reference-files-w800.png" alt="Reference files and folders" width={500} height={500} className="nx-rounded-lg nx-my-4" />

View file

@ -0,0 +1,25 @@
---
title: Git Context
description: Using Git history as context in ProxyAI chat.
---
# Git Context
Integrate your project's Git history directly into your ProxyAI chat sessions. This allows the AI to understand changes over time, specific commits, and recent development activity.
## Referencing Commits
You can include one or more specific Git commits in your chat message. This is useful for:
* **Code Review:** Ask the AI to review the changes introduced in a specific commit.
* **Understanding Changes:** Request an explanation of the modifications made in a commit.
* **Debugging:** Provide context about when a potential issue might have been introduced.
* **Generating Summaries:** Ask the AI to summarize the purpose of a commit based on its changes.
## Referencing Recent Changes
Besides specific commits, you can also provide the AI with the context of all recent, uncommitted changes in your working directory or staged changes. This is useful for:
* **Pre-commit Reviews:** Get feedback on your current changes before committing them.
* **Generating Commit Messages:** Ask the AI to suggest a commit message based on the staged changes (See also: [AI Commit Message feature](/editor/commit-message)).
* **Explaining Current Work:** Summarize the ongoing modifications for documentation or handover.

View file

@ -0,0 +1,32 @@
---
title: Overview
description: Overview of @ Symbols
---
import Image from 'next/image'
# Symbols Overview
Overview of all @ symbols available in ProxyAI for context and commands
When using the chat input box, you can use @ symbols by typing `@`. A popup menu will appear with a list of suggestions, and it will automatically filter to only show the most relevant suggestions based on your input.
<Image src="/images/features/symbols.png" alt="@ Symbols" width={360} height={240} className="nx-rounded-lg nx-my-4"/>
## Keyboard Shortcuts
You can navigate through the list of suggestions using the up/down arrow keys. You can hit Tab to select a suggestion. If the suggestion is a category, such as Files, the suggestions will be filtered to only show the most relevant items within that category.
Here's the list of all @ symbols available:
- **@Files** - Reference specific files in your project
- **@Folders** - Reference entire folders for broader context
- **@Docs** - Access documentation and guides
- **@Git** - Access git history and changes
- **@Personas** - Reference personas for context and commands
- **@Web** - Reference external web resources and documentation

View file

@ -0,0 +1,30 @@
---
title: Web Context
description: Enable ProxyAI to access and utilize live web search results.
---
# Web Context
Connect ProxyAI to the internet to enhance its knowledge with up-to-date information. When enabled, ProxyAI can perform web searches to find the most relevant context for answering your questions.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/web.mp4"
alt="Web demo"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## How it Works
When you ask a question that might benefit from current information (e.g., latest library versions, recent news, troubleshooting errors not in its training data), ProxyAI can:
1. Identify the need for external information.
2. Perform a web search based on your query.
3. Analyze and synthesize the search results.
4. Incorporate the relevant findings into its answer.
This allows the AI to provide answers based on the latest documentation, articles, and discussions available online.

View file

@ -0,0 +1,6 @@
{
"overview": "Overview",
"cloud": "Cloud",
"custom-extension": "Custom Extension",
"remote-settings": "Remote Settings"
}

View file

@ -0,0 +1,22 @@
---
title: ProxyAI Cloud for Enterprise
description: Manage ProxyAI access for your team with centralized administration and predictable per-seat pricing.
---
# ProxyAI Cloud for Enterprise
ProxyAI Cloud for Enterprise offers the same core AI capabilities as the individual Pro plan but is designed specifically for teams and organizations requiring centralized administration and predictable budgeting.
## Benefits over Pro
* **Centralized Seat Management:** Team leaders or administrators can purchase and assign licenses to developers within their organization through a single dashboard
* **Predictable Pricing:** Simplify budget management with a clear, fixed cost per developer per month. This avoids the complexity and potential variability of managing individual subscriptions or direct API usage costs across a team
* **Consolidated Billing:** Simplify accounting with one subscription and invoice covering all team members
This structure is ideal for organizations needing to provide ProxyAI access to multiple developers while maintaining administrative control, streamlined billing, and predictable expenses for AI tooling.
## Pricing
ProxyAI Cloud for Enterprise is priced per user:
* **Standard Rate:** $20 per developer, per month.

View file

@ -0,0 +1,32 @@
---
title: ProxyAI Custom Extension
description: A private version of ProxyAI for specific enterprise needs.
---
# ProxyAI Custom Extension
For organizations with specific security, compliance, or customization requirements, we offer a private, custom version of the ProxyAI extension. This version allows for deep integration with your internal infrastructure and workflows, particularly for teams working with sensitive data or using self-hosted AI models.
## Core Features & Benefits
* **In-House Model Integration:** Configure the extension to connect exclusively to your own self-hosted or private cloud AI models (OpenAI API compatible or other custom integrations), without the additional 3rd party providers included as in the public version.
* **Remote Settings Synchronization:** Centrally manage and enforce plugin settings across your entire organization. Learn more about [remote settings sync](/enterprise/remote-settings)
* **Automatic Updates:** The custom extension stays up-to-date with features and improvements from the public ProxyAI version. You can distribute updates through your own [custom plugin repository](https://plugins.jetbrains.com/docs/intellij/custom-plugin-repository.html), giving you complete control over version management while ensuring your team benefits from the latest advancements.
* **Self-Hosted Next Edits:** Option to self-host the model powering the [Next Edits](/editor/tab#next-edits) and configure it against your custom extension, keeping the data entirely within your infrastructure.
* **Other Customization:** Possibility for further customization, such as custom branding or specific feature adjustments to meet unique organizational needs.
## Use Cases
The Custom Extension is designed for enterprises that:
* Operate in regulated industries with strict data privacy and security mandates.
* Work with highly sensitive or proprietary codebases.
* Have invested in self-hosting large language models.
* Require centralized control and standardization of developer tools across large teams.
* Need specific customizations not available in the public version.
## Pricing
Pricing for the private custom extension is determined by your specific needs and scale of your organization.
To discuss your requirements and receive a quote, please contact us at [contact@codegpt.ee](mailto:contact@codegpt.ee).

View file

@ -0,0 +1,40 @@
---
title: Enterprise Overview
description: Choose the ProxyAI enterprise solution that best fits your organization's needs for AI integration, security, and management.
---
import Image from 'next/image'
# Enterprise Overview
ProxyAI provides two enterprise solutions designed to integrate AI capabilities into development workflows while addressing specific organizational requirements for security, control, and infrastructure.
1. **ProxyAI Cloud:** A managed service providing access to a diverse set of AI models and features with predictable pricing.
2. **ProxyAI Custom Extension:** A private, configurable version of the ProxyAI plugin for organizations requiring integration with self-hosted AI models and centralized configuration management.
## ProxyAI Cloud
ProxyAI Cloud gives your team simple, managed access to a variety of AI models and features.
**Key Highlights:**
* Access premium proprietary and open-source coding-optimized models
* Predictable seat-based pricing
* Access features like Next Edits and Auto Apply that aren't available through other providers
## ProxyAI Custom Extension
For organizations with strict security, compliance, or specific integration needs, the Custom Extension offers a private, configurable version of ProxyAI.
<Image src="/images/enterprise/enterprise.png" alt="ProxyAI Custom Extension" width={600} height={600}
className="nx-rounded-lg nx-my-4"/>
**Key Highlights:**
* Connect exclusively with your **in-house or private cloud AI models** (OpenAI API compatible)
* Control plugin settings across your organization through **[Remote Settings](/enterprise/remote-settings)**
* Optionally **self-host the Next Edits feature** for complete data control
* Receive automatic updates while keeping your custom configuration
* Potential for further customization (branding, features)
Designed for organizations operating in regulated environments, handling sensitive data, using self-hosted models, or requiring extensive customization and control.

View file

@ -0,0 +1,317 @@
---
title: Remote Settings
description: Centrally manage and synchronize ProxyAI configurations across your organization.
---
import { Callout, Tabs, Tab } from 'nextra/components'
# Remote Settings
Remote Settings provide administrators with the ability to centrally define and distribute ProxyAI configurations to all users within their organization.
### Benefits
* **Consistency:** Ensure all developers use the same AI models, prompts, and configurations.
* **Compliance & Security:** Enforce the use of approved, secure AI endpoints and disable non-compliant features.
* **Simplified Management:** Update configurations centrally without manual changes on each developer's machine.
* **Easier Onboarding:** New team members automatically receive the standard configuration.
This feature is available as part of the **[Custom Extension](/enterprise/custom-extension)**.
## Prerequisites
Before configuring Remote Settings:
1. Identify the AI providers, models, and custom prompts your organization needs.
2. Prepare a secure internal web server or location to host the configuration JSON file.
3. Ensure the hosting URL is accessible from your developers' workstations where ProxyAI is installed.
4. Plan how to distribute the URL to the ProxyAI instances (e.g., via the Custom Extension or direct communication).
## How it Works
Administrators define a standard configuration profile within a JSON file. This configuration file is hosted at a secure internal URL accessible to developers within the organization.
The ProxyAI plugin is configured (either manually by the user or automatically via the Custom Extension) with this URL. ProxyAI then fetches the file and applies the settings defined within it to the user's instance. This synchronization ensures that the user's ProxyAI setup aligns with the centrally managed configuration.
<Callout type="warning">
**Security:** Ensure the URL hosting your configuration JSON is secure and only accessible within your organization's network or via appropriate authentication mechanisms. Avoid exposing sensitive information like API keys directly in this file; use placeholders like `$CUSTOM_SERVICE_API_KEY`.
</Callout>
## Configuration Overview
Remote settings are defined in a single JSON file. The root object can contain `prompts` and `providers` keys. You only need to include the sections you wish to manage centrally.
<Callout type="info" title="Placeholders">
Configuration values can use placeholders that ProxyAI replaces at runtime:
* `$CUSTOM_SERVICE_API_KEY`: User's API key entered in ProxyAI settings (used in `providers` headers).
* `$OPENAI_MESSAGES`: Formatted chat history array (used in `chatCompletionSettings.body`).
* `$PREFIX`: Code before the cursor (used in `codeCompletionSettings.body`).
* `$SUFFIX`: Code after the cursor (used in `codeCompletionSettings.body` for infill).
* `{SELECTION}`: Selected code in the editor (used in `chatActions` prompts).
* `{BRANCH_NAME}`, `{DATE_ISO_8601}`: Git context (used in `coreActions` prompts).
</Callout>
<Tabs items={['Prompts Configuration', 'Providers Configuration']}>
<Tab>
### `prompts`
Override default prompts or add custom chat actions and personas.
```json
// Structure example for prompts
{
"prompts": {
"coreActions": {
"generateCommitMessages": "Branch: {BRANCH_NAME}..."
},
"chatActions": [
{
"name": "Explain Selection",
"instructions": "Explain: {SELECTION}"
}
],
"personas": [
{
"name": "Code Reviewer",
"instructions": "Review the code..."
}
]
}
}
```
* **`coreActions`**: (Object) Map action IDs (e.g., `editCode`, `generateCommitMessages`, `reviewChanges`) to custom prompt strings. Use placeholders like `{BRANCH_NAME}`, `{DATE_ISO_8601}` as needed.
* **`chatActions`**: (Array) Define custom actions for the chat panel. Each object needs:
* `name`: (String) Display name (e.g., "Find Bugs", "Write Tests").
* `prompt`: (String) Prompt template. Use `{SELECTION}` for selected code.
* **`personas`**: (Array) Define chat personas to modify base AI instructions. Each object needs:
* `name`: (String) Display name (e.g., "CodeGPT Default", "Rubber Duck").
* `instructions`: (String) Detailed instructions defining the persona.
*(See the full example JSON below for detailed prompt examples)*
</Tab>
<Tab>
### `providers`
Define connections to custom AI providers (like self-hosted models or specific cloud endpoints).
```json
// Structure example for providers
{
"providers": {
"customOpenAI": [
{
"name": "Internal Llama 3",
"chatCompletionSettings": {
"url": "https://your-internal-llm-service.example.com/v1/chat/completions",
"headers": {},
"body": {
"stream": true,
"model": "llama-4-maverick-17b",
"messages": "$OPENAI_MESSAGES",
"temperature": 0.0,
"max_tokens": 8192
}
},
"codeCompletionSettings": { /* ... */ }
}
]
}
}
```
* **`customOpenAI`**: (Array) A list of provider configurations. Each object defines a selectable service endpoint compatible with the OpenAI API format.
#### Provider Object Fields:
* `name`: (String, Required) Display name for the provider in ProxyAI settings (e.g., "Internal Llama 3").
* `template`: (String, Required) API format template.
* `chatCompletionSettings`: (Object, Optional) Settings for chat completions. See details below.
* `codeCompletionSettings`: (Object, Optional) Settings for code completions. See details below.
---
#### `chatCompletionSettings` Fields
Configure the chat API endpoint:
| Field | Type | Required | Description | Example/Placeholder |
| :-------- | :------ | :------- | :--------------------------------------------------------------------------------------------------------- | :----------------------- |
| `url` | String | Yes | The full URL of the chat completion API endpoint. | `"https://.../chat/completions"` |
| `headers` | Object | Yes | Key-value pairs for HTTP headers. Use `$CUSTOM_SERVICE_API_KEY` for the user's API key. | `{ "Authorization": "Bearer $CUSTOM_SERVICE_API_KEY", ... }` |
| `body` | Object | Yes | The JSON body structure for the API request. See notes below. | `{ "model": "...", "messages": "$OPENAI_MESSAGES", ... }` |
| `model` | String | Yes (in `body`) | The specific model identifier to use. | `"llama-4-maverick-17b"` |
| `messages`| String | Yes (in `body`) | Placeholder `$OPENAI_MESSAGES`; replaced by the plugin with formatted conversation history. | `"$OPENAI_MESSAGES"` |
| `stream` | Boolean | Yes (in `body`) | Typically `true` to enable streaming responses. | `true` |
| *...other body params* | *Type* | *Optional* | Other parameters supported by your endpoint (e.g., `temperature`, `max_tokens`). | `0.0`, `8192` |
<Callout type="info" title="Note on `chatCompletionSettings.body`">
This object defines the API request payload. It **must** include `model`, `messages` (using the `$OPENAI_MESSAGES` placeholder), and `stream`. Add other parameters like `temperature`, `max_tokens`, `top_p` as needed by your specific endpoint. The `$CUSTOM_SERVICE_API_KEY` placeholder in `headers` is replaced by the API key entered by the user in the plugin settings.
</Callout>
---
#### `codeCompletionSettings` Fields
Configure the code completion API endpoint (optional):
| Field | Type | Required | Description | Example/Placeholder |
| :-------------------------------- | :------ | :------- | :--------------------------------------------------------------------------------------------------------- | :----------------------- |
| `codeCompletionsEnabled` | Boolean | No | Set to `true` to enable code completions for this provider. Defaults to `false`. | `true` |
| `infillTemplate` | String | No | Specifies how infill requests (prefix/suffix) should be formatted. "OpenAI" is common. Defaults `null`. | `"OpenAI"` |
| `url` | String | If Enabled | The full URL of the code completion API endpoint. | `"https://.../completions"` |
| `headers` | Object | If Enabled | Key-value pairs for HTTP headers. Use `$CUSTOM_SERVICE_API_KEY`. | `{ "Authorization": "...", ... }` |
| `body` | Object | If Enabled | The JSON body structure for the API request. See notes below. | `{ "model": "...", "prompt": "$PREFIX", ... }` |
| `model` | String | Yes (in `body`) | The model identifier for code completion. | `"gpt-3.5-turbo-instruct"` |
| `prompt` | String | Yes (in `body`) | Placeholder `$PREFIX`; replaced by the plugin with code before the cursor. | `"$PREFIX"` |
| `suffix` | String | Yes (in `body`, if infill) | Placeholder `$SUFFIX`; replaced by the plugin with code after the cursor (for infill). | `"$SUFFIX"` |
| `stream` | Boolean | Yes (in `body`) | Typically `true` to enable streaming responses. | `true` |
| *...other body params* | *Type* | *Optional* | Other parameters supported by your endpoint (e.g., `temperature`, `max_tokens`). | `0.2`, `24` |
<Callout type="info" title="Note on `codeCompletionSettings.body`">
The `body` object defines the API request payload. It **must** include `model`, `prompt` (using `$PREFIX`), and `stream`. If using infill (`infillTemplate` is set), it **must** also include `suffix` (using `$SUFFIX`). Add other parameters like `temperature`, `max_tokens` as needed by your endpoint.
</Callout>
<Callout type="info" title="Placeholders for Code Completion">
* `$PREFIX`: Code before the cursor.
* `$SUFFIX`: Code after the cursor (used when `infillTemplate` is active).
* `$CUSTOM_SERVICE_API_KEY`: User's API key (used in `headers`).
</Callout>
</Tab>
</Tabs>
## Applying Remote Settings in ProxyAI
Once your administrator has set up the remote configuration file and provided you with the URL, you can sync these settings within your ProxyAI plugin.
### Manual Sync via Settings
You can manually fetch and apply the latest remote settings at any time:
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/remote-settings-configurable.mp4"
alt="Manual Sync via Settings"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
1. Open your IDE and go to **Settings / Preferences > Tools > ProxyAI Enterprise > Remote Settings**.
2. Find the **Remote settings URL** field.
3. Enter the URL provided by your administrator.
4. Click **Sync Settings**.
5. ProxyAI will fetch the latest configuration and compare it with your current settings.
6. If changes are found, a dialog will show what's different (such as new providers or updated prompts).
7. Review these changes.
8. Click **Apply Changes** to activate the new configuration.
### Automatic Check on Startup
ProxyAI checks for updates to your remote settings **once when your IDE starts up**:
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/remote-settings-notification.mp4"
alt="Notification for applying remote settings updates"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
Remember, you can always use the **Manual Sync** option described above if you need to fetch updates without restarting the IDE.
## Example Full Configuration JSON
Below is an example demonstrating how to structure the JSON file with both `prompts` and `providers` defined. Host this file at a secure internal URL accessible by your developers' IDEs.
```json
{
"prompts": {
"coreActions": {
"editCode": "You are a code modification assistant. Your task is to modify the provided code based on the user's instructions.\n\nRules:\n1. Return only the modified code, with no additional text or explanations.\n2. The first character of your response must be the first character of the code.\n3. The last character of your response must be the last character of the code.\n4. NEVER use triple backticks (```) or any other markdown formatting in your response.\n5. Do not use any code block indicators, syntax highlighting markers, or any other formatting characters.\n6. Present the code exactly as it would appear in a plain text editor, preserving all whitespace, indentation, and line breaks.\n7. Maintain the original code structure and only make changes as specified by the user's instructions.\n8. Ensure that the modified code is syntactically and semantically correct for the given programming language.\n9. Use consistent indentation and follow language-specific style guidelines.\n10. If the user's request cannot be translated into code changes, respond only with the word NULL (without quotes or any formatting).\n11. Do not include any comments or explanations within the code unless specifically requested.\n12. Assume that any necessary dependencies or libraries are already imported or available.\n\nIMPORTANT: Your response must NEVER begin or end with triple backticks, single backticks, or any other formatting characters.",
"fixCompileErrors": "I will provide you with a snippet of code that is causing a compilation error.\nYour task is to identify the potential causes of the compilation error(s) and propose code solutions to fix them.\nPlease approach this step by step, explaining your reasoning as you go.",
"generateCommitMessages": "Branch: {BRANCH_NAME}\nDate: {DATE_ISO_8601}\n\nWrite a short and descriptive git commit message for the following git diff.\nUse imperative mood, present tense, active voice and verbs.\nYour entire response will be passed directly into git commit.",
"generateNameLookups": "Provide five alternative names for a given function or method body. Your response should be a list of names, separated by commas, without any extra information.\n",
"reviewChanges": "You are an experienced software developer tasked with reviewing code changes and providing concise, valuable feedback. Your goal is to analyze the provided git diff and open files, then suggest logical and meaningful improvements if needed, focusing on brevity and specific code examples.\n\nFollow these steps to complete your review:\n\n1. Analyze the git diff and open files:\n Be concise and focus on the most important points. Include:\n - For each modified file:\n * Specific line numbers of changes\n * Brief description of changes, quoting specific lines of modified code\n * Change category (e.g., bug fix, feature addition, refactoring)\n * Purpose and potential impact\n * Any potential issues, risks, or bugs\n * Impact on code readability and maintainability\n * Potential impact on performance and scalability\n - Identification of any code smells or anti-patterns in the changes\n - Key relationships between changes in different files\n - Overall coherence and consistency of the changes\n - Any potential security concerns\n - For each change, consider and note its impact on the overall codebase\n\n2. Determine if improvements are needed:\n Based on your analysis, decide if any improvements are necessary. If so, provide your suggestions using the following format:\n\n ```{lang}\n // Your code suggestion here.\n ```\n\n Ensure your suggestions are:\n - Specific and actionable\n - Relevant to the changes in the git diff and the context of open files\n - Aligned with best practices in software development\n - Accompanied by brief explanations of their importance\n\n If no improvements are needed, briefly explain why the current changes are sufficient.\n\n3. Provide a short summary:\n - A brief overview of the changes reviewed\n - Main findings from your analysis\n - A concise list of key suggestions (if any), ordered by importance\n - Your overall assessment of the code changes\n\nRemember to keep your analysis, suggestions, and summary concise and to the point. Focus on providing specific code examples in your suggestions rather than verbose explanations."
},
"chatActions": [
{
"name": "Explain",
"instructions": "Your task is to provide a clear, concise explanation of what this code does. Focus on the main functionality and purpose of the code, avoiding unnecessary details. Explain any complex logic or algorithms if present.\n\nProvide your explanation in a few sentences, using simple language that a junior programmer could understand. If there are any notable best practices or potential improvements, briefly mention them at the end.\n\nHere's the code to analyze:\n{SELECTION}"
},
{
"name": "Refactor",
"instructions": "Your task is to improve the code's readability, efficiency, and maintainability without changing its functionality. Follow these steps:\n\n1. Analyze the following selected code:\n\n2. Identify areas for improvement, such as:\n - Simplifying complex logic\n - Removing redundant code\n - Improving naming conventions\n - Enhancing code structure\n\n3. Refactor the code, keeping these guidelines in mind:\n - Maintain the original functionality\n - Follow best practices for the programming language used\n - Prioritize readability and maintainability\n\nBe concise in your explanation, focusing on the most important improvements made.\n\nHere's the code to refactor:\n{SELECTION}"
}
],
"personas": [
{
"name": "CodeGPT Default",
"instructions": "You are an AI programming assistant.\nFollow the user's requirements carefully & to the letter.\nYour responses should be informative and logical.\nYou should always adhere to technical information.\nIf the user asks for code or technical questions, you must provide code suggestions and adhere to technical information.\nIf the question is related to a developer, you must respond with content related to a developer.\nFirst think step-by-step - describe your plan for what to build in pseudocode, written out in great detail.\nThen output the code in a single code block.\nMinimize any other prose.\nKeep your answers short and impersonal.\nUse Markdown formatting in your answers.\nAlways format code using Markdown code blocks, with the programming language specified at the start.\nAvoid wrapping the whole response in triple backticks.\nThe user works in an IDE built by JetBrains which has a concept for editors with open files, integrated unit test support, and output pane that shows the output of running the code as well as an integrated terminal.\nYou can only give one reply for each conversation turn."
}
]
},
"providers": {
"customOpenAI": [
{
"name": "Default Self-Hosted",
"chatCompletionSettings": {
"url": "https://your-internal-llm-service.example.com/v1/chat/completions",
"headers": {
"Authorization": "Bearer $CUSTOM_SERVICE_API_KEY",
"X-LLM-Application-Tag": "proxyai",
"Content-Type": "application/json"
},
"body": {
"stream": true,
"model": "llama-4-maverick-17b",
"messages": "$OPENAI_MESSAGES",
"temperature": 0.0,
"max_tokens": 8192
}
},
"codeCompletionSettings": {
"codeCompletionsEnabled": true,
"infillTemplate": "OPENAI",
"url": "https://your-internal-llm-service.example.com/v1/completions",
"headers": {
"Authorization": "Bearer $CUSTOM_SERVICE_API_KEY",
"X-LLM-Application-Tag": "proxyai",
"Content-Type": "application/json"
},
"body": {
"suffix": "$SUFFIX",
"stream": true,
"model": "gpt-3.5-turbo-instruct",
"temperature": 0.2,
"prompt": "$PREFIX",
"max_tokens": 24
}
}
},
{
"name": "Azure OpenAI East US",
"chatCompletionSettings": {
"url": "https://your-azure-endpoint.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2023-05-15",
"headers": {
"api-key": "$CUSTOM_SERVICE_API_KEY",
"X-LLM-Application-Tag": "proxyai",
"Content-Type": "application/json"
},
"body": {
"stream": true,
"model": "gpt-4",
"messages": "$OPENAI_MESSAGES",
"temperature": 0.1,
"max_tokens": 4096
}
},
"codeCompletionSettings": {
"codeCompletionsEnabled": false
}
}
]
}
}
```

View file

@ -0,0 +1,7 @@
{
"tab": "Tab",
"chat": "Chat",
"commit-message": "AI Commit Message",
"inline-edit": "Inline Edit",
"name-lookups": "Name Lookups"
}

View file

@ -0,0 +1,4 @@
{
"overview": "Overview",
"auto-apply": "Auto Apply"
}

View file

@ -0,0 +1,53 @@
---
title: Auto Apply
description: Overview of Auto Apply feature
---
import Image from 'next/image'
import {Steps} from 'nextra/components'
# Auto Apply
Apply AI-suggested code directly into your codebase. Preview modifications in diff view and approve or reject them with a single click.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/auto-apply.mp4"
alt="Auto Apply"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## How it Works
<Steps>
### Start chatting
Tell ProxyAI what you want to change in your code. It could be a bug fix, a new feature, or any
other code modification.
### Click the Auto Apply icon
For each block of code ProxyAI generates, you'll see the lightning icon (⚡) appear on top of the
code block. Click this icon to have ProxyAI analyze and implement the changes.
<Image
src="https://www.tryproxy.io/_next/image?url=%2Fimages%2Fblog%2Fauto-apply-1.png&w=1920&q=75"
alt="Auto Apply" width={1200} height={800}
className="nx-rounded-lg nx-my-4"/>
### Accept or Reject the changes
Review the proposed changes in the diff view. You can choose to accept all changes, applying them
directly to your file, or reject them to maintain the current version.
<Image
src="https://www.tryproxy.io/_next/image?url=%2Fimages%2Fblog%2Fauto-apply-2.png&w=3840&q=75"
alt="Auto Apply" width={1200} height={800}
className="nx-rounded-lg nx-my-4"/>
</Steps>

View file

@ -0,0 +1,44 @@
---
title: Chat Overview
description: Learn how to use ProxyAI chat for questions, actions, and code edits in your JetBrains IDE.
---
import Image from 'next/image'
# Chat Overview
Use the ProxyAI Chat to ask questions, run actions, and edit your code, from small tweaks to larger changes.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/chat.mp4"
alt="Chat Demo"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## Using Codebase Context
Providing context enhances the AI's understanding and improves the relevance of its responses. ProxyAI enables the integration of context from various sources into chat prompts.
Use the `@` symbol to reference specific context, including files, directories, Git history, documentation, and web resources.
Refer to the [@ Symbols documentation](/context/symbols/overview) for detailed usage instructions.
## Chat Actions
ProxyAI includes built-in actions to help you with common coding tasks. Access them directly from the chat:
- **Find Bugs**: Let the AI scan your code for potential bugs and suggest fixes.
- **Write Tests**: Generate unit tests for your functions and classes quickly.
- **Explain**: Get clear explanations for selected code snippets or complex concepts.
- **Refactor**: Ask the AI to restructure your code for better readability or maintainability without changing what it does.
<Image src="/images/features/prompts.png" alt="Prompts" width={1200} height={800}
className="nx-rounded-lg nx-my-4"/>

View file

@ -0,0 +1,100 @@
---
title: AI Commit Features
description: Use ProxyAI to generate Git commit messages or review staged changes in your JetBrains IDE.
---
import Image from 'next/image'
# AI Commit Message
Use ProxyAI to write clear Git commit messages and review code changes directly in your JetBrains IDE.
## Generate Message
ProxyAI analyzes your staged changes and suggests a consistent commit message for you.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/generate-message.mp4"
alt="Generating a commit message from staged changes"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
To generate a commit message:
- Open the Commit tool window (`Cmd+K` / `Ctrl+K`)
- Stage the files you want to include in the commit
- Select the **Generate message** option from the dropdown above the text input field
## Generate Message with Additional Input
You can provide extra instructions for the commit message when you need specific details or want to follow a style guide.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/generate-message-additional-input.mp4"
alt="Generating a commit message with additional input"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## Review Changes
Send your staged changes to ProxyAI for quick analysis and feedback before committing.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/review-changes.mp4"
alt="Reviewing staged changes using the AI Chat panel"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## Review Past Commits
Analyze and understand previous commits to codebase.
To review past commits:
- Open the Git tool window (`View > Tool Windows > Git` or `Cmd+9`/`Alt+9`)
- In the Log tab, right-click the commit you want explained
- Select **ProxyAI > Explain Commit with ProxyAI**
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/review-past-commits.mp4"
alt="Explaining a past commit using ProxyAI from the Git log"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
## Customize the Commit Message Prompt
Change the instructions ProxyAI uses to generate commit messages:
- Go to **Settings/Preferences > Tools > ProxyAI > Prompts > Generate Commit Message**
- Find the **Commit Message Prompt Template** field
- Change the template text to fit your needs. Click Apply
<Image src="/images/features/commit-message-prompt.png" alt="Configure the prompt used when generating a commit message" width={1200} height={800}
className="nx-rounded-lg nx-my-4"/>
### Available Placeholders
When customizing your commit message template, you can use these dynamic placeholders:
- **BRANCH_NAME**: Automatically inserts the name of the current branch (e.g., `feature/user-auth`)
- **DATE_ISO_8601**: Inserts the current date in ISO 8601 format (e.g., `2023-05-15`)

View file

@ -0,0 +1,32 @@
---
title: Inline Edit
description: Modify code directly within the editor using natural language instructions.
---
# Inline Edit
Modify code segments directly in the editor using natural language instructions. ProxyAI applies your requested changes live without leaving your coding environment.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/inline-edit.mp4"
alt="Inline Edit process: Highlighting code, clicking the Edit Code icon, entering 'improve logging', submitting, and observing live code modification in the editor."
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
To use Inline Edit:
* Select the code block you want to modify
* Click the **Edit Code** icon in the hover panel that appears
* Enter your instruction (e.g., "refactor to use async/await" or "add error handling")
* Press Enter to apply the changes directly to your code
### Keyboard Shortcuts
* **Initiate Inline Edit**: `Cmd+Shift+K` (macOS) or `Ctrl+Shift+K` (Windows/Linux)
* **Submit Instruction**: `Enter`
* **Cancel Edit**: `Esc`

View file

@ -0,0 +1,26 @@
---
title: Name Lookups
description: Getting AI-powered suggestions for variable, function, and class names.
---
# Name Lookups
ProxyAI analyzes the purpose and scope of variables, functions, classes, and more to propose clear and descriptive names.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/name-lookups.mp4"
alt="Name Lookups"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
To use Name Lookups:
- Position your cursor on the variable, method, or class you want to rename
- Press `Shift+F6` (Windows/Linux) or `Cmd+F6` (macOS) to initiate the refactoring
- ProxyAI automatically adds contextually relevant name suggestions to the standard lookup list
- Select any of the AI-suggested names from the dropdown to apply it

View file

@ -0,0 +1,60 @@
---
title: Tab
description: Tab page description
---
# Tab
ProxyAI helps you write code faster and more accurately. Get smart code suggestions and edits directly in your editor as you type.
## Autocomplete
Autocomplete feature focuses on providing real-time code completion suggestions as you type. It predicts and suggests code snippets near your cursor, offering single-line completions or generating entire functions or blocks of code based on the immediate context.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/autocomplete.mp4"
alt="Demonstration of code autocomplete suggestions"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
### Keyboard Shortcuts
- **Accept suggestion**: `Tab`
- **Accept suggestion word-by-word**: `Option`/`Ctrl` + `→`
- **Accept suggestion line-by-line**: `Cmd`/`Alt` + `→`
- **Cancel suggestion**: `Esc`
## Next Edits
Next Edits feature reshapes the traditional autocomplete experience. It predicts your coding intentions across the entire file, offering context-aware suggestions and multi-line changes based on your recent modifications.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/next-edit.mp4"
alt="Next Edit Demo"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
### Keyboard Shortcuts
- **Accept edit**: `Tab`
- **Open all edits**: `Cmd` + `o`
- **Trigger manually**: `Cmd` + `Enter`
- **Cancel suggestion**: `Esc`
### Compatibility and Provider Support
This feature is available only with ProxyAI Cloud and is not currently supported by any other provider. We are actively working to expand this functionality for a broader community.
### Enterprise Self-Hosting
For enterprises seeking advanced control and customization, a self-hosted version of Next Edits is available. Please [contact us](mailto:contact@codegpt.ee) for more information.

View file

@ -0,0 +1,114 @@
---
title: Getting Started
description: Install ProxyAI and start using AI in your IDE, whether using the public plugin or a private enterprise extension.
---
import { Steps, Tabs, Tab } from 'nextra/components'
import { Callout } from 'nextra/components'
# Getting Started
This guide explains how to install ProxyAI and begin using AI coding assistance inside your JetBrains IDE. The steps differ slightly depending on whether you are using the publicly available plugin or a private one provided by your organization.
<Tabs items={['Public Plugin (Marketplace)', 'Private Plugin (Enterprise)']}>
<Tab>
Follow these steps if you are installing the standard ProxyAI plugin available to everyone.
<Steps>
### Install the Plugin from Marketplace
1. Open **Settings / Preferences → Plugins** in your JetBrains IDE.
2. Search for `ProxyAI` in the Marketplace tab.
3. Click **Install** and restart your IDE when prompted.
<img alt="Install ProxyAI from JetBrains Marketplace" src="/images/getting_started/marketplace.png"
style={{margin: '8px 0', borderRadius: '6px', overflow: 'hidden'}}/>
### Launch ProxyAI
Once installed, find the **ProxyAI Chat** tool window (usually on the right-hand side) or activate it via **Find Action** (`⌘/Ctrl + Shift + A` → search "ProxyAI Chat").
<img alt="ProxyAI Tool Window location" src="/images/getting_started/toolwindow.png"
style={{margin: '8px 0', borderRadius: '6px', overflow: 'hidden'}}/>
### Ask Your First Question
Open the chat window and ask anything!
<img alt="Asking a question in ProxyAI Chat" src="/images/getting_started/ask_questions.gif"
style={{margin: '8px 0', borderRadius: '6px', overflow: 'hidden'}}/>
</Steps>
**Initial Configuration:**
Upon first use, the public ProxyAI plugin defaults to using its own cloud service (ProxyAI Cloud) with basic model access. To unlock more powerful models or use different AI providers:
* Upgrade your ProxyAI Cloud plan ([see pricing](https://tryproxy.io/#pricing)).
* Configure the plugin to use an external provider (like OpenAI, Anthropic) with your own API key ([See Providers](/providers/overview)).
* Set up a connection to a local model using Ollama or Llama.cpp ([See Local Providers](/providers/local)).
</Tab>
<Tab>
Follow these instructions if your organization provides a private, customized version of ProxyAI (Custom Extension).
<Steps>
### Obtain the Plugin
The ProxyAI Custom Extension is **not available** on the public JetBrains Marketplace. Your organization (e.g., your IT department or development tools team) will provide you with the plugin (usually a `.zip`) and specific installation instructions.
### Install the Plugin from Disk
Typically, installation involves:
1. Open **Settings / Preferences → Plugins** in your JetBrains IDE.
2. Click the gear icon ⚙️ and select **Install Plugin from Disk...**.
3. Locate and select the `.zip` file provided by your organization.
4. Click **OK** or **Install**.
5. Restart your IDE when prompted to complete the installation.
<img alt="Install ProxyAI Manually" src="/images/getting_started/install-manually.png"
style={{margin: '8px 0', borderRadius: '6px', overflow: 'hidden'}}/>
*(Always consult your organization's internal documentation for precise installation steps, as they may differ slightly.)*
### Launch ProxyAI & Verify Configuration
After restarting, find the **ProxyAI Chat** tool window (usually on the right sidebar) or activate it via **Find Action** (`⌘/Ctrl + Shift + A` → search "ProxyAI Chat").
<img alt="Open ProxyAI Tool Window" src="/images/getting_started/toolwindow-enterprise.png"
style={{margin: '8px 0', borderRadius: '6px', overflow: 'hidden'}}/>
The Custom Extension is typically pre-configured by your administrator to connect to approved internal or private AI models using **[Remote Settings](/enterprise/remote-settings)**. It should connect automatically.
<Callout type="info">
**What are Remote Settings?** Your administrator defines standard configurations (like approved AI providers, models, and custom prompts) in a central file. The ProxyAI plugin fetches this file to ensure your setup aligns with organizational standards.
</Callout>
### Configure Remote Settings URL
In most cases, the Remote Settings URL will be pre-filled in your Custom Extension. However, if the plugin doesn't connect automatically or if instructed by your administrator:
1. Go to **Settings / Preferences → Tools → ProxyAI Enterprise → Remote Settings**.
2. Enter the **Remote settings URL** provided by your administrator into the field.
3. Click **Sync Settings**.
4. Review the detected configuration changes (if any) and click **Apply Changes**.
<Callout type="warning">
If you don't have the Remote Settings URL or encounter issues, contact your organization's internal support or the team that provided the plugin file.
</Callout>
*(For a detailed guide on how Remote Settings work and how to sync them, see [Applying Remote Settings in ProxyAI](/enterprise/remote-settings#applying-remote-settings-in-proxyai).)*
### Start Using AI Features
Once configured (either automatically or manually via Remote Settings sync), you can begin interacting with the chat or using features like autocomplete and AI commit messages. Your available models and features are determined by the central configuration managed by your administrator.
</Steps>
**Key Points for Custom Extension Users:**
* **Pre-configured:** Your extension is usually set up by your administrator to connect to specific, approved AI endpoints. You typically **do not** need to manually configure providers or API keys like users of the public plugin.
* **Remote Settings:** Your configuration is likely managed centrally via [Remote Settings](/enterprise/remote-settings). Changes made by your administrator may be automatically detected, prompting you to apply updates.
* **Internal Support:** For any issues related to installation, configuration, available models, or usage of the Custom Extension, please refer to your organization's internal support channels or documentation first.
</Tab>
</Tabs>

23
docs/pages/index.mdx Normal file
View file

@ -0,0 +1,23 @@
---
title: Welcome to ProxyAI
description: An AI coding assistant for JetBrains IDEs, available as a public plugin or a private enterprise extension.
---
# Welcome to ProxyAI
ProxyAI is an intelligent coding assistant that seamlessly integrates with JetBrains IDEs including IntelliJ, PyCharm, and WebStorm. By providing context-aware code suggestions, automating routine tasks, and offering AI-powered assistance directly in your development environment, ProxyAI helps you code faster and more efficiently.
Choose between two flexible options:
1. **ProxyAI Public Plugin:** Available on the JetBrains Marketplace, this version is ideal for individual developers and teams. It offers flexibility by connecting to various cloud AI providers or local models.
2. **ProxyAI Private Plugin:** Designed for enterprises with specific security, compliance, or integration needs. This version is distributed privately, connects to organization-approved AI models (often self-hosted), and allows for centralized configuration management. [Learn more about Enterprise options](/enterprise/overview).
**Key Features**:
- Connects to **OpenAI, Anthropic, Google, Mistral, Inception**, and many other providers
- Supports next-edit suggestions, autocompletions, in-editor chat, fast apply, and much more
- First class citizen for offline/local development
- Deep integration with IDE stack (native look and feel)
- Bring your own API key or use ProxyAI Cloud (free tier included)
> Formerly known as CodeGPT

34
docs/pages/privacy.mdx Normal file
View file

@ -0,0 +1,34 @@
---
title: Privacy & Security
description: How ProxyAI handles your data and code.
---
# Privacy & Security
Your privacy and the security of your code are important to us. This page explains how ProxyAI handles your data.
**Your Code and Data Ownership**
Your code always belongs to you. We operate with Zero Data Retention for proprietary code by default, meaning we do not store it on our servers unless you explicitly opt in to specific improvement programs. By default, we do not use your code to train our AI models.
**How We Process Your Data**
Data handling varies depending on the feature you use:
* **Chat & Autocomplete:** When you use Chat or Autocomplete, we first route your input (messages or relevant code context) through our secure backend systems. Then, we send it to the AI model provider you selected (like OpenAI, Anthropic, or the default ProxyAI Cloud service). Responses are routed back through our system to you.
* **Next Edits:** For the Next Edits feature, we send relevant code snippets from your editor directly to an AI model that we host ourselves. These snippets are processed solely to generate suggestions.
**Third-Party Provider Policies**
When you configure ProxyAI to use third-party AI providers (like OpenAI or Anthropic directly with your own API key), their specific data handling policies apply to the data sent to them (including Chat and Autocomplete data). You should review their terms:
* **OpenAI:** May retain prompts for up to 30 days for trust and safety monitoring. Review [OpenAIs enterprise privacy policy](https://openai.com/enterprise-privacy).
* **Anthropic:** May retain prompts if flagged during trust and safety reviews. Consult [Anthropics privacy policy](https://www.anthropic.com/legal/privacy).
**Usage Information and Product Improvement**
To improve ProxyAI, we collect basic, non-identifying telemetry data, such as the number of requests made for different features. We analyze this usage data to enhance the product and prioritize new features.
Separately, you have the option to help us improve our code assistance features. If you choose to opt-in to the setting "Help ProxyAI improve its products by sharing your code inputs and completions," we will collect code snippets you provide to **Next Edits**, along with the suggestions generated. We use this data solely to improve the quality and relevance of these specific features.
**Important:** This opt-in data sharing setting **is disabled by default** and **only applies to Next Edits**. We **never** collect your chat messages for product improvement purposes, regardless of your opt-in preference for code assistance features.

View file

@ -0,0 +1,6 @@
{
"overview": "Overview",
"models": "Models",
"cloud": "Cloud",
"local": "Local"
}

View file

@ -0,0 +1,10 @@
{
"proxyai": "ProxyAI",
"openai": "OpenAI",
"custom": "Custom OpenAI",
"anthropic": "Anthropic",
"google": "Google",
"mistral": "Mistral",
"inception": "Inception",
"azure": { "title": "Azure OpenAI", "display": "hidden" }
}

View file

@ -0,0 +1,41 @@
# Anthropic
Website: https://anthropic.com
## Getting Started
Follow these steps to get started:
import { Steps } from 'nextra/components'
<Steps>
### Create Your Account
First, you'll need an Anthropic account. If you don't have one, [sign up here](https://console.anthropic.com/login).
### Get Your API Key
After signing up, create your API key on the [API Keys page](https://console.anthropic.com/settings/keys). This key is essential for authenticating your requests against the Anthropic API. If you already have a key, simply copy it to your clipboard.
### Configure the Plugin
Next, you'll need to configure the plugin to use the API key, version, and model:
- Navigate to the plugin's settings via **File > Settings/Preferences > Tools > ProxyAI > Providers > Anthropic**.
- Paste your API key into the designated field.
- The plugin automatically sets the `anthropic-version` value. If you want to use older versions, find more information [here](https://docs.anthropic.com/en/api/versioning).
- Select a model for messages and commands from the list below:
| Model | Latest 1P API model name |
| :----- | :----: |
| Claude 3 Opus | claude-3-opus-20240229
| Claude 3 Sonnet | claude-3-sonnet-20240229
| Claude 3 Haiku | claude-3-haiku-20240307
See the full list of available models [here](https://docs.anthropic.com/en/docs/models-overview#claude-3-a-new-generation-of-ai).
- Click `Apply` or `OK` to save your changes.
<br/>
<img alt="animated" src="/images/providers/anthropic-settings.png" />
</Steps>

View file

@ -0,0 +1,38 @@
# Azure OpenAI
Website: https://azure.microsoft.com/en-us/products/ai-services/openai-service
import { Callout } from 'nextra/components'
<Callout type="warning" emoji="⚠️">
Code completions are currently unsupported by Azure OpenAI. To enable this feature, please
configure it manually using the Custom OpenAI provider.
</Callout>
## Getting Started
Follow these steps to get started:
import { Steps } from 'nextra/components'
<Steps>
### Get Your API Key
Azure OpenAI provides two methods for authentication. You can use either API Keys or Microsoft Entra ID.
To obtain your secret key, please refer to [this guide](https://learn.microsoft.com/en-us/azure/api-management/api-management-authenticate-authorize-azure-openai).
### Apply Your API Key
Next, configure the plugin to use the secret key you obtained, along with three additional fields.
- Navigate to the plugin's settings via **File > Settings/Preferences > Tools > ProxyAI > Providers > Azure**.
- Paste your API Key or Microsoft Entra ID into the designated field.
- Fill in the following additional fields:
- **Resource Name**: You can find this on your Azure Cognitive Services page under `Resource Management` → `Resource Management` → `Keys and Endpoints`. It is the first part of the URL provided to you for using the service: "https://**my-resource-name**.openai.azure.com/".
- **Deployment ID**: You can find this in the Azure AI Studio under `Management` → `Deployment`, in the `Deployment Name` column.
- **API Version**: Use the most recent, non-preview version.
- Click `Apply` or `OK` to save your changes.
<br/>
<img alt="animated" src="/images/providers/azure-settings.png"/>
</Steps>

View file

@ -0,0 +1,86 @@
# Custom OpenAI
API reference: https://platform.openai.com/docs/api-reference/chat
ProxyAI works with most OpenAI-compatible cloud providers, including Together.ai, Groq, Anyscale, and others, or you can set up a custom configuration.
## Getting Started
Before you begin, make sure you understand the basics of [REST API](https://www.redhat.com/en/topics/api/what-is-a-rest-api) principles.
import { Steps } from 'nextra/components'
<Steps>
### Chat Completions
In this example, we'll use Groq to power our messages and commands.
- Navigate to the plugin's settings via **File > Settings/Preferences > Tools > ProxyAI > Providers > Custom OpenAI**.
- Choose `Groq` from the Preset template dropdown.
<img alt="animated" src="/images/providers/groq-settings.png" />
- Obtain your key from [Groq's console](https://console.groq.com/keys) and paste it into the designated field.
<img alt="animated" src="/images/providers/groq-api-key.png" />
- Verify that everything is configured correctly and that the connection is successful.
<img alt="animated" src="/images/settings/test-connection.png" />
- Click `Apply` or `OK` to save the changes.
### Code Completions
Groq doesn't provide an LLM that supports fill-in-the-middle (FIM) completions, but you can use StarCoder 16B via the Fireworks API. ProxyAI includes a preset template for Fireworks—just get the API key and add it in the settings field.
<br/>
<img alt="animated" src="/images/providers/fireworks-settings.png" />
</Steps>
## Advanced Request Configuration
The `Headers` and `Body` tabs support structured editing for complex request payloads.
- Add, edit, and remove individual headers and body properties.
- For body properties, choose a value type:
- `String`
- `Placeholder`
- `Number`
- `Boolean`
- `Null`
- `Object` (JSON object)
- `Array` (JSON array)
- Use `Edit JSON` in both tabs to edit the entire headers/body payload as raw JSON.
- JSON input is validated before saving.
## Placeholders
You can use the following placeholders in Custom OpenAI request configs:
- `$OPENAI_MESSAGES`: Replaced with structured OpenAI-format messages (JSON array).
- `$PROMPT`: Replaced with concatenated message content.
- `$CUSTOM_SERVICE_API_KEY`: Replaced with the API key from your Custom OpenAI settings.
## Nested Params Support
Placeholder and API key replacement works recursively, including inside nested objects and arrays in the request body.
This enables payloads like:
```json
{
"model": "my-model",
"payload": {
"prompt_alias": "$PROMPT",
"messages_alias": "$OPENAI_MESSAGES",
"auth": "Bearer $CUSTOM_SERVICE_API_KEY",
"items": [
{
"kind": "prompt",
"value": "$PROMPT"
},
{
"kind": "messages",
"value": "$OPENAI_MESSAGES"
}
]
}
}
```
If ProxyAI sends a non-stream request, any `stream` field (including nested ones) is automatically normalized to `false`.

View file

@ -0,0 +1,7 @@
# Google
Website: https://aistudio.google.com/
## Getting Started
TBD

View file

@ -0,0 +1,48 @@
# Inception
Website: https://inceptionlabs.ai/
Inception powers Mercury 2 and Mercury Edit 2, diffusion LLMs (dLLMs) tuned for fast, consistent code generation and multi-line edits. Unlike token-by-token generation, a dLLM refines drafts across many spans at once, which makes it especially strong at structural changes and predictive edits across files.
In the plugin, Inception uses:
- `mercury-2` as the general-purpose model for workflows such as Chat and Agent
- `mercury-edit-2` for Autocomplete and Next-Edit Suggestions
## Getting Started
Follow these steps to configure ProxyAI with your Inception API key:
import { Steps } from 'nextra/components'
<Steps>
### Create Your Account
If you dont already have one, create an account at [Inception](https://platform.inceptionlabs.ai/.).
### Get Your API Key
From your Inception dashboard, create an API key and copy it to your clipboard.
### Apply Your API Key
Configure the ProxyAI plugin to use Inception:
- Go to **File > Settings/Preferences > Tools > ProxyAI > Providers > Inception**.
- Paste your API key into the designated field.
- Click `Apply` or `OK` to save your changes.
<br/>
</Steps>
## How to Configure
<video
style={{ width: '100%', borderRadius: 12 }}
src="https://www.tryproxy.io/videos/mercury-coder-1.webm"
controls
muted
playsInline
preload="metadata"
>
Your browser does not support the video tag.
</video>

View file

@ -0,0 +1,36 @@
# Mistral
Website: https://mistral.ai
ProxyAI supports Mistral for chat and coding workflows, including the Codestral family for code-focused tasks.
## Getting Started
Follow these steps to configure ProxyAI with your Mistral API key:
import { Steps } from 'nextra/components'
<Steps>
### Create Your Account
If you dont already have one, create an account at the [Mistral Console](https://console.mistral.ai/).
### Get Your API Key
From the Mistral Console, create an API key and copy it to your clipboard.
### Apply Your API Key
Configure the ProxyAI plugin to use Mistral:
- Go to **File > Settings/Preferences > Tools > ProxyAI > Providers > Mistral**.
- Paste your API key into the designated field.
- Click `Apply` or `OK` to save your changes.
<br/>
### Choose a Model
- For general chat: select a Mistral chat model (e.g., `mistral-large-latest`).
- For code tasks and autocomplete: select `codestral`.
</Steps>

View file

@ -0,0 +1,32 @@
# OpenAI
Website: https://openai.com
ProxyAI offers seamless integration with OpenAI, supporting all the latest models, including image input.
## Getting Started
Follow these steps to get started:
import { Steps } from 'nextra/components'
<Steps>
### Create Your Account
First, you'll need an OpenAI account. If you don't have one, [sign up here](https://platform.openai.com/signup).
### Get Your API Key
After signing up, create your API key on the [API Keys](https://platform.openai.com/api-keys) page. This key is necessary for authenticating your requests to the OpenAI API. If you already have a key, copy it to your clipboard.
### Apply Your API Key
Now, configure the plugin to use your API key:
- Navigate to the plugin's settings via **File > Settings/Preferences > Tools > ProxyAI > Providers > OpenAI**.
- Paste your API key into the designated field.
- Click `Apply` or `OK` to save your changes.
<br/>
<img alt="animated" src="/images/providers/openai-settings.png" />
</Steps>

View file

@ -0,0 +1,42 @@
# ProxyAI
Website: https://tryproxy.io
ProxyAI is the default cloud provider that powers this plugin. By creating a [free account](https://tryproxy.io/signin), you can access advanced AI models to enhance your coding experience.
## Getting Started
Follow these simple steps to get started:
import { Steps } from 'nextra/components'
<Steps>
### Create Your Free Account (optional)
ProxyAI offers two different tiers: Free, and Individual.
- **Free** - Token-limited access to ProxyAI features and selected managed models.
- **Individual** - Higher limits and access to the full managed ProxyAI catalog.
### Get Your API Key
You can find your API key on your [account page](https://tryproxy.io/account). Scroll down to "Your API Keys" and click the Copy icon next to your key. This key is essential for authenticating your requests with the ProxyAI API. If no key is provided, requests will default to the anonymous tier.
<br />
<img alt="animated" src="/images/settings/api-key.png" />
### Apply Your API Key
To configure the plugin with your API key:
- Navigate to the plugin's settings via **File > Settings/Preferences > Tools > ProxyAI > Providers > ProxyAI**.
- Paste your API key into the designated field.
- Click `Apply` or `OK` to save the changes.
<br/>
<img alt="animated" src="/images/settings/codegpt-settings.png" />
</Steps>
## Models
ProxyAI Cloud gives you access to the plugin's managed model catalog. You can see the full per-provider breakdown on our [Models page](/models).

View file

@ -0,0 +1,4 @@
{
"ollama": "Ollama",
"llama": "LLaMA C/C++"
}

View file

@ -0,0 +1,28 @@
# LLaMA C/C++
Website: https://github.com/ggerganov/llama.cpp
The main goal of `llama.cpp` is to run the LLaMA model using 4-bit integer quantization on a MacBook (locally). This is currently supported only on Linux and MacOS.
## Getting Started
import { Steps } from 'nextra/components'
<Steps>
### Select the Model
Choose the appropriate model based on your hardware capabilities from the provided list. Click `Download Model` to start the download. A progress bar will show the download progress.
### Start the Server
Once the model is downloaded, click `Start Server` to initiate the server. A status message will indicate that the server is starting.
### Apply Settings
With the server running, you can change settings, then click `Apply` or `OK` save your settings and start using the plugin.
</Steps>
<img alt="animated" src="/images/providers/llama-settings.png"/>
> **Note**: If you're already running a server and wish to configure the plugin against that, then simply select the
> port and click `Apply` or `OK`.

View file

@ -0,0 +1,43 @@
# Ollama
Website: https://ollama.ai
Ollama enables you to run open-source large language models, such as Llama 3, on your local machine.
## Getting Started
Follow these steps to get started:
import { Steps } from 'nextra/components'
<Steps>
### Download the Client
First, download the Ollama client if you don't already have it. You can [download it here](https://ollama.com/download).
### Run Your Model
Open terminal and run the following command:
```
ollama run codellama
```
This command will download the model (if it doesn't already exist) and run it. This step is necessary before using the model in the plugin.
### Configure the Plugin
Next, connect Ollama with the plugin:
- Navigate to the plugin's settings via **File > Settings/Preferences > Tools > ProxyAI >
Providers > Ollama (Local)**.
- Click `Refresh Models` to sync all Ollama models with the plugin.
- Optionally, choose the appropriate FIM template for code completions. Before enabling code completions, ensure that the model supports fill-in-the-Middle (FIM).
- Click `Apply` or `OK` to save your changes.
<br/>
<img alt="animated" src="/images/providers/ollama-settings.png"/>
</Steps>
## Integration with DeepSeek R1
Follow [this guide](https://meyer-laurent.com/run-deepseek-r1-locally-mac-mini-pycharm) to set up DeepSeek R1 locally on a Mac. This guide covers installing ProxyAI, configuring Ollama, and using a local Large Language Model for secure, AI-assisted coding without relying on public LLMs.

View file

@ -0,0 +1,76 @@
---
title: Available Models
description: Learn which model catalogs the plugin currently exposes for ProxyAI, Inception, and the other built-in providers.
---
# Models
ProxyAI connects you to powerful large language models (LLMs) for chat and code generation.
## Selecting a Model
You can choose your preferred model in two ways:
### From the Chat Window:
Use the model dropdown in the Chat or Agent toolwindow to switch the active model for the current conversation. This is the fastest way to try a different model while you work.
<video
src="https://proxyai-assets.s3.eu-central-1.amazonaws.com/videos/selecting-model-dropdown.mp4"
alt="Selecting a model using the dropdown in the chat window"
width="1200"
height="800"
className="nx-rounded-lg nx-my-4"
autoPlay
muted
loop
/>
### From Settings:
Go to **Settings/Preferences > Tools > ProxyAI > Models** to manage model selection per feature. From this page, you can configure separate models for Chat, Agent, Autocomplete, Next-Edit Suggestions, and the other model-backed features, depending on which providers you have enabled.
## Built-In Model Catalogs
The tables below reflect the models currently exposed by ProxyAI Cloud. Models for `Ollama`, `llama.cpp`, `Custom OpenAI`, and other BYOK providers are determined by the configured provider and may change independently, so for those providers you should check the model picker in ProxyAI settings for the current list.
### Agent & Chat Models
| Model | Provider | Free | Pro |
|---|---|:---:|:---:|
| `auto` | Fireworks | ✅ | ✅ |
| `gpt-5.4` | OpenAI | | ✅ |
| `gpt-5.3-codex` | OpenAI | | ✅ |
| `gpt-5-mini` | OpenAI | ✅ | ✅ |
| `claude-opus-4-6` | Anthropic | | ✅ |
| `claude-sonnet-4-6` | Anthropic | | ✅ |
| `claude-haiku-4-5` | Anthropic | ✅ | ✅ |
| `gemini-3.1-pro-preview` | Google | | ✅ |
| `gemini-3-flash-preview` | Google | ✅ | ✅ |
`auto` is a dynamic selection and may change over time. ProxyAI chooses the model automatically based on the best quality-to-price ratio. It currently routes through Fireworks and uses `GLM-5`.
### Code Models
| Model | Provider | Free | Pro | Type |
|---|---|:---:|:---:|---|
| `mercury-edit-2` | Inception | ✅ | ✅ | [Tab](/features/tab) |
*Note: Model availability may change over time. When using your own API key, availability depends on the provider's offerings.*
## Context Windows
A model's context window defines how much information (measured in tokens) it can process at once, including both your inputs and the model's responses.
- Managed providers such as ProxyAI Cloud can apply product-level limits in addition to the underlying model limits.
- Bring-your-own-key providers follow the limits of the selected upstream model and API.
- Local and custom providers depend on the model and server configuration you run.
- Large files and long conversations still benefit from keeping context focused, even when a model advertises a large context window.
For complex or distinct tasks, regardless of the provider, starting a new chat session can improve performance and relevance.
## Model Hosting and Privacy
All **ProxyAI Cloud** models are hosted by their original providers (OpenAI, Anthropic, etc.), trusted partners, or ProxyAI directly, primarily on US-based infrastructure.
When connecting to other providers or using local models, hosting location and privacy considerations follow those specific services or your local environment settings.

View file

@ -0,0 +1,26 @@
---
title: Provider Overview
description: Learn how ProxyAI connects to different AI services (providers) to power its features.
---
# Provider Overview
ProxyAI connects to different AI services (providers) to power its features. Your choice of provider determines which Large Language Model (LLM) works behind the scenes in your IDE.
## ProxyAI Cloud
Our cloud service offers the simplest way to get started. You'll get access to carefully selected powerful AI models, including some exclusive options. Setup is minimal - just sign up and add an API key.
## Other Cloud Providers
Connect directly to major AI platforms like OpenAI, Anthropic, or Google. This gives you flexibility to use specific models from these services with your own API keys and accounts.
## Local Models (Ollama, Llama.cpp)
Run LLMs directly on your machine using tools like Ollama or Llama.cpp. Your code and prompts never leave your computer, giving you complete privacy and control. This works well for offline use or sensitive data, but requires more setup and a capable computer.
## Custom OpenAI Compatible
Connect to services that implement the OpenAI API. This works with alternative cloud providers (Groq, Anyscale, Together AI) or private LLM deployments that follow the OpenAI API structure.
Find detailed setup instructions for each provider type in the following sections.

View file

@ -0,0 +1,4 @@
{
"run-deepseek-r1-locally-mac-mini-pycharm": "Run Deepseek R1 locally on a Mac Mini in PyCharm",
"deploy-deepseek-r1-on-runpod-and-use-it-in-pycharm": "Deploy Deepseek R1 on a RunPod and use it in PyCharm"
}

View file

@ -0,0 +1,9 @@
# Deploy Deepseek R1 on a RunPod and use it in PyCharm
*By Laurent Meyer*
---
Deploy DeepSeek-R1 on Runpod Serverless with Docker & vLLM—run your own private local LLM that processes RAG data, auto-scales, and shuts down when idle.
[Read the full article →](https://meyer-laurent.com/deploying-deepseek-r1-on-runpod-serverless-and-use-it-in-pycharm)

View file

@ -0,0 +1,9 @@
# Run Deepseek R1 locally on a Mac Mini in PyCharm
*By Laurent Meyer*
---
Discover how to enhance your development workflow and protect proprietary code by setting up DeepSeek R1 locally on a Mac. This guide covers installing ProxyAI, configuring Ollama, and using a local Large Language Model for secure, AI-assisted coding without relying on public LLMs.
[Read the full article →](https://meyer-laurent.com/run-deepseek-r1-locally-mac-mini-pycharm)

2847
docs/pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Some files were not shown because too many files have changed in this diff Show more