@astrive-ai/cli 1.0.1 → 1.0.3
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/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +25 -0
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/groq.d.ts +8 -0
- package/dist/commands/groq.d.ts.map +1 -0
- package/dist/commands/groq.js +29 -0
- package/dist/commands/groq.js.map +1 -0
- package/package.json +2 -2
- package/src/cli.ts +2 -0
- package/src/commands/chat.ts +24 -0
- package/src/commands/groq.ts +30 -0
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAcD,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAA8B;;IAc9C,OAAO,CAAC,QAAQ;IAOV,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBxC,OAAO,CAAC,QAAQ;CA0BjB"}
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ import { PluginsCommand } from './commands/plugins.js';
|
|
|
8
8
|
import { VersionCommand } from './commands/version.js';
|
|
9
9
|
import { DevCommand } from './commands/dev.js';
|
|
10
10
|
import { InspectCommand } from './commands/inspect.js';
|
|
11
|
+
import { GroqCommand } from './commands/groq.js';
|
|
11
12
|
export class CLI {
|
|
12
13
|
commands = new Map();
|
|
13
14
|
constructor() {
|
|
@@ -19,6 +20,7 @@ export class CLI {
|
|
|
19
20
|
this.register(new VersionCommand());
|
|
20
21
|
this.register(new DevCommand());
|
|
21
22
|
this.register(new InspectCommand());
|
|
23
|
+
this.register(new GroqCommand());
|
|
22
24
|
}
|
|
23
25
|
register(cmd) {
|
|
24
26
|
this.commands.set(cmd.name, cmd);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA0B1C,qBAAa,WAAY,YAAW,OAAO;IACzC,IAAI,SAAU;IACd,WAAW,SAAuC;IAClD,KAAK,EAAE,IAAI,EAAE,CAIX;IAEI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAkF5E"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
import { error, info, bold, dim, Spinner } from '../ui.js';
|
|
2
2
|
import * as readline from 'readline';
|
|
3
3
|
import { AstriveAI } from '@astrive-ai/agent';
|
|
4
|
+
import * as fs from 'fs';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
function loadEnv() {
|
|
7
|
+
const envPath = path.resolve(process.cwd(), '.env');
|
|
8
|
+
if (fs.existsSync(envPath)) {
|
|
9
|
+
const content = fs.readFileSync(envPath, 'utf8');
|
|
10
|
+
content.split('\n').forEach(line => {
|
|
11
|
+
const match = line.match(/^\s*([\w.-]+)\s*=\s*(.*)?\s*$/);
|
|
12
|
+
if (match) {
|
|
13
|
+
const key = match[1];
|
|
14
|
+
let value = match[2] || '';
|
|
15
|
+
if (value.startsWith('"') && value.endsWith('"'))
|
|
16
|
+
value = value.slice(1, -1);
|
|
17
|
+
if (value.startsWith("'") && value.endsWith("'"))
|
|
18
|
+
value = value.slice(1, -1);
|
|
19
|
+
if (!process.env[key])
|
|
20
|
+
process.env[key] = value;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
4
25
|
export class ChatCommand {
|
|
5
26
|
name = 'chat';
|
|
6
27
|
description = 'Start an interactive chat session';
|
|
@@ -10,6 +31,7 @@ export class ChatCommand {
|
|
|
10
31
|
{ name: 'system', description: 'System prompt', type: 'string' }
|
|
11
32
|
];
|
|
12
33
|
async execute(args, flags) {
|
|
34
|
+
loadEnv();
|
|
13
35
|
const apiKey = process.env.GROQ_API_KEY;
|
|
14
36
|
if (!apiKey) {
|
|
15
37
|
error('No API key configured. Please set the GROQ_API_KEY environment variable.');
|
|
@@ -31,6 +53,9 @@ export class ChatCommand {
|
|
|
31
53
|
colors: true,
|
|
32
54
|
timestamp: true
|
|
33
55
|
},
|
|
56
|
+
memory: {
|
|
57
|
+
enabled: true
|
|
58
|
+
},
|
|
34
59
|
systemPrompt: flags.system
|
|
35
60
|
};
|
|
36
61
|
const agent = new AstriveAI(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groq.d.ts","sourceRoot":"","sources":["../../src/commands/groq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAK1C,qBAAa,WAAY,YAAW,OAAO;IACzC,IAAI,SAAU;IACd,WAAW,SAAsB;IACjC,KAAK,EAAE,IAAI,EAAE,CAAM;IAEb,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB7C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { success, error } from '../ui.js';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
export class GroqCommand {
|
|
5
|
+
name = 'groq';
|
|
6
|
+
description = 'Set Groq API Key';
|
|
7
|
+
flags = [];
|
|
8
|
+
async execute(args) {
|
|
9
|
+
const token = args[0];
|
|
10
|
+
if (!token) {
|
|
11
|
+
error('Please provide a token. Example: astrive groq "gsk_xxxx..."');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const envPath = path.resolve(process.cwd(), '.env');
|
|
15
|
+
let content = '';
|
|
16
|
+
if (fs.existsSync(envPath)) {
|
|
17
|
+
content = fs.readFileSync(envPath, 'utf8');
|
|
18
|
+
}
|
|
19
|
+
if (content.includes('GROQ_API_KEY=')) {
|
|
20
|
+
content = content.replace(/GROQ_API_KEY=.*/g, `GROQ_API_KEY="${token}"`);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
content += `\nGROQ_API_KEY="${token}"\n`;
|
|
24
|
+
}
|
|
25
|
+
fs.writeFileSync(envPath, content.trim() + '\n');
|
|
26
|
+
success('Groq API Key successfully saved to .env file in the current directory!');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=groq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/commands/groq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAQ,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,OAAO,WAAW;IACtB,IAAI,GAAG,MAAM,CAAC;IACd,WAAW,GAAG,kBAAkB,CAAC;IACjC,KAAK,GAAW,EAAE,CAAC;IAEnB,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,6DAA6D,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,iBAAiB,KAAK,GAAG,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,mBAAmB,KAAK,KAAK,CAAC;QAC3C,CAAC;QACD,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,wEAAwE,CAAC,CAAC;IACpF,CAAC;CACF"}
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { PluginsCommand } from './commands/plugins.js';
|
|
|
22
22
|
import { VersionCommand } from './commands/version.js';
|
|
23
23
|
import { DevCommand } from './commands/dev.js';
|
|
24
24
|
import { InspectCommand } from './commands/inspect.js';
|
|
25
|
+
import { GroqCommand } from './commands/groq.js';
|
|
25
26
|
|
|
26
27
|
export class CLI {
|
|
27
28
|
private commands = new Map<string, Command>();
|
|
@@ -35,6 +36,7 @@ export class CLI {
|
|
|
35
36
|
this.register(new VersionCommand());
|
|
36
37
|
this.register(new DevCommand());
|
|
37
38
|
this.register(new InspectCommand());
|
|
39
|
+
this.register(new GroqCommand());
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
private register(cmd: Command) {
|
package/src/commands/chat.ts
CHANGED
|
@@ -3,6 +3,26 @@ import { success, error, info, bold, dim, Spinner } from '../ui.js';
|
|
|
3
3
|
import * as readline from 'readline';
|
|
4
4
|
import { AstriveAI } from '@astrive-ai/agent';
|
|
5
5
|
import { AstriveConfig } from '@astrive-ai/types';
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
|
|
9
|
+
function loadEnv() {
|
|
10
|
+
const envPath = path.resolve(process.cwd(), '.env');
|
|
11
|
+
if (fs.existsSync(envPath)) {
|
|
12
|
+
const content = fs.readFileSync(envPath, 'utf8');
|
|
13
|
+
content.split('\n').forEach(line => {
|
|
14
|
+
const match = line.match(/^\s*([\w.-]+)\s*=\s*(.*)?\s*$/);
|
|
15
|
+
if (match) {
|
|
16
|
+
const key = match[1];
|
|
17
|
+
let value = match[2] || '';
|
|
18
|
+
if (value.startsWith('"') && value.endsWith('"')) value = value.slice(1, -1);
|
|
19
|
+
if (value.startsWith("'") && value.endsWith("'")) value = value.slice(1, -1);
|
|
20
|
+
if (!process.env[key]) process.env[key] = value;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
6
26
|
|
|
7
27
|
export class ChatCommand implements Command {
|
|
8
28
|
name = 'chat';
|
|
@@ -14,6 +34,7 @@ export class ChatCommand implements Command {
|
|
|
14
34
|
];
|
|
15
35
|
|
|
16
36
|
async execute(args: string[], flags: Record<string, string>): Promise<void> {
|
|
37
|
+
loadEnv();
|
|
17
38
|
const apiKey = process.env.GROQ_API_KEY;
|
|
18
39
|
if (!apiKey) {
|
|
19
40
|
error('No API key configured. Please set the GROQ_API_KEY environment variable.');
|
|
@@ -36,6 +57,9 @@ export class ChatCommand implements Command {
|
|
|
36
57
|
colors: true,
|
|
37
58
|
timestamp: true
|
|
38
59
|
},
|
|
60
|
+
memory: {
|
|
61
|
+
enabled: true
|
|
62
|
+
},
|
|
39
63
|
systemPrompt: flags.system
|
|
40
64
|
};
|
|
41
65
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Command, Flag } from '../cli.js';
|
|
2
|
+
import { success, error, info } from '../ui.js';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
|
|
6
|
+
export class GroqCommand implements Command {
|
|
7
|
+
name = 'groq';
|
|
8
|
+
description = 'Set Groq API Key';
|
|
9
|
+
flags: Flag[] = [];
|
|
10
|
+
|
|
11
|
+
async execute(args: string[]): Promise<void> {
|
|
12
|
+
const token = args[0];
|
|
13
|
+
if (!token) {
|
|
14
|
+
error('Please provide a token. Example: astrive groq "gsk_xxxx..."');
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const envPath = path.resolve(process.cwd(), '.env');
|
|
18
|
+
let content = '';
|
|
19
|
+
if (fs.existsSync(envPath)) {
|
|
20
|
+
content = fs.readFileSync(envPath, 'utf8');
|
|
21
|
+
}
|
|
22
|
+
if (content.includes('GROQ_API_KEY=')) {
|
|
23
|
+
content = content.replace(/GROQ_API_KEY=.*/g, `GROQ_API_KEY="${token}"`);
|
|
24
|
+
} else {
|
|
25
|
+
content += `\nGROQ_API_KEY="${token}"\n`;
|
|
26
|
+
}
|
|
27
|
+
fs.writeFileSync(envPath, content.trim() + '\n');
|
|
28
|
+
success('Groq API Key successfully saved to .env file in the current directory!');
|
|
29
|
+
}
|
|
30
|
+
}
|