@zincapp/znvault-cli 2.8.1 → 2.9.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.
@@ -0,0 +1,3 @@
1
+ import { type Command } from 'commander';
2
+ export declare function registerAdvisorCommands(program: Command): void;
3
+ //# sourceMappingURL=advisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor.d.ts","sourceRoot":"","sources":["../../src/commands/advisor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AA+FzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwZ9D"}
@@ -0,0 +1,355 @@
1
+ // Path: znvault-cli/src/commands/advisor.ts
2
+ import ora from 'ora';
3
+ import { client } from '../lib/client.js';
4
+ import * as output from '../lib/output.js';
5
+ import { configureContextHelp, addTenantOption, superadminDesc, } from '../lib/context-help.js';
6
+ export function registerAdvisorCommands(program) {
7
+ const advisor = program
8
+ .command('advisor')
9
+ .description('AI-powered security advisor commands');
10
+ // Configure context-aware help for this command group
11
+ configureContextHelp(advisor);
12
+ // Run security audit
13
+ const auditCmd = advisor
14
+ .command('audit')
15
+ .description('Run a security audit (tenant inferred from auth)')
16
+ .option('--category <category>', 'Filter by category (security, organization, compliance)')
17
+ .option('--severity <severity>', 'Filter by severity (critical, high, medium, low)')
18
+ .option('--ai-summary', 'Include AI-generated summary')
19
+ .option('--json', 'Output as JSON');
20
+ // Add tenant option (hidden for tenant users)
21
+ addTenantOption(auditCmd);
22
+ auditCmd
23
+ .action(async (options) => {
24
+ const spinner = ora('Running security audit...').start();
25
+ try {
26
+ // Use 'me' if no tenant specified (server will use auth context)
27
+ const tenant = options.tenant || 'me';
28
+ const body = {};
29
+ if (options.category) {
30
+ body.categories = [options.category];
31
+ }
32
+ if (options.severity) {
33
+ body.severity = [options.severity];
34
+ }
35
+ if (options.aiSummary) {
36
+ body.includeAiSummary = true;
37
+ }
38
+ const response = await client.post(`/v1/advisor/${tenant}/audit`, body);
39
+ spinner.stop();
40
+ if (options.json) {
41
+ output.json(response.data);
42
+ return;
43
+ }
44
+ const result = response.data;
45
+ // Summary header
46
+ output.section('Audit Summary');
47
+ output.keyValue({
48
+ 'Audit ID': result.auditId,
49
+ 'Tenant': result.tenantId,
50
+ 'Status': result.status,
51
+ 'Started': output.formatRelativeTime(result.startedAt),
52
+ 'Total Findings': result.summary.total,
53
+ });
54
+ // Severity breakdown
55
+ if (result.summary.total > 0) {
56
+ output.section('By Severity');
57
+ const severityColors = {
58
+ critical: '\x1b[31m', // red
59
+ high: '\x1b[33m', // yellow
60
+ medium: '\x1b[36m', // cyan
61
+ low: '\x1b[37m', // white
62
+ };
63
+ const reset = '\x1b[0m';
64
+ for (const [sev, count] of Object.entries(result.summary.bySeverity)) {
65
+ if (count > 0) {
66
+ const color = severityColors[sev] || '';
67
+ console.log(` ${color}${sev.toUpperCase()}: ${count}${reset}`);
68
+ }
69
+ }
70
+ // Findings table
71
+ output.section('Findings');
72
+ output.table(['Severity', 'Rule', 'Description', 'Resource'], result.findings.slice(0, 20).map(f => [
73
+ f.severity.toUpperCase(),
74
+ f.ruleId,
75
+ f.description.substring(0, 40) + (f.description.length > 40 ? '...' : ''),
76
+ `${f.resourceType}:${f.resourceId.substring(0, 8)}`,
77
+ ]));
78
+ if (result.findings.length > 20) {
79
+ output.info(`... and ${result.findings.length - 20} more findings`);
80
+ }
81
+ }
82
+ else {
83
+ output.success('No security findings detected!');
84
+ }
85
+ // AI Summary
86
+ if (result.aiSummary) {
87
+ output.section('AI Summary');
88
+ console.log(result.aiSummary);
89
+ }
90
+ }
91
+ catch (err) {
92
+ spinner.fail('Failed to run audit');
93
+ output.error(err instanceof Error ? err.message : String(err));
94
+ process.exit(1);
95
+ }
96
+ });
97
+ // List available rules
98
+ advisor
99
+ .command('rules')
100
+ .description('List available security rules')
101
+ .option('--category <category>', 'Filter by category')
102
+ .option('--severity <severity>', 'Filter by severity')
103
+ .option('--json', 'Output as JSON')
104
+ .action(async (options) => {
105
+ const spinner = ora('Fetching rules...').start();
106
+ try {
107
+ const query = [];
108
+ if (options.category)
109
+ query.push(`category=${options.category}`);
110
+ if (options.severity)
111
+ query.push(`severity=${options.severity}`);
112
+ const path = query.length > 0 ? `/v1/advisor/rules?${query.join('&')}` : '/v1/advisor/rules';
113
+ const response = await client.get(path);
114
+ spinner.stop();
115
+ if (options.json) {
116
+ output.json(response.data);
117
+ return;
118
+ }
119
+ const rules = response.data;
120
+ output.table(['ID', 'Name', 'Category', 'Severity'], rules.map(r => [
121
+ r.id,
122
+ r.name.substring(0, 30),
123
+ r.category,
124
+ r.severity.toUpperCase(),
125
+ ]));
126
+ output.info(`Total: ${rules.length} rules`);
127
+ }
128
+ catch (err) {
129
+ spinner.fail('Failed to list rules');
130
+ output.error(err instanceof Error ? err.message : String(err));
131
+ process.exit(1);
132
+ }
133
+ });
134
+ // Suggest secret configuration
135
+ const suggestCmd = advisor
136
+ .command('suggest')
137
+ .description('Get AI suggestions for naming and configuring a new secret')
138
+ .argument('<description>', 'Description of the secret (e.g., "stripe api key for payments")')
139
+ .option('--environment <env>', 'Environment hint (prod, staging, dev)')
140
+ .option('--service <name>', 'Service name hint')
141
+ .option('--team <name>', 'Team name hint')
142
+ .option('--json', 'Output as JSON');
143
+ // Add tenant option (hidden for tenant users)
144
+ addTenantOption(suggestCmd);
145
+ suggestCmd.action(async (description, options) => {
146
+ const spinner = ora('Getting AI suggestions...').start();
147
+ try {
148
+ const tenant = options.tenant || 'me';
149
+ const body = { description };
150
+ const hints = {};
151
+ if (options.environment)
152
+ hints.environment = options.environment;
153
+ if (options.service)
154
+ hints.service = options.service;
155
+ if (options.team)
156
+ hints.team = options.team;
157
+ if (Object.keys(hints).length > 0)
158
+ body.hints = hints;
159
+ const response = await client.post(`/v1/advisor/${tenant}/suggest`, body);
160
+ spinner.stop();
161
+ if (options.json) {
162
+ output.json(response.data);
163
+ return;
164
+ }
165
+ const result = response.data;
166
+ output.section('Suggested Configuration');
167
+ output.keyValue({
168
+ 'Alias': result.alias,
169
+ 'Type': result.type,
170
+ 'Sub-Type': result.subType || '-',
171
+ 'Tags': result.tags.join(', ') || 'none',
172
+ 'Expiration': result.expiresInDays ? `${result.expiresInDays} days` : '-',
173
+ 'Rotation': result.rotationRecommendation || '-',
174
+ 'Confidence': `${Math.round(result.confidence * 100)}%`,
175
+ });
176
+ if (result.alternativeAliases && result.alternativeAliases.length > 0) {
177
+ output.section('Alternative Names');
178
+ result.alternativeAliases.forEach(a => console.log(` - ${a}`));
179
+ }
180
+ if (result.warnings && result.warnings.length > 0) {
181
+ output.section('Warnings');
182
+ result.warnings.forEach(w => console.log(` ⚠ ${w}`));
183
+ }
184
+ output.section('Reasoning');
185
+ console.log(` ${result.reasoning}`);
186
+ }
187
+ catch (err) {
188
+ spinner.fail('Failed to get suggestions');
189
+ output.error(err instanceof Error ? err.message : String(err));
190
+ process.exit(1);
191
+ }
192
+ });
193
+ // LLM configuration subcommand
194
+ const llm = advisor
195
+ .command('llm')
196
+ .description('Manage LLM configuration for AI features');
197
+ // Configure context-aware help for LLM subcommands
198
+ configureContextHelp(llm);
199
+ // Check LLM status
200
+ llm
201
+ .command('status')
202
+ .description('Check LLM configuration status')
203
+ .option('--json', 'Output as JSON')
204
+ .action(async (options) => {
205
+ const spinner = ora('Checking LLM status...').start();
206
+ try {
207
+ const response = await client.get('/v1/advisor/llm/status');
208
+ spinner.stop();
209
+ if (options.json) {
210
+ output.json(response.data);
211
+ return;
212
+ }
213
+ const status = response.data;
214
+ output.keyValue({
215
+ 'Configured': status.configured ? 'Yes' : 'No',
216
+ 'Enabled': status.enabled ? 'Yes' : 'No',
217
+ 'Provider': status.provider || '-',
218
+ 'Model': status.model || '-',
219
+ });
220
+ if (!status.configured) {
221
+ output.info('\nTo enable AI features, configure LLM with:');
222
+ output.info(' znvault advisor llm config --api-key <key> --enabled true');
223
+ }
224
+ }
225
+ catch (err) {
226
+ spinner.fail('Failed to check LLM status');
227
+ output.error(err instanceof Error ? err.message : String(err));
228
+ process.exit(1);
229
+ }
230
+ });
231
+ // Get LLM config (superadmin only)
232
+ llm
233
+ .command('get')
234
+ .description(superadminDesc('Get LLM configuration'))
235
+ .option('--json', 'Output as JSON')
236
+ .action(async (options) => {
237
+ const spinner = ora('Fetching LLM configuration...').start();
238
+ try {
239
+ const response = await client.get('/v1/admin/advisor/llm/config');
240
+ spinner.stop();
241
+ if (options.json) {
242
+ output.json(response.data);
243
+ return;
244
+ }
245
+ const config = response.data;
246
+ if (!config) {
247
+ output.info('LLM is not configured');
248
+ return;
249
+ }
250
+ output.keyValue({
251
+ 'Provider': config.provider,
252
+ 'API Key': config.apiKeyConfigured ? `${config.apiKeyPrefix}...` : 'Not set',
253
+ 'Model': config.model,
254
+ 'Max Tokens': config.maxTokens,
255
+ 'Enabled': config.enabled ? 'Yes' : 'No',
256
+ });
257
+ }
258
+ catch (err) {
259
+ spinner.fail('Failed to get LLM configuration');
260
+ output.error(err instanceof Error ? err.message : String(err));
261
+ process.exit(1);
262
+ }
263
+ });
264
+ // Update LLM config (superadmin only)
265
+ llm
266
+ .command('config')
267
+ .description(superadminDesc('Update LLM configuration'))
268
+ .option('--provider <provider>', 'LLM provider (anthropic)')
269
+ .option('--api-key <key>', 'API key for the provider')
270
+ .option('--model <model>', 'Model to use (e.g., claude-3-5-haiku-latest)')
271
+ .option('--max-tokens <tokens>', 'Maximum tokens for responses')
272
+ .option('--enabled <bool>', 'Enable or disable LLM features (true/false)')
273
+ .action(async (options) => {
274
+ const spinner = ora('Updating LLM configuration...').start();
275
+ try {
276
+ const body = {};
277
+ if (options.provider)
278
+ body.provider = options.provider;
279
+ if (options.apiKey)
280
+ body.apiKey = options.apiKey;
281
+ if (options.model)
282
+ body.model = options.model;
283
+ if (options.maxTokens)
284
+ body.maxTokens = parseInt(options.maxTokens, 10);
285
+ if (options.enabled !== undefined)
286
+ body.enabled = options.enabled === 'true';
287
+ if (Object.keys(body).length === 0) {
288
+ spinner.stop();
289
+ output.error('No configuration options provided');
290
+ output.info('Use --help to see available options');
291
+ process.exit(1);
292
+ }
293
+ const response = await client.put('/v1/admin/advisor/llm/config', body);
294
+ spinner.stop();
295
+ output.success('LLM configuration updated');
296
+ output.keyValue({
297
+ 'Provider': response.data.provider,
298
+ 'API Key': response.data.apiKeyConfigured ? `${response.data.apiKeyPrefix}...` : 'Not set',
299
+ 'Model': response.data.model,
300
+ 'Max Tokens': response.data.maxTokens,
301
+ 'Enabled': response.data.enabled ? 'Yes' : 'No',
302
+ });
303
+ }
304
+ catch (err) {
305
+ spinner.fail('Failed to update LLM configuration');
306
+ output.error(err instanceof Error ? err.message : String(err));
307
+ process.exit(1);
308
+ }
309
+ });
310
+ // Test LLM connection (superadmin only)
311
+ llm
312
+ .command('test')
313
+ .description(superadminDesc('Test LLM connection'))
314
+ .action(async () => {
315
+ const spinner = ora('Testing LLM connection...').start();
316
+ try {
317
+ const response = await client.post('/v1/admin/advisor/llm/test', {});
318
+ spinner.stop();
319
+ const result = response.data;
320
+ if (result.success) {
321
+ output.success(result.message);
322
+ if (result.model) {
323
+ output.info(`Model: ${result.model}`);
324
+ }
325
+ }
326
+ else {
327
+ output.error(result.message);
328
+ process.exit(1);
329
+ }
330
+ }
331
+ catch (err) {
332
+ spinner.fail('Failed to test LLM connection');
333
+ output.error(err instanceof Error ? err.message : String(err));
334
+ process.exit(1);
335
+ }
336
+ });
337
+ // Delete LLM config (superadmin only)
338
+ llm
339
+ .command('delete')
340
+ .description(superadminDesc('Delete LLM configuration'))
341
+ .action(async () => {
342
+ const spinner = ora('Deleting LLM configuration...').start();
343
+ try {
344
+ await client.delete('/v1/admin/advisor/llm/config');
345
+ spinner.stop();
346
+ output.success('LLM configuration deleted');
347
+ }
348
+ catch (err) {
349
+ spinner.fail('Failed to delete LLM configuration');
350
+ output.error(err instanceof Error ? err.message : String(err));
351
+ process.exit(1);
352
+ }
353
+ });
354
+ }
355
+ //# sourceMappingURL=advisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advisor.js","sourceRoot":"","sources":["../../src/commands/advisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/commands/secret.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AA+xBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2F7D"}
1
+ {"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../src/commands/secret.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAiqCzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4F7D"}
@@ -46,6 +46,197 @@ function getDaysUntilExpiry(expiresAt) {
46
46
  const now = new Date();
47
47
  return Math.ceil((expires.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
48
48
  }
49
+ // ============================================================================
50
+ // PEM File Analysis (for --suggest with --file)
51
+ // ============================================================================
52
+ const PEM_HEADER_MAP = {
53
+ 'PRIVATE KEY': { type: 'private-key' },
54
+ 'RSA PRIVATE KEY': { type: 'private-key', algorithm: 'rsa' },
55
+ 'EC PRIVATE KEY': { type: 'private-key', algorithm: 'ec' },
56
+ 'DSA PRIVATE KEY': { type: 'private-key', algorithm: 'dsa' },
57
+ 'OPENSSH PRIVATE KEY': { type: 'private-key' },
58
+ 'ENCRYPTED PRIVATE KEY': { type: 'encrypted-key' },
59
+ 'PUBLIC KEY': { type: 'public-key' },
60
+ 'RSA PUBLIC KEY': { type: 'public-key', algorithm: 'rsa' },
61
+ 'EC PUBLIC KEY': { type: 'public-key', algorithm: 'ec' },
62
+ 'CERTIFICATE': { type: 'certificate' },
63
+ 'X509 CERTIFICATE': { type: 'certificate' },
64
+ 'CERTIFICATE REQUEST': { type: 'csr' },
65
+ };
66
+ function detectKeyAlgorithm(content) {
67
+ if (content.includes('EC PRIVATE KEY') || content.includes('EC PUBLIC KEY'))
68
+ return 'ec';
69
+ if (content.includes('RSA PRIVATE KEY') || content.includes('RSA PUBLIC KEY'))
70
+ return 'rsa';
71
+ // Check for EC curve OIDs
72
+ const ecOidPatterns = ['BggqhkjOPQMBBw', 'BgUrgQQAIg', 'BgUrgQQAIw'];
73
+ for (const pattern of ecOidPatterns) {
74
+ if (content.includes(pattern))
75
+ return 'ec';
76
+ }
77
+ // Size-based heuristic for generic keys
78
+ const keyMatch = /-----BEGIN (?:PRIVATE KEY|PUBLIC KEY)-----\s*([\s\S]*?)\s*-----END/;
79
+ const keyContent = keyMatch.exec(content);
80
+ if (keyContent) {
81
+ const keyBase64 = keyContent[1].replace(/\s/g, '');
82
+ if (keyBase64.length < 400)
83
+ return 'ec';
84
+ if (keyBase64.length > 1000)
85
+ return 'rsa';
86
+ }
87
+ return 'unknown';
88
+ }
89
+ function detectPurpose(filename, type, algorithm, headers) {
90
+ const lowerFilename = filename.toLowerCase();
91
+ if (lowerFilename.endsWith('.p8') || lowerFilename.includes('authkey')) {
92
+ if (type === 'private-key' && algorithm === 'ec') {
93
+ return 'Apple Push Notification Service (APNS) authentication key';
94
+ }
95
+ return 'Apple authentication key (.p8)';
96
+ }
97
+ if (lowerFilename.includes('ssl') || lowerFilename.includes('tls')) {
98
+ if (type === 'certificate')
99
+ return 'SSL/TLS certificate';
100
+ if (type === 'private-key')
101
+ return 'SSL/TLS private key';
102
+ if (type === 'bundle')
103
+ return 'SSL/TLS certificate bundle';
104
+ }
105
+ if (lowerFilename.includes('ca') || lowerFilename.includes('root') || lowerFilename.includes('intermediate')) {
106
+ if (type === 'certificate')
107
+ return 'Certificate Authority (CA) certificate';
108
+ if (type === 'bundle')
109
+ return 'CA certificate chain';
110
+ }
111
+ // JWT/API signing (check before generic "sign" to avoid false matches)
112
+ if (lowerFilename.includes('jwt') || lowerFilename.includes('signing')) {
113
+ if (type === 'private-key')
114
+ return 'JWT/API signing key';
115
+ if (type === 'public-key')
116
+ return 'JWT/API verification key';
117
+ }
118
+ // Code signing (codesign specifically, not just "sign")
119
+ if (lowerFilename.includes('codesign') || (lowerFilename.includes('sign') && !lowerFilename.includes('signing'))) {
120
+ if (type === 'certificate')
121
+ return 'Code signing certificate';
122
+ if (type === 'private-key')
123
+ return 'Code signing private key';
124
+ }
125
+ if (lowerFilename.includes('ssh') || lowerFilename.startsWith('id_') || headers?.some(h => h.includes('OPENSSH'))) {
126
+ if (type === 'private-key')
127
+ return 'SSH private key';
128
+ if (type === 'public-key')
129
+ return 'SSH public key';
130
+ }
131
+ if (type === 'certificate')
132
+ return 'X.509 certificate';
133
+ if (type === 'bundle')
134
+ return 'Certificate bundle/chain';
135
+ if (type === 'csr')
136
+ return 'Certificate Signing Request (CSR)';
137
+ if (type === 'encrypted-key')
138
+ return 'Encrypted private key (password protected)';
139
+ return undefined;
140
+ }
141
+ function analyzePEMContent(content, filename) {
142
+ const headerRegex = /-----BEGIN ([A-Z0-9 ]+)-----/g;
143
+ const headers = [];
144
+ let match;
145
+ while ((match = headerRegex.exec(content)) !== null) {
146
+ headers.push(match[1]);
147
+ }
148
+ if (headers.length === 0)
149
+ return null;
150
+ const certificateCount = headers.filter(h => h.includes('CERTIFICATE')).length;
151
+ const privateKeyHeaders = headers.filter(h => h.includes('PRIVATE KEY'));
152
+ const publicKeyHeaders = headers.filter(h => h.includes('PUBLIC KEY'));
153
+ const csrHeaders = headers.filter(h => h.includes('CERTIFICATE REQUEST'));
154
+ let type = 'unknown';
155
+ let algorithm;
156
+ if (certificateCount > 1 || (certificateCount >= 1 && privateKeyHeaders.length >= 1)) {
157
+ type = 'bundle';
158
+ }
159
+ else if (privateKeyHeaders.length > 0) {
160
+ const keyHeader = privateKeyHeaders[0];
161
+ const mapping = PEM_HEADER_MAP[keyHeader];
162
+ type = mapping?.type ?? 'private-key';
163
+ algorithm = mapping?.algorithm;
164
+ if (keyHeader.includes('ENCRYPTED'))
165
+ type = 'encrypted-key';
166
+ }
167
+ else if (publicKeyHeaders.length > 0) {
168
+ const keyHeader = publicKeyHeaders[0];
169
+ const mapping = PEM_HEADER_MAP[keyHeader];
170
+ type = mapping?.type ?? 'public-key';
171
+ algorithm = mapping?.algorithm;
172
+ }
173
+ else if (csrHeaders.length > 0) {
174
+ type = 'csr';
175
+ }
176
+ else if (certificateCount > 0) {
177
+ type = 'certificate';
178
+ }
179
+ if (!algorithm && (type === 'private-key' || type === 'public-key')) {
180
+ algorithm = detectKeyAlgorithm(content);
181
+ }
182
+ const detectedPurpose = detectPurpose(filename, type, algorithm, headers);
183
+ const lowerFilename = filename.toLowerCase();
184
+ const isAppleP8 = type === 'private-key' && algorithm === 'ec' &&
185
+ (lowerFilename.endsWith('.p8') || lowerFilename.includes('authkey'));
186
+ return {
187
+ type,
188
+ algorithm,
189
+ pemHeaders: headers,
190
+ blockCount: headers.length,
191
+ certificateCount: certificateCount > 0 ? certificateCount : undefined,
192
+ detectedPurpose,
193
+ isAppleP8: isAppleP8 || undefined,
194
+ };
195
+ }
196
+ function detectMimeType(content) {
197
+ const text = content.toString('utf8', 0, 100);
198
+ if (text.includes('-----BEGIN'))
199
+ return 'application/x-pem-file';
200
+ return 'application/octet-stream';
201
+ }
202
+ async function analyzeFileForSuggestion(filePath) {
203
+ const fs = await import('fs');
204
+ const pathModule = await import('path');
205
+ if (!fs.existsSync(filePath))
206
+ return null;
207
+ const content = fs.readFileSync(filePath);
208
+ const filename = pathModule.basename(filePath);
209
+ const extension = pathModule.extname(filePath).toLowerCase();
210
+ const mimeType = detectMimeType(content);
211
+ const result = {
212
+ filename,
213
+ extension,
214
+ mimeType,
215
+ size: content.length,
216
+ };
217
+ // Analyze PEM content for relevant file types
218
+ const pemExtensions = ['.pem', '.crt', '.cer', '.key', '.p8', '.p12', '.pfx', '.pub'];
219
+ if (mimeType === 'application/x-pem-file' || pemExtensions.includes(extension)) {
220
+ const textContent = content.toString('utf8');
221
+ const pemInfo = analyzePEMContent(textContent, filename);
222
+ if (pemInfo) {
223
+ result.pemInfo = pemInfo;
224
+ }
225
+ }
226
+ return result;
227
+ }
228
+ function formatPemType(type) {
229
+ const typeMap = {
230
+ 'private-key': 'Private Key',
231
+ 'public-key': 'Public Key',
232
+ 'certificate': 'X.509 Certificate',
233
+ 'csr': 'Certificate Signing Request',
234
+ 'bundle': 'Certificate Bundle/Chain',
235
+ 'encrypted-key': 'Encrypted Private Key',
236
+ 'unknown': 'Unknown PEM format',
237
+ };
238
+ return typeMap[type] ?? type;
239
+ }
49
240
  function formatExpiry(expiresAt) {
50
241
  if (!expiresAt)
51
242
  return '-';
@@ -241,13 +432,139 @@ async function decryptSecret(id, options) {
241
432
  process.exit(1);
242
433
  }
243
434
  }
244
- async function createSecret(alias, options) {
245
- if (!options.tenant) {
246
- output.error('Tenant is required. Use --tenant <id>');
435
+ async function createSecret(aliasOrDescription, options) {
436
+ let alias = aliasOrDescription;
437
+ let actualType = options.type || 'opaque';
438
+ let actualSubType = options.subType;
439
+ let actualTags = options.tags;
440
+ // AI Suggestion flow
441
+ if (options.suggest) {
442
+ const tenant = options.tenant || 'me';
443
+ // Analyze file if --file is provided
444
+ let fileInfo = null;
445
+ if (options.file) {
446
+ const analyzeSpinner = ora('Analyzing file...').start();
447
+ fileInfo = await analyzeFileForSuggestion(options.file);
448
+ analyzeSpinner.stop();
449
+ if (fileInfo) {
450
+ output.section('File Analysis');
451
+ const analysisInfo = {
452
+ 'Filename': fileInfo.filename,
453
+ 'Extension': fileInfo.extension,
454
+ 'MIME Type': fileInfo.mimeType,
455
+ 'Size': formatBytes(fileInfo.size),
456
+ };
457
+ if (fileInfo.pemInfo) {
458
+ analysisInfo['PEM Type'] = formatPemType(fileInfo.pemInfo.type);
459
+ if (fileInfo.pemInfo.algorithm) {
460
+ analysisInfo['Algorithm'] = fileInfo.pemInfo.algorithm.toUpperCase();
461
+ }
462
+ if (fileInfo.pemInfo.detectedPurpose) {
463
+ analysisInfo['Detected Purpose'] = fileInfo.pemInfo.detectedPurpose;
464
+ }
465
+ if (fileInfo.pemInfo.isAppleP8) {
466
+ analysisInfo['Special'] = 'Apple .p8 authentication key';
467
+ }
468
+ if (fileInfo.pemInfo.certificateCount && fileInfo.pemInfo.certificateCount > 1) {
469
+ analysisInfo['Certificates'] = `${fileInfo.pemInfo.certificateCount} (chain/bundle)`;
470
+ }
471
+ }
472
+ output.keyValue(analysisInfo);
473
+ console.log();
474
+ }
475
+ }
476
+ const spinner = ora('Getting AI suggestions...').start();
477
+ try {
478
+ const body = { description: aliasOrDescription };
479
+ // Include file analysis in the request
480
+ if (fileInfo) {
481
+ body.fileInfo = fileInfo;
482
+ }
483
+ const response = await client.post(`/v1/advisor/${tenant}/suggest`, body);
484
+ spinner.stop();
485
+ const result = response.data;
486
+ // Show suggestions
487
+ output.section('AI Suggestions');
488
+ output.keyValue({
489
+ 'Suggested Alias': result.alias,
490
+ 'Type': result.type,
491
+ 'Sub-Type': result.subType || '-',
492
+ 'Tags': result.tags.join(', ') || 'none',
493
+ 'Confidence': `${Math.round(result.confidence * 100)}%`,
494
+ });
495
+ if (result.alternativeAliases && result.alternativeAliases.length > 0) {
496
+ output.info(`Alternatives: ${result.alternativeAliases.join(', ')}`);
497
+ }
498
+ if (result.warnings && result.warnings.length > 0) {
499
+ for (const w of result.warnings) {
500
+ console.log(` ⚠ ${w}`);
501
+ }
502
+ }
503
+ console.log(`\nReasoning: ${result.reasoning}\n`);
504
+ // Let user confirm or modify
505
+ const aliasChoices = [
506
+ { name: `${result.alias} (suggested)`, value: result.alias },
507
+ ...(result.alternativeAliases || []).map(a => ({ name: a, value: a })),
508
+ { name: 'Enter custom alias', value: '__custom__' },
509
+ ];
510
+ const { useAlias } = await inquirer.prompt([
511
+ {
512
+ type: 'list',
513
+ name: 'useAlias',
514
+ message: 'Use which alias?',
515
+ choices: aliasChoices,
516
+ },
517
+ ]);
518
+ if (useAlias === '__custom__') {
519
+ const { customAlias } = await inquirer.prompt([
520
+ { type: 'input', name: 'customAlias', message: 'Enter alias:' },
521
+ ]);
522
+ alias = customAlias;
523
+ }
524
+ else {
525
+ alias = useAlias;
526
+ }
527
+ // Apply suggested values (unless overridden by CLI options)
528
+ if (!options.type || options.type === 'opaque') {
529
+ actualType = result.type;
530
+ }
531
+ if (!options.subType && result.subType) {
532
+ actualSubType = result.subType;
533
+ }
534
+ if (!options.tags && result.tags.length > 0) {
535
+ actualTags = result.tags.join(',');
536
+ }
537
+ output.success(`Using alias: ${alias}`);
538
+ console.log();
539
+ }
540
+ catch (err) {
541
+ spinner.fail('Failed to get AI suggestions');
542
+ output.error(err instanceof Error ? err.message : String(err));
543
+ // Continue without suggestions?
544
+ const { continueWithout } = await inquirer.prompt([
545
+ {
546
+ type: 'confirm',
547
+ name: 'continueWithout',
548
+ message: 'Continue creating secret without AI suggestions?',
549
+ default: true,
550
+ },
551
+ ]);
552
+ if (!continueWithout) {
553
+ process.exit(0);
554
+ }
555
+ // Use the description as alias
556
+ alias = aliasOrDescription;
557
+ }
558
+ }
559
+ // Tenant is required for creating secrets
560
+ if (!options.tenant && !options.suggest) {
561
+ output.error('Tenant is required. Use --tenant <id> or --suggest to infer from auth context');
247
562
  process.exit(1);
248
563
  }
564
+ // For suggest mode without explicit tenant, we need to get tenant from context
565
+ // The API will infer it, but we still need it for the create call
566
+ const tenantId = options.tenant || 'me';
249
567
  let data = {};
250
- let actualType = options.type || 'opaque';
251
568
  // Check for non-interactive data options first
252
569
  const hasNonInteractiveData = options.username || options.password || options.text || options.data || options.file;
253
570
  if (hasNonInteractiveData) {
@@ -353,14 +670,14 @@ async function createSecret(alias, options) {
353
670
  try {
354
671
  const body = {
355
672
  alias,
356
- tenant: options.tenant,
673
+ tenant: tenantId,
357
674
  type: actualType,
358
675
  data,
359
676
  };
360
- if (options.subType)
361
- body.subType = options.subType;
362
- if (options.tags)
363
- body.tags = options.tags.split(',').map(t => t.trim());
677
+ if (actualSubType)
678
+ body.subType = actualSubType;
679
+ if (actualTags)
680
+ body.tags = actualTags.split(',').map(t => t.trim());
364
681
  if (options.ttl)
365
682
  body.ttlUntil = options.ttl;
366
683
  if (options.expires)
@@ -676,8 +993,8 @@ export function registerSecretCommands(program) {
676
993
  // Create secret
677
994
  secret
678
995
  .command('create <alias>')
679
- .description('Create a new secret')
680
- .requiredOption('-t, --tenant <id>', 'Tenant ID')
996
+ .description('Create a new secret (use --suggest for AI naming help)')
997
+ .option('-t, --tenant <id>', 'Tenant ID (required unless using --suggest with auth context)')
681
998
  .option('--type <type>', 'Secret type (opaque, credential, setting)', 'opaque')
682
999
  .option('--sub-type <subType>', 'Semantic sub-type')
683
1000
  .option('--tags <tags>', 'Comma-separated tags')
@@ -685,6 +1002,7 @@ export function registerSecretCommands(program) {
685
1002
  .option('--expires <datetime>', 'Natural expiration (ISO 8601)')
686
1003
  .option('--content-type <mime>', 'Content type for settings')
687
1004
  .option('--json', 'Output as JSON')
1005
+ .option('--suggest', 'Get AI suggestions for naming (alias becomes description)')
688
1006
  // Non-interactive data options
689
1007
  .option('--username <username>', 'Username for credential type (non-interactive)')
690
1008
  .option('--password <password>', 'Password for credential type (non-interactive)')
@@ -1 +1 @@
1
- {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/commands/secret.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret.js","sourceRoot":"","sources":["../../src/commands/secret.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,12 +25,14 @@ import { registerBackupCommands } from './commands/backup/index.js';
25
25
  import { registerNotificationCommands } from './commands/notification.js';
26
26
  import { registerTuiCommands } from './commands/tui.js';
27
27
  import { registerSelfUpdateCommands } from './commands/self-update.js';
28
+ import { registerAdvisorCommands } from './commands/advisor.js';
28
29
  import { client } from './lib/client.js';
29
30
  import { setRuntimeProfile, getActiveProfileName, getConfig } from './lib/config.js';
30
31
  import { cliBanner, helpHint } from './lib/visual.js';
31
32
  import { runBackgroundUpdateCheck } from './lib/cli-update.js';
32
33
  import { setOutputMode } from './lib/output-mode.js';
33
34
  import { profileIndicator } from './lib/output.js';
35
+ import { configureContextHelp } from './lib/context-help.js';
34
36
  // Get version from package.json
35
37
  const __filename = fileURLToPath(import.meta.url);
36
38
  const __dirname = path.dirname(__filename);
@@ -103,6 +105,9 @@ registerBackupCommands(program);
103
105
  registerNotificationCommands(program);
104
106
  registerTuiCommands(program);
105
107
  registerSelfUpdateCommands(program);
108
+ registerAdvisorCommands(program);
109
+ // Configure context-aware help (hides superadmin-only commands for regular users)
110
+ configureContextHelp(program);
106
111
  // Run background update check (non-blocking)
107
112
  runBackgroundUpdateCheck();
108
113
  // Show banner when no command is provided
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type UserRole = 'superadmin' | 'admin' | 'user' | 'unknown';
2
+ export interface AuthContext {
3
+ isAuthenticated: boolean;
4
+ isSuperadmin: boolean;
5
+ isAdmin: boolean;
6
+ role: UserRole;
7
+ username?: string;
8
+ tenantId?: string;
9
+ }
10
+ /**
11
+ * Get current authentication context from stored credentials
12
+ * Used by help system to show/hide role-specific commands
13
+ */
14
+ export declare function getAuthContext(): AuthContext;
15
+ /**
16
+ * Check if current user is a superadmin
17
+ */
18
+ export declare function isSuperadmin(): boolean;
19
+ /**
20
+ * Check if current user is authenticated
21
+ */
22
+ export declare function isAuthenticated(): boolean;
23
+ //# sourceMappingURL=auth-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../../src/lib/auth-context.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAiC5C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
@@ -0,0 +1,49 @@
1
+ // Path: znvault-cli/src/lib/auth-context.ts
2
+ import { getCredentials, hasApiKey } from './config.js';
3
+ /**
4
+ * Get current authentication context from stored credentials
5
+ * Used by help system to show/hide role-specific commands
6
+ */
7
+ export function getAuthContext() {
8
+ const credentials = getCredentials();
9
+ // If using API key, we don't know the role (could be any)
10
+ // So show all commands to be safe
11
+ if (hasApiKey()) {
12
+ return {
13
+ isAuthenticated: true,
14
+ isSuperadmin: true, // Assume superadmin to show all commands
15
+ isAdmin: true,
16
+ role: 'unknown',
17
+ };
18
+ }
19
+ if (!credentials) {
20
+ return {
21
+ isAuthenticated: false,
22
+ isSuperadmin: false,
23
+ isAdmin: false,
24
+ role: 'unknown',
25
+ };
26
+ }
27
+ const role = credentials.role;
28
+ return {
29
+ isAuthenticated: true,
30
+ isSuperadmin: role === 'superadmin',
31
+ isAdmin: role === 'admin' || role === 'superadmin',
32
+ role,
33
+ username: credentials.username,
34
+ tenantId: credentials.tenantId ?? undefined,
35
+ };
36
+ }
37
+ /**
38
+ * Check if current user is a superadmin
39
+ */
40
+ export function isSuperadmin() {
41
+ return getAuthContext().isSuperadmin;
42
+ }
43
+ /**
44
+ * Check if current user is authenticated
45
+ */
46
+ export function isAuthenticated() {
47
+ return getAuthContext().isAuthenticated;
48
+ }
49
+ //# sourceMappingURL=auth-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-context.js","sourceRoot":"","sources":["../../src/lib/auth-context.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAaxD;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,0DAA0D;IAC1D,kCAAkC;IAClC,IAAI,SAAS,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI,EAAE,yCAAyC;YAC7D,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,SAAS;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAgB,CAAC;IAE1C,OAAO;QACL,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,IAAI,KAAK,YAAY;QACnC,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,YAAY;QAClD,IAAI;QACJ,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,SAAS;KAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,cAAc,EAAE,CAAC,YAAY,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,cAAc,EAAE,CAAC,eAAe,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Mark a command description as superadmin-only
4
+ * The marker will be stripped from display for non-superadmins
5
+ */
6
+ export declare function superadminDesc(description: string): string;
7
+ /**
8
+ * Mark an option as tenant-related (hidden for tenant users who don't need it)
9
+ */
10
+ export declare function tenantOptionDesc(description: string): string;
11
+ /**
12
+ * Configure context-aware help on a command
13
+ * This filters out superadmin-only commands and options based on current auth context
14
+ */
15
+ export declare function configureContextHelp(cmd: Command): void;
16
+ /**
17
+ * Add a superadmin-only option to a command
18
+ * Will be hidden from help for non-superadmins
19
+ */
20
+ export declare function addSuperadminOption(cmd: Command, flags: string, description: string, defaultValue?: unknown): Command;
21
+ /**
22
+ * Add a tenant option (like --tenant <id>) that's hidden for tenant users
23
+ */
24
+ export declare function addTenantOption(cmd: Command, description?: string): Command;
25
+ /**
26
+ * Create a superadmin-only subcommand
27
+ */
28
+ export declare function createSuperadminCommand(name: string, description: string): Command;
29
+ //# sourceMappingURL=context-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-help.d.ts","sourceRoot":"","sources":["../../src/lib/context-help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAO5C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AAyBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CA0CvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,WAAW,SAAgC,GAC1C,OAAO,CAGT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAIlF"}
@@ -0,0 +1,110 @@
1
+ // Path: znvault-cli/src/lib/context-help.ts
2
+ import { Command, Option } from 'commander';
3
+ import { getAuthContext } from './auth-context.js';
4
+ // Marker suffix for superadmin-only items (stripped from display)
5
+ const SUPERADMIN_MARKER = ' [SUPERADMIN]';
6
+ const TENANT_OPTION_MARKER = ' [TENANT_OPTION]';
7
+ /**
8
+ * Mark a command description as superadmin-only
9
+ * The marker will be stripped from display for non-superadmins
10
+ */
11
+ export function superadminDesc(description) {
12
+ return description + SUPERADMIN_MARKER;
13
+ }
14
+ /**
15
+ * Mark an option as tenant-related (hidden for tenant users who don't need it)
16
+ */
17
+ export function tenantOptionDesc(description) {
18
+ return description + TENANT_OPTION_MARKER;
19
+ }
20
+ /**
21
+ * Check if description has superadmin marker
22
+ */
23
+ function isSuperadminOnly(description) {
24
+ return description.endsWith(SUPERADMIN_MARKER);
25
+ }
26
+ /**
27
+ * Check if description has tenant option marker
28
+ */
29
+ function isTenantOption(description) {
30
+ return description.endsWith(TENANT_OPTION_MARKER);
31
+ }
32
+ /**
33
+ * Strip markers from description
34
+ */
35
+ function stripMarkers(description) {
36
+ return description
37
+ .replace(SUPERADMIN_MARKER, '')
38
+ .replace(TENANT_OPTION_MARKER, '');
39
+ }
40
+ /**
41
+ * Configure context-aware help on a command
42
+ * This filters out superadmin-only commands and options based on current auth context
43
+ */
44
+ export function configureContextHelp(cmd) {
45
+ cmd.configureHelp({
46
+ // Filter visible subcommands
47
+ visibleCommands: (cmd) => {
48
+ const ctx = getAuthContext();
49
+ return cmd.commands.filter((sub) => {
50
+ const desc = sub.description();
51
+ // Hide superadmin commands for non-superadmins
52
+ if (isSuperadminOnly(desc) && !ctx.isSuperadmin) {
53
+ return false;
54
+ }
55
+ return true;
56
+ });
57
+ },
58
+ // Filter visible options
59
+ visibleOptions: (cmd) => {
60
+ const ctx = getAuthContext();
61
+ return cmd.options.filter((opt) => {
62
+ const desc = opt.description;
63
+ // Hide superadmin options for non-superadmins
64
+ if (isSuperadminOnly(desc) && !ctx.isSuperadmin) {
65
+ return false;
66
+ }
67
+ // Hide tenant options for tenant users (they have implicit tenant)
68
+ if (isTenantOption(desc) && ctx.tenantId && !ctx.isSuperadmin) {
69
+ return false;
70
+ }
71
+ return true;
72
+ });
73
+ },
74
+ // Format subcommand descriptions (strip markers)
75
+ subcommandDescription: (cmd) => {
76
+ return stripMarkers(cmd.description());
77
+ },
78
+ // Format option descriptions (strip markers)
79
+ optionDescription: (opt) => {
80
+ return stripMarkers(opt.description);
81
+ },
82
+ });
83
+ }
84
+ /**
85
+ * Add a superadmin-only option to a command
86
+ * Will be hidden from help for non-superadmins
87
+ */
88
+ export function addSuperadminOption(cmd, flags, description, defaultValue) {
89
+ const opt = new Option(flags, superadminDesc(description));
90
+ if (defaultValue !== undefined) {
91
+ opt.default(defaultValue);
92
+ }
93
+ return cmd.addOption(opt);
94
+ }
95
+ /**
96
+ * Add a tenant option (like --tenant <id>) that's hidden for tenant users
97
+ */
98
+ export function addTenantOption(cmd, description = 'Tenant ID (superadmin only)') {
99
+ const opt = new Option('--tenant <id>', tenantOptionDesc(description));
100
+ return cmd.addOption(opt);
101
+ }
102
+ /**
103
+ * Create a superadmin-only subcommand
104
+ */
105
+ export function createSuperadminCommand(name, description) {
106
+ const cmd = new Command(name);
107
+ cmd.description(superadminDesc(description));
108
+ return cmd;
109
+ }
110
+ //# sourceMappingURL=context-help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-help.js","sourceRoot":"","sources":["../../src/lib/context-help.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zincapp/znvault-cli",
3
- "version": "2.8.1",
3
+ "version": "2.9.1",
4
4
  "description": "Official CLI for ZN-Vault administration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",