Commit 31c01ba
authored
ADFA-4589 | Add suite of AI-powered developer plugins for Code on the Go (#41)
* feat: add code-suggestions plugin
Inline ghost-text AI code completions; restored onto main's split layout.
* feat: add speech-to-text plugin
Voice-to-code speech input; restored onto main's split layout.
* feat: add vector-search plugin
Semantic code search via embeddings; restored onto main's split layout.
* fix(ai-core): load the user-selected model instead of newest .gguf in Downloads
Stream the selected content:// URI into a private cache file; drop the Downloads fallback that silently loaded the wrong model (ADFA-4388).
* fix(ai-core): reject embedding models on the chat path instead of crashing
Add GgufModelInspector + UserFeedback; classify the .gguf and throw IncompatibleModelException before native decode SIGABRTs the IDE (ADFA-4388).
* fix(ai-assistant): fetch live Gemini models and drop retired gemini-1.5-flash
listModels now queries the live v1beta ListModels catalog (generateContent-only); default bumped to gemini-2.5-flash and retired models migrated on load.
* fix(ai-assistant): settings dialog UX and backend selection bugs
Readable settings title; real model name shown and persisted across reopen; and the chat backend indicator + routing now follow the selected backend, refreshing when the settings dialog closes.
* fix(code-suggestions-plugin): LLM service lookup
* feat(vector-search): wire semantic project search, also fixed code-suggestion-plugin and vector-search-plugin names
* refactor: Address AI plugin review feedback
- Add version ranges, README/docs, and tiered help coverage for AI plugins
- Cancel plugin coroutine scopes during disposal
- Move Gemini listModels API key from URL query to x-goog-api-key header
- Document Gemini API key storage tradeoff and remove misleading encryption note
- Update AI plugin review status with verification results
* fix(ai-core): shut down Llm-RunLoop executor on plugin dispose
LLamaAndroid's single-thread run-loop executor was never shut down, so the non-daemon Llm-RunLoop thread outlived the plugin and pinned its classloader. Expose LLamaAndroid.shutdown() (closes the ExecutorCoroutineDispatcher) and call it from LocalLlmBackend.close() after the model unload completes. Regenerate the prebuilt llama AAR so the new API is visible to the plugin build.
* refactor: add icons day and night for AI plugins
* fix(ai-assistant): surface LLM-not-configured feedback and follow IDE light/dark theme
- Agent tab now shows an error bubble + Snackbar ("Open Settings...") when no local model or Gemini key is configured, instead of silently doing nothing.
- Theme UI to the IDE day/night setting: route inflation through PluginFragmentHelper.getPluginInflater, make PluginTheme a Material3 DayNight theme, add values-night/ colors, and replace hardcoded hex with @color refs.
- Fix AI Settings toolbar contrast (colorOnPrimary title/icon on the primary bar).
* refactor: extract hardcoded strings to strings.xml and improve user feedback
* fix(ai-plugins): resolve PR review findings across the AI plugin suite
llama run-loop now recreates after per-plugin dispose, embedding-dim guard, synced suggestion cache, capped file walk, fallback-safe Gemini model migration and vector search indexes in the background (bounded wait)
* fix(ai-plugins): honor selected backend and resolve Gemini OkHttp crash
- Resolve backend via "auto" in ai-core
- Migrate Gemini to REST instead of the google-genai SDK to fix OkHttp 3.x conflict
- Implement context-aware suggestion cache key
- Add STT raw-transcript fallback and vector-search roots
- Refactor code: remove unused code and permissions
- Fix version numbers and update plugins documentation
* chore(ai-plugins): align IDE version range, docs, and icons across AI suite
Refresh manifests, README/HTML docs, and day/night icons for ai-core, ai-assistant, code-suggestions, speech-to-text, and vector-search; update PathGuard and search handler.
* fix(ai-core): format local-LLM prompts as ChatML so generation isn't empty
* refactor: update docs for the tab key action and improve prompt for suggestions generation1 parent a61431e commit 31c01ba
99 files changed
Lines changed: 6397 additions & 579 deletions
File tree
- ai-assistant
- src/main
- assets
- docs
- kotlin/com/itsaky/androidide/plugins/aiassistant
- adapters
- fragments
- tool/handlers
- viewmodel
- res
- layout
- values-night
- values
- ai-core
- libs/v8
- llama-impl/src/main/java/android/llama/cpp
- src
- main
- assets
- docs
- kotlin/com/itsaky/androidide/plugins/aicore
- test/kotlin/com/itsaky/androidide/plugins/aicore
- code-suggestions-plugin
- gradle/wrapper
- src/main
- assets
- docs
- kotlin/com/itsaky/androidide/plugins/codesuggestions
- res/values
- speech-to-text-plugin
- gradle/wrapper
- src/main
- assets
- docs
- kotlin/com/itsaky/androidide/plugins/stt
- res
- drawable
- values
- vector-search-plugin
- gradle/wrapper
- src/main
- assets
- docs
- kotlin/com/itsaky/androidide/plugins/vectorsearch
- res/values
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
28 | 31 | | |
29 | 32 | | |
30 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
59 | 75 | | |
60 | 76 | | |
61 | 77 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
58 | | - | |
59 | | - | |
| 57 | + | |
| 58 | + | |
60 | 59 | | |
61 | 60 | | |
62 | 61 | | |
| |||
71 | 70 | | |
72 | 71 | | |
73 | 72 | | |
74 | | - | |
75 | | - | |
76 | 73 | | |
77 | 74 | | |
78 | 75 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | 67 | | |
72 | 68 | | |
73 | 69 | | |
| |||
Loading
Loading
Lines changed: 57 additions & 28 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
| |||
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
23 | 29 | | |
24 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
25 | 36 | | |
26 | 37 | | |
27 | 38 | | |
| |||
87 | 98 | | |
88 | 99 | | |
89 | 100 | | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | 101 | | |
115 | 102 | | |
116 | 103 | | |
| |||
120 | 107 | | |
121 | 108 | | |
122 | 109 | | |
123 | | - | |
| 110 | + | |
124 | 111 | | |
125 | 112 | | |
126 | 113 | | |
| |||
147 | 134 | | |
148 | 135 | | |
149 | 136 | | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
150 | 181 | | |
151 | 182 | | |
152 | 183 | | |
| |||
229 | 260 | | |
230 | 261 | | |
231 | 262 | | |
232 | | - | |
233 | | - | |
234 | 263 | | |
235 | 264 | | |
236 | 265 | | |
| |||
Lines changed: 2 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | 30 | | |
32 | 31 | | |
33 | 32 | | |
| |||
84 | 83 | | |
85 | 84 | | |
86 | 85 | | |
87 | | - | |
88 | | - | |
| 86 | + | |
| 87 | + | |
89 | 88 | | |
90 | 89 | | |
91 | 90 | | |
| |||
0 commit comments