minovative-mind-cli 1.5.0 → 1.5.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/dist/commands/chat.js +3 -3
- package/dist/services/agent/slashCommands.js +7 -7
- package/dist/services/agent.js +13 -2
- package/dist/utils/logo.d.ts +2 -0
- package/dist/utils/logo.js +31 -10
- package/oclif.manifest.json +1 -1
- package/package.json +2 -1
package/dist/commands/chat.js
CHANGED
|
@@ -6,7 +6,7 @@ import * as p from '@clack/prompts';
|
|
|
6
6
|
import pc from 'picocolors';
|
|
7
7
|
import { startAgentLoop } from '../services/agent.js';
|
|
8
8
|
import { getAuthorizedIdToken, login } from '../services/auth.js';
|
|
9
|
-
import { printLogo } from '../utils/logo.js';
|
|
9
|
+
import { printLogo, brandBg, brandFg } from '../utils/logo.js';
|
|
10
10
|
import { updateWorkspaceStatus } from '../services/workspace.js';
|
|
11
11
|
/**
|
|
12
12
|
* @class DefaultCommand
|
|
@@ -52,7 +52,7 @@ Chat Controls:
|
|
|
52
52
|
const pkg = JSON.parse(await fs.promises.readFile(new URL('../../package.json', import.meta.url), 'utf8'));
|
|
53
53
|
updateNotifier({ pkg }).notify();
|
|
54
54
|
printLogo();
|
|
55
|
-
p.intro(`${
|
|
55
|
+
p.intro(`${brandBg(' Minovative Mind CLI ')} ${pc.dim('v' + this.config.version)}`);
|
|
56
56
|
// Check authentication
|
|
57
57
|
let idToken = await getAuthorizedIdToken();
|
|
58
58
|
if (!idToken) {
|
|
@@ -65,7 +65,7 @@ Chat Controls:
|
|
|
65
65
|
// Re-fetch token after successful login
|
|
66
66
|
idToken = await getAuthorizedIdToken();
|
|
67
67
|
}
|
|
68
|
-
p.log.info(`${pc.dim('Workspace:')} ${
|
|
68
|
+
p.log.info(`${pc.dim('Workspace:')} ${brandFg(workspaceRoot)}`);
|
|
69
69
|
p.log.info(`${pc.dim('Commands:')} Type ${pc.yellow('/')} to open the command menu and "${pc.yellow('stop')}" to stop the ai generation. Type ${pc.yellow('exit')} to leave.`);
|
|
70
70
|
// Update workspace status in the background
|
|
71
71
|
if (idToken) {
|
|
@@ -7,7 +7,7 @@ import { promisify } from 'node:util';
|
|
|
7
7
|
import { toggleDebugMode } from '../../utils/logger.js';
|
|
8
8
|
import { changeLogger } from '../changeLogger.js';
|
|
9
9
|
import { chatHistoryService } from '../chatHistoryService.js';
|
|
10
|
-
import { printLogo } from '../../utils/logo.js';
|
|
10
|
+
import { printLogo, brandBg, brandFg } from '../../utils/logo.js';
|
|
11
11
|
import { readPaste } from '../../utils/paste.js';
|
|
12
12
|
import { setApprovalMode, getApprovalMode } from '../agent-tools.js';
|
|
13
13
|
import { ProxyChatSession } from '../ai.js';
|
|
@@ -43,8 +43,8 @@ export async function handleSlashCommand(command, context) {
|
|
|
43
43
|
chat.clearHistory();
|
|
44
44
|
process.stdout.write('\x1B[2J\x1B[3J\x1B[H'); // Hard clear screen and scrollback
|
|
45
45
|
printLogo();
|
|
46
|
-
p.intro(`${
|
|
47
|
-
p.log.info(`${pc.dim('Workspace:')} ${
|
|
46
|
+
p.intro(`${brandBg(' Minovative Mind CLI ')} ${pc.dim('v' + version)}`);
|
|
47
|
+
p.log.info(`${pc.dim('Workspace:')} ${brandFg(workspaceRoot)}`);
|
|
48
48
|
p.log.info(`${pc.dim('Commands:')} Type ${pc.yellow('/')} to open the command menu and "${pc.yellow('stop')}" to stop the ai generation. Type ${pc.yellow('exit')} to leave.`);
|
|
49
49
|
p.log.success('Chat history cleared.');
|
|
50
50
|
console.log(pc.dim('\nType your coding request below. Type "exit" or "quit" to leave.\n'));
|
|
@@ -212,8 +212,8 @@ export async function handleSlashCommand(command, context) {
|
|
|
212
212
|
}
|
|
213
213
|
process.stdout.write('\x1B[2J\x1B[3J\x1B[H'); // Hard clear screen and scrollback
|
|
214
214
|
printLogo();
|
|
215
|
-
p.intro(`${
|
|
216
|
-
p.log.info(`${pc.dim('Workspace:')} ${
|
|
215
|
+
p.intro(`${brandBg(' Minovative Mind CLI ')} ${pc.dim('v' + version)}`);
|
|
216
|
+
p.log.info(`${pc.dim('Workspace:')} ${brandFg(workspaceRoot)}`);
|
|
217
217
|
p.log.info(`${pc.dim('Commands:')} Type ${pc.yellow('/')} to open the command menu and "${pc.yellow('stop')}" to stop the ai generation. Type ${pc.yellow('exit')} to leave.`);
|
|
218
218
|
p.log.success(`Resumed session: ${session.title}`);
|
|
219
219
|
// Print the loaded history so the user can see past context
|
|
@@ -251,8 +251,8 @@ export async function handleSlashCommand(command, context) {
|
|
|
251
251
|
chat.clearHistory();
|
|
252
252
|
process.stdout.write('\x1B[2J\x1B[3J\x1B[H'); // Hard clear screen and scrollback
|
|
253
253
|
printLogo();
|
|
254
|
-
p.intro(`${
|
|
255
|
-
p.log.info(`${pc.dim('Workspace:')} ${
|
|
254
|
+
p.intro(`${brandBg(' Minovative Mind CLI ')} ${pc.dim('v' + version)}`);
|
|
255
|
+
p.log.info(`${pc.dim('Workspace:')} ${brandFg(workspaceRoot)}`);
|
|
256
256
|
p.log.info(`${pc.dim('Commands:')} Type ${pc.yellow('/')} to open the command menu and "${pc.yellow('stop')}" to stop the ai generation. Type ${pc.yellow('exit')} to leave.`);
|
|
257
257
|
p.log.warn('Active session was deleted. Chat history cleared.');
|
|
258
258
|
console.log(pc.dim('\nType your coding request below. Type "exit" or "quit" to leave.\n'));
|
package/dist/services/agent.js
CHANGED
|
@@ -226,8 +226,19 @@ export async function startAgentLoop(workspaceRoot, version) {
|
|
|
226
226
|
}
|
|
227
227
|
// Apply the dynamic prompt updates and tool registrations to the active chat session
|
|
228
228
|
chat.setAgentConfig(dynamicSystemInstruction, config.tools);
|
|
229
|
-
if (
|
|
230
|
-
|
|
229
|
+
if (gatherRes.contextResult) {
|
|
230
|
+
if (!inputHandler.isCurrentlyPrompting()) {
|
|
231
|
+
spinner.stop(pc.green('🔍 Investigation completed.'));
|
|
232
|
+
spinner.start('Thinking...');
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
p.log.success(pc.green('🔍 Investigation completed.'));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
if (!inputHandler.isCurrentlyPrompting()) {
|
|
240
|
+
spinner.message('Thinking...');
|
|
241
|
+
}
|
|
231
242
|
}
|
|
232
243
|
// Send the formulated prompt payload to the generative model
|
|
233
244
|
let result;
|
package/dist/utils/logo.d.ts
CHANGED
package/dist/utils/logo.js
CHANGED
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import gradient from 'gradient-string';
|
|
2
|
+
// Premium hex profiles sampled directly from mino-logo-dark.png
|
|
3
|
+
const leftG = gradient(['#222', '#0044ff']); // Cyan to deep royal blue (inward flow)
|
|
4
|
+
const rightG = gradient(['#0044ff', '#222']); // Deep royal blue to cyan (outward flow)
|
|
5
|
+
const dotG = gradient(['#222', '#0044ff']); // Centered neon core
|
|
6
|
+
const textG = gradient(['#0052ff', '#222']); // Electric blue-to-cyan shift for typography
|
|
7
|
+
export const LOGO = [
|
|
8
|
+
// Line 1
|
|
9
|
+
` ${leftG('████')} ${leftG('████')} ${rightG('████')} ${rightG('████')} ${textG('██ ██ ██████ ██ ██ ██████ ████████ ██ ██████')}`,
|
|
10
|
+
// Line 2
|
|
11
|
+
` ${leftG('████')} ${leftG('████')} ${rightG('████')} ${rightG('████')} ${textG('████ ████ ██ ████ ██ ██ ██ ██ ██ ██ ')}`,
|
|
12
|
+
// Line 3
|
|
13
|
+
` ${leftG('████')} ${leftG('████')} ${rightG('████')} ${rightG('████')} ${textG('██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ')}`,
|
|
14
|
+
// Line 4
|
|
15
|
+
`${leftG('████')} ${leftG('████')} ${dotG('██')} ${rightG('████')} ${rightG('████')} ${textG('██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ')}`,
|
|
16
|
+
// Line 5
|
|
17
|
+
` ${leftG('████')} ${leftG('████')} ${rightG('████')} ${rightG('████')} ${textG('██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ')}`,
|
|
18
|
+
// Line 6
|
|
19
|
+
` ${leftG('████')} ${leftG('████')} ${rightG('████')} ${rightG('████')} ${textG('██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ')}`,
|
|
20
|
+
// Line 7
|
|
21
|
+
` ${leftG('████')} ${leftG('████')} ${rightG('████')} ${rightG('████')} ${textG('██ ██ ██████ ██ ██ ██████ ████████ ██████████ ██████')}`,
|
|
22
|
+
].join('\n');
|
|
10
23
|
export function printLogo() {
|
|
11
|
-
console.log(
|
|
24
|
+
console.log('\n' + LOGO + '\n');
|
|
12
25
|
}
|
|
26
|
+
import pc from 'picocolors';
|
|
27
|
+
// Override picocolors cyan globally to use our custom hex brand color for the entire UI
|
|
28
|
+
const customCyan = (text) => `\x1b[38;2;0;82;255m${text}\x1b[0m`;
|
|
29
|
+
const customBgCyan = (text) => `\x1b[48;2;0;82;255m${text}\x1b[0m`;
|
|
30
|
+
pc.cyan = customCyan;
|
|
31
|
+
pc.bgCyan = customBgCyan;
|
|
32
|
+
export const brandBg = (text) => `\x1b[48;2;0;82;255m${pc.black(text)}\x1b[0m`;
|
|
33
|
+
export const brandFg = customCyan;
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "minovative-mind-cli",
|
|
3
3
|
"description": "An automated AI agent powered by Vertex AI that helps you write software",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.1",
|
|
5
5
|
"author": "Daniel Ward",
|
|
6
6
|
"bin": {
|
|
7
7
|
"minovative-mind-cli": "./bin/run.js"
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"@oclif/plugin-help": "^6",
|
|
15
15
|
"dotenv": "^16",
|
|
16
16
|
"fastest-levenshtein": "^1.0.16",
|
|
17
|
+
"gradient-string": "^3.0.0",
|
|
17
18
|
"marked": "^12.0.2",
|
|
18
19
|
"marked-terminal": "^7.0.0",
|
|
19
20
|
"picocolors": "^1",
|