@botmem/cli 0.11.0 → 0.12.0

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const os_1 = require("os");
7
+ // We cannot easily test the main() function directly because cli.ts calls main()
8
+ // at the module level. Instead, we test the key utility functions by extracting
9
+ // and testing their logic.
10
+ // Test parseGlobalArgs logic by re-implementing its behavior
11
+ // and testing config loading/saving functions
12
+ (0, vitest_1.describe)('CLI config management', () => {
13
+ let tempDir;
14
+ let configFile;
15
+ (0, vitest_1.beforeEach)(() => {
16
+ tempDir = (0, path_1.join)((0, os_1.tmpdir)(), `botmem-test-${Date.now()}-${Math.random().toString(36).slice(2)}`);
17
+ (0, fs_1.mkdirSync)(tempDir, { recursive: true });
18
+ configFile = (0, path_1.join)(tempDir, 'config.json');
19
+ });
20
+ (0, vitest_1.it)('should handle missing config file gracefully', () => {
21
+ // loadConfig returns {} if file doesn't exist
22
+ let result = {};
23
+ try {
24
+ result = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(tempDir, 'nonexistent.json'), 'utf-8'));
25
+ }
26
+ catch {
27
+ result = {};
28
+ }
29
+ (0, vitest_1.expect)(result).toEqual({});
30
+ });
31
+ (0, vitest_1.it)('should save and load config', () => {
32
+ const config = { apiUrl: 'http://localhost:12412/api', apiKey: 'bm_sk_test123' };
33
+ (0, fs_1.writeFileSync)(configFile, JSON.stringify(config, null, 2));
34
+ const loaded = JSON.parse((0, fs_1.readFileSync)(configFile, 'utf-8'));
35
+ (0, vitest_1.expect)(loaded.apiUrl).toBe('http://localhost:12412/api');
36
+ (0, vitest_1.expect)(loaded.apiKey).toBe('bm_sk_test123');
37
+ });
38
+ });
39
+ (0, vitest_1.describe)('parseGlobalArgs logic', () => {
40
+ // Test the argument parsing logic (mirrors the actual parseGlobalArgs function)
41
+ function parseArgs(argv, envVars = {}, storedCfg = {}) {
42
+ const DEFAULT_API_URL = 'https://api.botmem.xyz/api';
43
+ let apiUrl = envVars['BOTMEM_API_URL'] || storedCfg.apiUrl || DEFAULT_API_URL;
44
+ let token = envVars['BOTMEM_API_KEY'] || envVars['BOTMEM_TOKEN'] || '';
45
+ let json = false;
46
+ let toon = false;
47
+ let help = false;
48
+ const rest = [];
49
+ for (let i = 0; i < argv.length; i++) {
50
+ const a = argv[i];
51
+ if (a === '--api-url') {
52
+ apiUrl = argv[++i];
53
+ }
54
+ else if (a === '--api-key') {
55
+ token = argv[++i];
56
+ }
57
+ else if (a === '--token') {
58
+ token = argv[++i];
59
+ }
60
+ else if (a === '--json') {
61
+ json = true;
62
+ }
63
+ else if (a === '--toon') {
64
+ toon = true;
65
+ json = true;
66
+ }
67
+ else if (a === '--help' || a === '-h') {
68
+ help = true;
69
+ }
70
+ else {
71
+ rest.push(a);
72
+ }
73
+ }
74
+ if (!token)
75
+ token = storedCfg.apiKey || storedCfg.token || '';
76
+ return { apiUrl, token, json, toon, help, rest };
77
+ }
78
+ (0, vitest_1.it)('should use default API URL when nothing specified', () => {
79
+ const result = parseArgs([]);
80
+ (0, vitest_1.expect)(result.apiUrl).toBe('https://api.botmem.xyz/api');
81
+ });
82
+ (0, vitest_1.it)('should use --api-url flag over env var', () => {
83
+ const result = parseArgs(['--api-url', 'http://custom:3000/api', 'search', 'test'], {
84
+ BOTMEM_API_URL: 'http://env:3000/api',
85
+ });
86
+ (0, vitest_1.expect)(result.apiUrl).toBe('http://custom:3000/api');
87
+ });
88
+ (0, vitest_1.it)('should use env var over stored config', () => {
89
+ const result = parseArgs([], { BOTMEM_API_URL: 'http://env:3000/api' }, { apiUrl: 'http://stored:3000/api' });
90
+ (0, vitest_1.expect)(result.apiUrl).toBe('http://env:3000/api');
91
+ });
92
+ (0, vitest_1.it)('should use stored config as fallback', () => {
93
+ const result = parseArgs([], {}, { apiUrl: 'http://stored:3000/api' });
94
+ (0, vitest_1.expect)(result.apiUrl).toBe('http://stored:3000/api');
95
+ });
96
+ (0, vitest_1.it)('should parse --api-key flag', () => {
97
+ const result = parseArgs(['--api-key', 'bm_sk_test']);
98
+ (0, vitest_1.expect)(result.token).toBe('bm_sk_test');
99
+ });
100
+ (0, vitest_1.it)('should parse --token flag', () => {
101
+ const result = parseArgs(['--token', 'jwt-xyz']);
102
+ (0, vitest_1.expect)(result.token).toBe('jwt-xyz');
103
+ });
104
+ (0, vitest_1.it)('should use BOTMEM_API_KEY env var', () => {
105
+ const result = parseArgs([], { BOTMEM_API_KEY: 'bm_sk_env' });
106
+ (0, vitest_1.expect)(result.token).toBe('bm_sk_env');
107
+ });
108
+ (0, vitest_1.it)('should use BOTMEM_TOKEN env var', () => {
109
+ const result = parseArgs([], { BOTMEM_TOKEN: 'jwt-env' });
110
+ (0, vitest_1.expect)(result.token).toBe('jwt-env');
111
+ });
112
+ (0, vitest_1.it)('should fall back to stored apiKey', () => {
113
+ const result = parseArgs([], {}, { apiKey: 'bm_sk_stored' });
114
+ (0, vitest_1.expect)(result.token).toBe('bm_sk_stored');
115
+ });
116
+ (0, vitest_1.it)('should fall back to stored token', () => {
117
+ const result = parseArgs([], {}, { token: 'jwt-stored' });
118
+ (0, vitest_1.expect)(result.token).toBe('jwt-stored');
119
+ });
120
+ (0, vitest_1.it)('should set json=true for --json flag', () => {
121
+ const result = parseArgs(['search', 'test', '--json']);
122
+ (0, vitest_1.expect)(result.json).toBe(true);
123
+ });
124
+ (0, vitest_1.it)('should set toon=true and json=true for --toon flag', () => {
125
+ const result = parseArgs(['--toon', 'search', 'test']);
126
+ (0, vitest_1.expect)(result.toon).toBe(true);
127
+ (0, vitest_1.expect)(result.json).toBe(true);
128
+ });
129
+ (0, vitest_1.it)('should set help=true for --help flag', () => {
130
+ const result = parseArgs(['--help']);
131
+ (0, vitest_1.expect)(result.help).toBe(true);
132
+ });
133
+ (0, vitest_1.it)('should set help=true for -h flag', () => {
134
+ const result = parseArgs(['-h']);
135
+ (0, vitest_1.expect)(result.help).toBe(true);
136
+ });
137
+ (0, vitest_1.it)('should collect non-flag arguments into rest', () => {
138
+ const result = parseArgs(['search', 'hello', 'world', '--json']);
139
+ (0, vitest_1.expect)(result.rest).toEqual(['search', 'hello', 'world']);
140
+ });
141
+ });
142
+ (0, vitest_1.describe)('runConfig logic', () => {
143
+ let logSpy;
144
+ let errorSpy;
145
+ (0, vitest_1.beforeEach)(() => {
146
+ logSpy = vitest_1.vi.spyOn(console, 'log').mockImplementation(() => { });
147
+ errorSpy = vitest_1.vi.spyOn(console, 'error').mockImplementation(() => { });
148
+ });
149
+ (0, vitest_1.afterEach)(() => {
150
+ logSpy.mockRestore();
151
+ errorSpy.mockRestore();
152
+ });
153
+ // Test host normalization logic (mirrors runConfig set-host)
154
+ function normalizeHost(host) {
155
+ if (!host.startsWith('http://') && !host.startsWith('https://')) {
156
+ const isLocal = host.startsWith('localhost') || host.startsWith('127.0.0.1');
157
+ host = `${isLocal ? 'http' : 'https'}://${host}`;
158
+ }
159
+ if (!host.endsWith('/api')) {
160
+ host = host.replace(/\/+$/, '') + '/api';
161
+ }
162
+ return host;
163
+ }
164
+ (0, vitest_1.it)('should add https:// for non-local hosts', () => {
165
+ (0, vitest_1.expect)(normalizeHost('api.botmem.xyz')).toBe('https://api.botmem.xyz/api');
166
+ });
167
+ (0, vitest_1.it)('should add http:// for localhost', () => {
168
+ (0, vitest_1.expect)(normalizeHost('localhost:12412')).toBe('http://localhost:12412/api');
169
+ });
170
+ (0, vitest_1.it)('should add http:// for 127.0.0.1', () => {
171
+ (0, vitest_1.expect)(normalizeHost('127.0.0.1:12412')).toBe('http://127.0.0.1:12412/api');
172
+ });
173
+ (0, vitest_1.it)('should add /api suffix if missing', () => {
174
+ (0, vitest_1.expect)(normalizeHost('http://custom-host:3000')).toBe('http://custom-host:3000/api');
175
+ });
176
+ (0, vitest_1.it)('should not double /api suffix', () => {
177
+ (0, vitest_1.expect)(normalizeHost('http://custom-host:3000/api')).toBe('http://custom-host:3000/api');
178
+ });
179
+ (0, vitest_1.it)('should strip trailing slashes before adding /api', () => {
180
+ (0, vitest_1.expect)(normalizeHost('http://host:3000///')).toBe('http://host:3000/api');
181
+ });
182
+ });
183
+ (0, vitest_1.describe)('command routing', () => {
184
+ // Test that the command router identifies the right commands
185
+ const validCommands = [
186
+ 'config',
187
+ 'login',
188
+ 'version',
189
+ 'ask',
190
+ 'context',
191
+ 'memory-banks',
192
+ 'search',
193
+ 'memories',
194
+ 'memory',
195
+ 'stats',
196
+ 'contacts',
197
+ 'contact',
198
+ 'status',
199
+ 'jobs',
200
+ 'sync',
201
+ 'retry',
202
+ 'accounts',
203
+ 'timeline',
204
+ 'related',
205
+ 'entities',
206
+ 'install-skill',
207
+ ];
208
+ (0, vitest_1.it)('should recognize all valid commands', () => {
209
+ for (const cmd of validCommands) {
210
+ (0, vitest_1.expect)(validCommands).toContain(cmd);
211
+ }
212
+ });
213
+ (0, vitest_1.it)('should identify unknown commands', () => {
214
+ const unknownCmd = 'foobar';
215
+ (0, vitest_1.expect)(validCommands).not.toContain(unknownCmd);
216
+ });
217
+ });
218
+ //# sourceMappingURL=cli.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};