minovative-mind-cli 2.14.0 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -139,7 +139,7 @@ Background tasks automatically route to dedicated auxiliary models with native `
|
|
|
139
139
|
- **History Summarizer**: `Gemini 3.7 Flash` (Temp 0.2, `MINIMAL` invariant) — 3-part structured conversation compression preserving recent history.
|
|
140
140
|
- **Commit Generator**: `Gemini 3.5 Flash Lite` (`MINIMAL` invariant) — conventional commit message synthesis.
|
|
141
141
|
- **Micro-Agent Safety Invariants & Normalization**: All internal background micro-agents enforce a hardcoded `MINIMAL` invariant to guarantee zero-latency execution without conversational token burn. The generation pipeline's `normalizeGenerationConfig` automatically strips unsupported internal minimal payloads before dispatching to Google's API, preventing `400 Bad Request` schema errors while ensuring user-selected thinking levels never pollute lightweight background micro-agents.
|
|
142
|
-
- **Subsystem Reasoning Budgets**: Orchestrated subsystems maintain tailored reasoning allocations: **PM Kernel Task Decomposition** operates at `HIGH` reasoning depth for optimal topological dependency sorting; **Investigation & Context Sub-Agents**
|
|
142
|
+
- **Subsystem Reasoning Budgets**: Orchestrated subsystems maintain tailored reasoning allocations: **PM Kernel Task Decomposition** operates at `HIGH` reasoning depth for optimal topological dependency sorting; **Investigation & Context Sub-Agents** dynamically inherit your configured model thinking level (default: `MEDIUM`) for comprehensive repository reconnaissance; **Syntax Repair Agents** operate at `LOW` reasoning depth for precise AST corrections; and **Execution Sub-Agents / Main Agent** dynamically inherit your configured model thinking level (`LOW` | `MEDIUM` | `HIGH`).
|
|
143
143
|
|
|
144
144
|
> You pay for auxiliary model background AI operations and for your selected model during chat and code execution. Use `/debug` to inspect real-time routing diagnostics.
|
|
145
145
|
|
|
@@ -173,6 +173,7 @@ Minovative Mind CLI features real-time, interactive **@ Context Mentions** direc
|
|
|
173
173
|
### Interactive Autocomplete & Keyboard Navigation
|
|
174
174
|
|
|
175
175
|
When typing `@`, the interactive terminal autocomplete popup immediately renders:
|
|
176
|
+
|
|
176
177
|
- **10-Option Pagination**: Displays up to 10 ranked suggestions per page with dynamic page indexing `(1/10)`.
|
|
177
178
|
- **Cyan Navigation Helper**: Highlights the action footer in light blue (`Tab to insert • ↑/↓ navigate • Esc dismiss`) for clear guidance.
|
|
178
179
|
- **Keyboard Controls**:
|
|
@@ -183,25 +184,26 @@ When typing `@`, the interactive terminal autocomplete popup immediately renders
|
|
|
183
184
|
|
|
184
185
|
### Supported Mention Types
|
|
185
186
|
|
|
186
|
-
| Mention Syntax
|
|
187
|
-
|
|
|
188
|
-
| `@<path>` or `@file:<path>`
|
|
189
|
-
| `@<path>:<start>-<end>`
|
|
190
|
-
| `@symbol:<name>` or `@#<name>`
|
|
191
|
-
| `@symbol:<path>:<name>`
|
|
192
|
-
| `@git:diff` or `@diff`
|
|
193
|
-
| `@git:staged`
|
|
194
|
-
| `@git:status`
|
|
195
|
-
| `@git:branch`
|
|
196
|
-
| `@git:log`
|
|
197
|
-
| `@diagnostics` / `@problems` / `@errors` | `[diag]` / `[prob]` | **Diagnostics**
|
|
198
|
-
| `@terminal` / `@console`
|
|
199
|
-
| `@<alias>/<path>`
|
|
200
|
-
| `@<alias>`
|
|
187
|
+
| Mention Syntax | Category Badge | Type | What it Resolves & Injects |
|
|
188
|
+
| :--------------------------------------- | :------------------ | :----------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
189
|
+
| `@<path>` or `@file:<path>` | `[file]` | **File** | Injects the complete content of a workspace file (e.g. `@src/index.ts` or `@file:package.json`). |
|
|
190
|
+
| `@<path>:<start>-<end>` | `[lines]` | **Line Range Slicing** | Surgically slices and injects only the specified line numbers (e.g. `@src/utils/config.ts:10-50`), saving tokens. |
|
|
191
|
+
| `@symbol:<name>` or `@#<name>` | `[sym]` | **AST Symbol** | Injects exact definitions of functions, classes, interfaces, types, methods, or structs (e.g. `@symbol:getUser` or `@#AuthService`) using polyglot AST extraction. |
|
|
192
|
+
| `@symbol:<path>:<name>` | `[sym]` | **Scoped Symbol** | Injects a specific symbol definition directly from a designated source file (e.g. `@symbol:src/services/auth.ts:validateToken`). |
|
|
193
|
+
| `@git:diff` or `@diff` | `[git]` | **Git Diff** | Injects the active unstaged working tree diff. |
|
|
194
|
+
| `@git:staged` | `[git]` | **Git Staged** | Injects currently staged git changes (`git diff --staged`). |
|
|
195
|
+
| `@git:status` | `[git]` | **Git Status** | Injects the current branch state and working tree status (`git status --short`). |
|
|
196
|
+
| `@git:branch` | `[git]` | **Git Branch** | Injects the current active Git branch and upstream tracking info. |
|
|
197
|
+
| `@git:log` | `[git]` | **Git Commit Log** | Injects the recent commit history (last 10 commits with hashes, authors, and messages). |
|
|
198
|
+
| `@diagnostics` / `@problems` / `@errors` | `[diag]` / `[prob]` | **Diagnostics** | Injects active compiler, linter, or syntax error diagnostics. |
|
|
199
|
+
| `@terminal` / `@console` | `[term]` | **Terminal Context** | Injects recent terminal environment context, shell environment, and command execution state. |
|
|
200
|
+
| `@<alias>/<path>` | `[ws]` | **Cross-Workspace File** | Injects file contents from registered external workspaces (e.g. `@backend/src/routes.ts` or `@frontend/src/App.tsx`). |
|
|
201
|
+
| `@<alias>` | `[ws]` | **Workspace Summary** | Injects configuration, manifest overview, and path details for a registered external workspace. |
|
|
201
202
|
|
|
202
203
|
### Visual Terminal Indicators & Status Tracking
|
|
203
204
|
|
|
204
205
|
When a prompt with `@` context mentions is submitted, the CLI provides real-time, high-contrast visual confirmation indicators in the terminal:
|
|
206
|
+
|
|
205
207
|
- **Success Indicators (`✔`)**: High-contrast green checkmark with dim status summary confirming successful extraction (e.g. `✔ Context @src/index.ts:1-25 (lines 1-25, 420 chars)`, `✔ Context @symbol:startServer (src/index.ts, 12 lines)`, `✔ Context @git:status (short status, clean)`, `✔ Context @diagnostics (syntax scan clean)`, `✔ Context @terminal (Darwin arm64, node v20.x)`, `✔ Context @backend (external workspace)`).
|
|
206
208
|
- **Failure Indicators (`✖`)**: Clear red indicator with explicit error reasoning when resolution fails (e.g. `✖ Context @missing.ts (File does not exist)`, `✖ Context @symbol:unknownFunc (Could not find declaration for symbol)`).
|
|
207
209
|
- **Structured Metadata Status Tracking**: Every resolved mention produces a rich `metadata` envelope (capturing line counts, char counts, symbol kind, git diff stats, and syntax scan metrics) powering both visual indicators and token-budgeted prompt injection.
|
|
@@ -15,7 +15,7 @@ import { readPaste } from '../../utils/paste.js';
|
|
|
15
15
|
import { setApprovalMode, getApprovalMode, isSubAgentsEnabled, setSubAgentsEnabled } from '../agent-tools.js';
|
|
16
16
|
import { ProxyClient, getAndResetTurnUsage } from '../proxyClient.js';
|
|
17
17
|
import { checkByokSubscription } from '../auth.js';
|
|
18
|
-
import { GEMINI_MODELS, isByokEnabled } from '../../utils/config.js';
|
|
18
|
+
import { GEMINI_MODELS, isByokEnabled, DEFAULT_MODEL_THINKING_LEVELS } from '../../utils/config.js';
|
|
19
19
|
import { loadCredentials, updateCredentialField } from '../../utils/credentialStore.js';
|
|
20
20
|
import { getGlobalActiveModel, setGlobalActiveModel, getModelThinkingLevel, setModelThinkingLevel, ProxyChatSession } from '../ai.js';
|
|
21
21
|
import { loadUserProfile, deleteSideNote, clearUserProfile, getUserProfilePath } from '../userProfileService.js';
|
|
@@ -139,40 +139,49 @@ export async function handleSlashCommand(command, context) {
|
|
|
139
139
|
if (!p.isCancel(selectedModel)) {
|
|
140
140
|
chat.setModel(selectedModel);
|
|
141
141
|
setGlobalActiveModel(selectedModel);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
message: `Configure Thinking Level for ${pc.cyan(selectedModel)} (Current: ${pc.cyan(activeModelThinking)})`,
|
|
145
|
-
initialValue: activeModelThinking,
|
|
146
|
-
options: [
|
|
147
|
-
{
|
|
148
|
-
value: 'LOW',
|
|
149
|
-
label: 'Low',
|
|
150
|
-
hint: 'Quick reasoning with low token overhead',
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
value: 'MEDIUM',
|
|
154
|
-
label: 'Medium',
|
|
155
|
-
hint: 'Balanced reasoning for everyday coding and debugging',
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
value: 'HIGH',
|
|
159
|
-
label: 'High',
|
|
160
|
-
hint: 'Deepest reasoning for complex architectural tasks',
|
|
161
|
-
},
|
|
162
|
-
],
|
|
163
|
-
});
|
|
164
|
-
if (!p.isCancel(selectedThinking)) {
|
|
165
|
-
setModelThinkingLevel(selectedModel, selectedThinking);
|
|
142
|
+
if (selectedModel === 'auto') {
|
|
143
|
+
const defaultAutoThinking = DEFAULT_MODEL_THINKING_LEVELS[GEMINI_MODELS.AUTO] || 'MEDIUM';
|
|
166
144
|
if (typeof chat.setThinkingLevel === 'function') {
|
|
167
|
-
chat.setThinkingLevel(
|
|
145
|
+
chat.setThinkingLevel(defaultAutoThinking);
|
|
168
146
|
}
|
|
169
|
-
p.log.success(`Model successfully switched to ${pc.cyan(
|
|
147
|
+
p.log.success(`Model successfully switched to ${pc.cyan('Auto (Smart Routing & Reasoning)')}`);
|
|
170
148
|
}
|
|
171
149
|
else {
|
|
172
|
-
|
|
173
|
-
|
|
150
|
+
const activeModelThinking = getModelThinkingLevel(selectedModel);
|
|
151
|
+
const selectedThinking = await p['select']({
|
|
152
|
+
message: `Configure Thinking Level for ${pc.cyan(selectedModel)} (Current: ${pc.cyan(activeModelThinking)})`,
|
|
153
|
+
initialValue: activeModelThinking,
|
|
154
|
+
options: [
|
|
155
|
+
{
|
|
156
|
+
value: 'LOW',
|
|
157
|
+
label: 'Low',
|
|
158
|
+
hint: 'Quick reasoning with low token overhead',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
value: 'MEDIUM',
|
|
162
|
+
label: 'Medium',
|
|
163
|
+
hint: 'Balanced reasoning for everyday coding and debugging',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
value: 'HIGH',
|
|
167
|
+
label: 'High',
|
|
168
|
+
hint: 'Deepest reasoning for complex architectural tasks',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
});
|
|
172
|
+
if (!p.isCancel(selectedThinking)) {
|
|
173
|
+
setModelThinkingLevel(selectedModel, selectedThinking);
|
|
174
|
+
if (typeof chat.setThinkingLevel === 'function') {
|
|
175
|
+
chat.setThinkingLevel(selectedThinking);
|
|
176
|
+
}
|
|
177
|
+
p.log.success(`Model successfully switched to ${pc.cyan(selectedModel)} with thinking level ${pc.cyan(selectedThinking)}`);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
if (typeof chat.setThinkingLevel === 'function') {
|
|
181
|
+
chat.setThinkingLevel(activeModelThinking);
|
|
182
|
+
}
|
|
183
|
+
p.log.success(`Model successfully switched to ${pc.cyan(selectedModel)}`);
|
|
174
184
|
}
|
|
175
|
-
p.log.success(`Model successfully switched to ${pc.cyan(selectedModel)}`);
|
|
176
185
|
}
|
|
177
186
|
}
|
|
178
187
|
return { shouldContinue: true };
|
package/dist/services/ai.js
CHANGED
|
@@ -757,13 +757,14 @@ export function createContextAgentSession() {
|
|
|
757
757
|
let model = contextModelOverride || getGlobalActiveModel();
|
|
758
758
|
if (model === 'auto' || model.includes('claude'))
|
|
759
759
|
model = GEMINI_MODELS.FLASH;
|
|
760
|
+
const thinkingLevel = getModelThinkingLevel(model);
|
|
760
761
|
return new ProxyChatSession(model, CONTEXT_SYSTEM_INSTRUCTION.replace('{{MULTI_WORKSPACE_BLOCK}}', getMultiWorkspaceBlock()), contextTools, {
|
|
761
762
|
maxOutputTokens: MAX_OUTPUT_TOKENS,
|
|
762
763
|
temperature: contextTempOverride !== null ? contextTempOverride : 1,
|
|
763
764
|
topP: 0.95,
|
|
764
765
|
topK: 40,
|
|
765
766
|
thinkingConfig: {
|
|
766
|
-
thinkingLevel
|
|
767
|
+
thinkingLevel,
|
|
767
768
|
},
|
|
768
769
|
}, {
|
|
769
770
|
functionCallingConfig: {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* components" + "Auth UI styling") and produces an `InvestigationResult` containing
|
|
12
12
|
* the files it found and a summary of its findings.
|
|
13
13
|
*/
|
|
14
|
-
import { ProxyChatSession, getContextToolDeclarations, getGlobalActiveModel, getMultiWorkspaceBlock } from '../ai.js';
|
|
14
|
+
import { ProxyChatSession, getContextToolDeclarations, getGlobalActiveModel, getModelThinkingLevel, getMultiWorkspaceBlock } from '../ai.js';
|
|
15
15
|
import { GEMINI_MODELS, MAX_OUTPUT_TOKENS } from '../../utils/config.js';
|
|
16
16
|
import { CONTEXT_SYSTEM_INSTRUCTION } from '../../utils/systemPrompts.js';
|
|
17
17
|
import { debugLog } from '../../utils/logger.js';
|
|
@@ -54,13 +54,14 @@ export class InvestigationAgentRunner {
|
|
|
54
54
|
let model = getGlobalActiveModel();
|
|
55
55
|
if (model === GEMINI_MODELS.AUTO || model.includes('claude'))
|
|
56
56
|
model = GEMINI_MODELS.FLASH;
|
|
57
|
+
const thinkingLevel = getModelThinkingLevel(model);
|
|
57
58
|
this.chat = new ProxyChatSession(model, this.buildSystemInstruction(), getContextToolDeclarations(), {
|
|
58
59
|
maxOutputTokens: MAX_OUTPUT_TOKENS,
|
|
59
60
|
temperature: 1,
|
|
60
61
|
topP: 0.95,
|
|
61
62
|
topK: 40,
|
|
62
63
|
thinkingConfig: {
|
|
63
|
-
thinkingLevel
|
|
64
|
+
thinkingLevel,
|
|
64
65
|
},
|
|
65
66
|
}, {
|
|
66
67
|
functionCallingConfig: {
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED