@true-and-useful/janee 0.4.3 → 0.4.5

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
@@ -299,16 +299,22 @@ capabilities:
299
299
  ## CLI Reference
300
300
 
301
301
  ```bash
302
- janee init # Set up ~/.janee/ with example config
303
- janee add # Add a service (interactive)
302
+ janee init # Set up ~/.janee/ with example config
303
+ janee add # Add a service (interactive)
304
304
  janee add stripe -u https://api.stripe.com -k sk_xxx # Add with args
305
- janee remove <service> # Remove a service
306
- janee list # List configured services
307
- janee serve # Start MCP server
308
- janee logs # View audit log
309
- janee logs -f # Tail audit log
310
- janee sessions # List active sessions
311
- janee revoke <id> # Kill a session
305
+ janee remove <service> # Remove a service
306
+ janee remove <service> --yes # Remove without confirmation
307
+ janee list # List configured services
308
+ janee list --json # Output as JSON (for integrations)
309
+ janee search [query] # Search service directory
310
+ janee search stripe --json # Search with JSON output
311
+ janee serve # Start MCP server
312
+ janee logs # View audit log
313
+ janee logs -f # Tail audit log
314
+ janee logs --json # Output as JSON
315
+ janee sessions # List active sessions
316
+ janee sessions --json # Output as JSON
317
+ janee revoke <id> # Kill a session
312
318
  ```
313
319
 
314
320
  ### Non-interactive Setup (for AI agents)
@@ -1,2 +1,4 @@
1
- export declare function listCommand(): Promise<void>;
1
+ export declare function listCommand(options?: {
2
+ json?: boolean;
3
+ }): Promise<void>;
2
4
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAkDjD"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFjF"}
@@ -2,15 +2,44 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.listCommand = listCommand;
4
4
  const config_yaml_1 = require("../config-yaml");
5
- async function listCommand() {
5
+ async function listCommand(options = {}) {
6
6
  try {
7
7
  if (!(0, config_yaml_1.hasYAMLConfig)()) {
8
- console.log('No config found. Run `janee init` first.');
8
+ if (options.json) {
9
+ console.log(JSON.stringify({ error: 'No config found' }, null, 2));
10
+ }
11
+ else {
12
+ console.log('No config found. Run `janee init` first.');
13
+ }
9
14
  process.exit(1);
10
15
  }
11
16
  const config = (0, config_yaml_1.loadYAMLConfig)();
12
17
  const serviceNames = Object.keys(config.services);
13
18
  const capabilityNames = Object.keys(config.capabilities);
19
+ if (options.json) {
20
+ // JSON output - no secrets
21
+ const services = serviceNames.map(name => {
22
+ const service = config.services[name];
23
+ return {
24
+ name,
25
+ baseUrl: service.baseUrl,
26
+ authType: service.auth.type
27
+ };
28
+ });
29
+ const capabilities = capabilityNames.map(name => {
30
+ const cap = config.capabilities[name];
31
+ return {
32
+ name,
33
+ service: cap.service,
34
+ ttl: cap.ttl,
35
+ allowRules: cap.rules?.allow?.length || 0,
36
+ denyRules: cap.rules?.deny?.length || 0
37
+ };
38
+ });
39
+ console.log(JSON.stringify({ services, capabilities }, null, 2));
40
+ return;
41
+ }
42
+ // Human-readable output
14
43
  if (serviceNames.length === 0) {
15
44
  console.log('No services configured yet.');
16
45
  console.log('');
@@ -43,10 +72,20 @@ async function listCommand() {
43
72
  }
44
73
  catch (error) {
45
74
  if (error instanceof Error) {
46
- console.error('❌ Error:', error.message);
75
+ if (options.json) {
76
+ console.log(JSON.stringify({ error: error.message }, null, 2));
77
+ }
78
+ else {
79
+ console.error('❌ Error:', error.message);
80
+ }
47
81
  }
48
82
  else {
49
- console.error('❌ Unknown error occurred');
83
+ if (options.json) {
84
+ console.log(JSON.stringify({ error: 'Unknown error occurred' }, null, 2));
85
+ }
86
+ else {
87
+ console.error('❌ Unknown error occurred');
88
+ }
50
89
  }
51
90
  process.exit(1);
52
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":";;AAEA,kCAkDC;AApDD,gDAA+D;AAExD,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,2BAAa,GAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,4BAAc,GAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEzD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAElB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,6 @@ export declare function logsCommand(options: {
2
2
  follow?: boolean;
3
3
  lines?: string;
4
4
  service?: string;
5
+ json?: boolean;
5
6
  }): Promise<void>;
6
7
  //# sourceMappingURL=logs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DhB"}
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"AAGA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhB"}
@@ -7,6 +7,11 @@ async function logsCommand(options) {
7
7
  try {
8
8
  const auditLogger = new audit_1.AuditLogger((0, config_yaml_1.getAuditDir)());
9
9
  if (options.follow) {
10
+ // JSON mode not supported for follow (streaming)
11
+ if (options.json) {
12
+ console.log(JSON.stringify({ error: '--json not supported with --follow' }, null, 2));
13
+ process.exit(1);
14
+ }
10
15
  // Tail logs in real-time
11
16
  console.log('Following logs (Ctrl+C to stop)...\n');
12
17
  for await (const event of auditLogger.tail()) {
@@ -23,6 +28,25 @@ async function logsCommand(options) {
23
28
  limit,
24
29
  service: options.service
25
30
  });
31
+ if (options.json) {
32
+ // JSON output
33
+ const output = events.reverse().map(event => ({
34
+ id: event.id,
35
+ timestamp: event.timestamp,
36
+ method: event.method,
37
+ service: event.service,
38
+ path: event.path,
39
+ statusCode: event.statusCode,
40
+ duration: event.duration,
41
+ agentId: event.agentId,
42
+ denied: event.denied,
43
+ denyReason: event.denyReason,
44
+ reason: event.reason
45
+ }));
46
+ console.log(JSON.stringify({ logs: output }, null, 2));
47
+ return;
48
+ }
49
+ // Human-readable output
26
50
  if (events.length === 0) {
27
51
  console.log('No logs found.');
28
52
  console.log('');
@@ -44,10 +68,20 @@ async function logsCommand(options) {
44
68
  }
45
69
  catch (error) {
46
70
  if (error instanceof Error) {
47
- console.error('❌ Error:', error.message);
71
+ if (options.json) {
72
+ console.log(JSON.stringify({ error: error.message }, null, 2));
73
+ }
74
+ else {
75
+ console.error('❌ Error:', error.message);
76
+ }
48
77
  }
49
78
  else {
50
- console.error('❌ Unknown error occurred');
79
+ if (options.json) {
80
+ console.log(JSON.stringify({ error: 'Unknown error occurred' }, null, 2));
81
+ }
82
+ else {
83
+ console.error('❌ Unknown error occurred');
84
+ }
51
85
  }
52
86
  process.exit(1);
53
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/cli/commands/logs.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export declare function removeCommand(serviceName: string): Promise<void>;
1
+ export declare function removeCommand(serviceName: string, options?: {
2
+ yes?: boolean;
3
+ }): Promise<void>;
2
4
  //# sourceMappingURL=remove.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEtE"}
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEvG"}
@@ -37,7 +37,7 @@ exports.removeCommand = removeCommand;
37
37
  const readline = __importStar(require("readline/promises"));
38
38
  const process_1 = require("process");
39
39
  const config_yaml_1 = require("../config-yaml");
40
- async function removeCommand(serviceName) {
40
+ async function removeCommand(serviceName, options = {}) {
41
41
  try {
42
42
  // Check for YAML config
43
43
  if (!(0, config_yaml_1.hasYAMLConfig)()) {
@@ -50,7 +50,6 @@ async function removeCommand(serviceName) {
50
50
  console.error(`❌ Service "${serviceName}" not found`);
51
51
  process.exit(1);
52
52
  }
53
- const rl = readline.createInterface({ input: process_1.stdin, output: process_1.stdout });
54
53
  // Check for capabilities using this service
55
54
  const dependentCaps = Object.entries(config.capabilities)
56
55
  .filter(([_, cap]) => cap.service === serviceName)
@@ -60,12 +59,15 @@ async function removeCommand(serviceName) {
60
59
  dependentCaps.forEach(cap => console.log(` - ${cap}`));
61
60
  console.log();
62
61
  }
63
- // Confirm deletion
64
- const answer = await rl.question(`Are you sure you want to remove service "${serviceName}"? This cannot be undone. (y/N): `);
65
- rl.close();
66
- if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
67
- console.log('❌ Cancelled');
68
- return;
62
+ // Confirm deletion (skip if --yes flag is set)
63
+ if (!options.yes) {
64
+ const rl = readline.createInterface({ input: process_1.stdin, output: process_1.stdout });
65
+ const answer = await rl.question(`Are you sure you want to remove service "${serviceName}"? This cannot be undone. (y/N): `);
66
+ rl.close();
67
+ if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
68
+ console.log('❌ Cancelled');
69
+ return;
70
+ }
69
71
  }
70
72
  // Remove service
71
73
  delete config.services[serviceName];
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,sCAiEC;AArED,4DAA8C;AAC9C,qCAA2D;AAC3D,gDAA+E;AAExE,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,wBAAwB;QACxB,IAAI,CAAC,IAAA,2BAAa,GAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,4BAAc,GAAE,CAAC;QAEhC,0BAA0B;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,cAAc,WAAW,aAAa,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAL,eAAK,EAAE,MAAM,EAAN,gBAAM,EAAE,CAAC,CAAC;QAEvD,4CAA4C;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;aACtD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC9B,4CAA4C,WAAW,mCAAmC,CAC3F,CAAC;QAEF,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEpC,gCAAgC;QAChC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAA,4BAAc,EAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,yBAAyB,CAAC,CAAC;QAEhE,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,MAAM,4BAA4B,CAAC,CAAC;QAC7E,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/cli/commands/remove.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Search the service directory
3
3
  */
4
- export declare function searchCommand(query?: string, verbose?: boolean): void;
4
+ export declare function searchCommand(query?: string, options?: {
5
+ verbose?: boolean;
6
+ json?: boolean;
7
+ }): void;
5
8
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI,CAqCnE"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmCH,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CA0DvG"}
@@ -20,12 +20,35 @@ function formatService(service, verbose = false) {
20
20
  }
21
21
  return lines.join('\n');
22
22
  }
23
- function searchCommand(query, verbose = false) {
23
+ function serviceToJSON(service) {
24
+ return {
25
+ name: service.name,
26
+ description: service.description,
27
+ baseUrl: service.baseUrl,
28
+ authType: service.auth.type,
29
+ authFields: service.auth.fields,
30
+ category: service.tags[0] || 'other',
31
+ tags: service.tags,
32
+ docs: service.docs
33
+ };
34
+ }
35
+ function searchCommand(query, options = {}) {
36
+ const verbose = options.verbose || false;
37
+ const json = options.json || false;
24
38
  if (!query) {
25
- // List all by category
39
+ // List all services
40
+ const categories = (0, directory_1.listByCategory)();
41
+ const allServices = [];
42
+ for (const [_, services] of categories) {
43
+ allServices.push(...services);
44
+ }
45
+ if (json) {
46
+ console.log(JSON.stringify(allServices.map(serviceToJSON), null, 2));
47
+ return;
48
+ }
49
+ // Human-readable output
26
50
  console.log('📚 Janee Service Directory\n');
27
51
  console.log('Usage: janee search <query>\n');
28
- const categories = (0, directory_1.listByCategory)();
29
52
  for (const [category, services] of categories) {
30
53
  console.log(`\n${category.toUpperCase()}`);
31
54
  console.log('─'.repeat(40));
@@ -37,6 +60,11 @@ function searchCommand(query, verbose = false) {
37
60
  return;
38
61
  }
39
62
  const results = (0, directory_1.searchDirectory)(query);
63
+ if (json) {
64
+ console.log(JSON.stringify(results.map(serviceToJSON), null, 2));
65
+ return;
66
+ }
67
+ // Human-readable output
40
68
  if (results.length === 0) {
41
69
  console.log(`No services found matching "${query}"`);
42
70
  console.log('\nRun "janee search" to see all available services');
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAsBH,sCAqCC;AAzDD,oDAAwF;AAExF,SAAS,aAAa,CAAC,OAAwB,EAAE,OAAO,GAAG,KAAK;IAC9D,MAAM,KAAK,GAAG;QACZ,KAAK,OAAO,CAAC,IAAI,EAAE;QACnB,OAAO,OAAO,CAAC,WAAW,EAAE;KAC7B,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc,EAAE,OAAO,GAAG,KAAK;IAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,IAAA,0BAAc,GAAE,CAAC;QACpC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,MAAM,WAAW,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,MAAM,CAAC,CAAC;IAEtG,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- export declare function sessionsCommand(): Promise<void>;
1
+ export declare function sessionsCommand(options?: {
2
+ json?: boolean;
3
+ }): Promise<void>;
2
4
  //# sourceMappingURL=sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sessions.ts"],"names":[],"mappings":"AAeA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA0DrD"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sessions.ts"],"names":[],"mappings":"AAeA,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FrF"}
@@ -7,13 +7,18 @@ exports.sessionsCommand = sessionsCommand;
7
7
  const config_yaml_1 = require("../config-yaml");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
- async function sessionsCommand() {
10
+ async function sessionsCommand(options = {}) {
11
11
  try {
12
12
  const sessionsFile = path_1.default.join((0, config_yaml_1.getConfigDir)(), 'sessions.json');
13
13
  if (!fs_1.default.existsSync(sessionsFile)) {
14
- console.log('No active sessions');
15
- console.log('');
16
- console.log('Sessions will appear when agents access APIs via MCP.');
14
+ if (options.json) {
15
+ console.log(JSON.stringify({ sessions: [] }, null, 2));
16
+ }
17
+ else {
18
+ console.log('No active sessions');
19
+ console.log('');
20
+ console.log('Sessions will appear when agents access APIs via MCP.');
21
+ }
17
22
  return;
18
23
  }
19
24
  const data = fs_1.default.readFileSync(sessionsFile, 'utf8');
@@ -23,6 +28,26 @@ async function sessionsCommand() {
23
28
  const active = sessions.filter(s => {
24
29
  return !s.revoked && new Date(s.expiresAt) > now;
25
30
  });
31
+ if (options.json) {
32
+ // JSON output
33
+ const output = active.map(session => {
34
+ const expires = new Date(session.expiresAt);
35
+ const ttl = Math.floor((expires.getTime() - now.getTime()) / 1000);
36
+ return {
37
+ id: session.id,
38
+ capability: session.capability,
39
+ service: session.service,
40
+ agentId: session.agentId,
41
+ reason: session.reason,
42
+ createdAt: session.createdAt,
43
+ expiresAt: session.expiresAt,
44
+ ttlSeconds: ttl
45
+ };
46
+ });
47
+ console.log(JSON.stringify({ sessions: output }, null, 2));
48
+ return;
49
+ }
50
+ // Human-readable output
26
51
  if (active.length === 0) {
27
52
  console.log('No active sessions');
28
53
  return;
@@ -51,10 +76,20 @@ async function sessionsCommand() {
51
76
  }
52
77
  catch (error) {
53
78
  if (error instanceof Error) {
54
- console.error('❌ Error:', error.message);
79
+ if (options.json) {
80
+ console.log(JSON.stringify({ error: error.message }, null, 2));
81
+ }
82
+ else {
83
+ console.error('❌ Error:', error.message);
84
+ }
55
85
  }
56
86
  else {
57
- console.error('❌ Unknown error occurred');
87
+ if (options.json) {
88
+ console.log(JSON.stringify({ error: 'Unknown error occurred' }, null, 2));
89
+ }
90
+ else {
91
+ console.error('❌ Unknown error occurred');
92
+ }
58
93
  }
59
94
  process.exit(1);
60
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/cli/commands/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/cli/commands/sessions.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export interface ServerConfig {
35
35
  port: number;
36
36
  host: string;
37
37
  logBodies?: boolean;
38
+ strictDecryption?: boolean;
38
39
  }
39
40
  export interface JaneeYAMLConfig {
40
41
  version: string;
@@ -44,8 +45,14 @@ export interface JaneeYAMLConfig {
44
45
  services: Record<string, ServiceConfig>;
45
46
  capabilities: Record<string, CapabilityConfig>;
46
47
  }
47
- export declare function getAuditDir(): string;
48
+ /**
49
+ * Get config directory path (dynamically computed for testability)
50
+ */
48
51
  export declare function getConfigDir(): string;
52
+ /**
53
+ * Get audit directory path
54
+ */
55
+ export declare function getAuditDir(): string;
49
56
  /**
50
57
  * Check if using YAML config
51
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config-yaml.d.ts","sourceRoot":"","sources":["../../src/cli/config-yaml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAChD;AAOD,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAqDhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CA6B5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAsBhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GACf,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,gBAAgB,GAC1B,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAyDpC"}
1
+ {"version":3,"file":"config-yaml.d.ts","sourceRoot":"","sources":["../../src/cli/config-yaml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,CAAC;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAgBD;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AA0BD;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAwEhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAkC5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,eAAe,CAuBhD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GACf,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,gBAAgB,GAC1B,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAyDpC"}
@@ -7,8 +7,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getAuditDir = getAuditDir;
11
10
  exports.getConfigDir = getConfigDir;
11
+ exports.getAuditDir = getAuditDir;
12
12
  exports.hasYAMLConfig = hasYAMLConfig;
13
13
  exports.loadYAMLConfig = loadYAMLConfig;
14
14
  exports.saveYAMLConfig = saveYAMLConfig;
@@ -21,79 +21,93 @@ const path_1 = __importDefault(require("path"));
21
21
  const os_1 = __importDefault(require("os"));
22
22
  const js_yaml_1 = __importDefault(require("js-yaml"));
23
23
  const crypto_1 = require("../core/crypto");
24
- const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.janee');
25
- const CONFIG_FILE_YAML = path_1.default.join(CONFIG_DIR, 'config.yaml');
26
- const CONFIG_FILE_JSON = path_1.default.join(CONFIG_DIR, 'config.json');
27
- const AUDIT_DIR = path_1.default.join(CONFIG_DIR, 'logs');
28
- function getAuditDir() {
29
- return AUDIT_DIR;
30
- }
24
+ /**
25
+ * Get config directory path (dynamically computed for testability)
26
+ */
31
27
  function getConfigDir() {
32
- return CONFIG_DIR;
28
+ return path_1.default.join(os_1.default.homedir(), '.janee');
29
+ }
30
+ /**
31
+ * Get YAML config file path
32
+ */
33
+ function getConfigFileYAML() {
34
+ return path_1.default.join(getConfigDir(), 'config.yaml');
35
+ }
36
+ /**
37
+ * Get JSON config file path
38
+ */
39
+ function getConfigFileJSON() {
40
+ return path_1.default.join(getConfigDir(), 'config.json');
41
+ }
42
+ /**
43
+ * Get audit directory path
44
+ */
45
+ function getAuditDir() {
46
+ return path_1.default.join(getConfigDir(), 'logs');
33
47
  }
34
48
  /**
35
49
  * Check if using YAML config
36
50
  */
37
51
  function hasYAMLConfig() {
38
- return fs_1.default.existsSync(CONFIG_FILE_YAML);
52
+ return fs_1.default.existsSync(getConfigFileYAML());
53
+ }
54
+ /**
55
+ * Helper to decrypt a secret with strict/lenient mode
56
+ */
57
+ function tryDecrypt(encrypted, masterKey, strictMode, fieldDescription) {
58
+ try {
59
+ return (0, crypto_1.decryptSecret)(encrypted, masterKey);
60
+ }
61
+ catch (error) {
62
+ if (strictMode) {
63
+ throw new Error(`Failed to decrypt ${fieldDescription}. ` +
64
+ `This usually means the value is corrupted or the master key is wrong. ` +
65
+ `To allow plaintext values (not recommended), set server.strictDecryption: false in config.yaml`);
66
+ }
67
+ // Lenient mode: assume plaintext
68
+ return encrypted;
69
+ }
39
70
  }
40
71
  /**
41
72
  * Load YAML configuration
42
73
  */
43
74
  function loadYAMLConfig() {
44
- if (!fs_1.default.existsSync(CONFIG_FILE_YAML)) {
75
+ if (!fs_1.default.existsSync(getConfigFileYAML())) {
45
76
  throw new Error('No YAML config found. Run migration or init.');
46
77
  }
47
- const content = fs_1.default.readFileSync(CONFIG_FILE_YAML, 'utf8');
78
+ const content = fs_1.default.readFileSync(getConfigFileYAML(), 'utf8');
48
79
  const config = js_yaml_1.default.load(content);
49
80
  // Ensure services and capabilities are objects (YAML parses empty sections as null)
50
81
  config.services = config.services || {};
51
82
  config.capabilities = config.capabilities || {};
52
- // Decrypt service auth keys (or use as-is if not encrypted)
83
+ // Strict decryption mode (default: true)
84
+ const strictDecryption = config.server?.strictDecryption ?? true;
85
+ // Decrypt service auth keys
53
86
  for (const [name, service] of Object.entries(config.services)) {
54
87
  const svc = service;
55
88
  if (svc.auth.type === 'bearer' && svc.auth.key) {
56
- try {
57
- svc.auth.key = (0, crypto_1.decryptSecret)(svc.auth.key, config.masterKey);
58
- }
59
- catch {
60
- // Key is plaintext, use as-is
61
- }
89
+ svc.auth.key = tryDecrypt(svc.auth.key, config.masterKey, strictDecryption, `bearer token for service "${name}"`);
62
90
  }
63
91
  else if (svc.auth.type === 'hmac' || svc.auth.type === 'hmac-bybit' || svc.auth.type === 'hmac-okx') {
64
92
  if (svc.auth.apiKey) {
65
- try {
66
- svc.auth.apiKey = (0, crypto_1.decryptSecret)(svc.auth.apiKey, config.masterKey);
67
- }
68
- catch {
69
- // Key is plaintext, use as-is
70
- }
93
+ svc.auth.apiKey = tryDecrypt(svc.auth.apiKey, config.masterKey, strictDecryption, `API key for service "${name}"`);
71
94
  }
72
95
  if (svc.auth.apiSecret) {
73
- try {
74
- svc.auth.apiSecret = (0, crypto_1.decryptSecret)(svc.auth.apiSecret, config.masterKey);
75
- }
76
- catch {
77
- // Key is plaintext, use as-is
78
- }
96
+ svc.auth.apiSecret = tryDecrypt(svc.auth.apiSecret, config.masterKey, strictDecryption, `API secret for service "${name}"`);
79
97
  }
80
98
  if (svc.auth.passphrase) {
81
- try {
82
- svc.auth.passphrase = (0, crypto_1.decryptSecret)(svc.auth.passphrase, config.masterKey);
83
- }
84
- catch {
85
- // Passphrase is plaintext, use as-is
86
- }
99
+ svc.auth.passphrase = tryDecrypt(svc.auth.passphrase, config.masterKey, strictDecryption, `passphrase for service "${name}"`);
87
100
  }
88
101
  }
89
- else if (svc.auth.type === 'service-account' && svc.auth.credentials) {
90
- try {
91
- svc.auth.credentials = (0, crypto_1.decryptSecret)(svc.auth.credentials, config.masterKey);
92
- }
93
- catch {
94
- // Credentials are plaintext, use as-is
102
+ else if (svc.auth.type === 'headers' && svc.auth.headers) {
103
+ // Decrypt each header value
104
+ for (const [headerName, headerValue] of Object.entries(svc.auth.headers)) {
105
+ svc.auth.headers[headerName] = tryDecrypt(headerValue, config.masterKey, strictDecryption, `header "${headerName}" for service "${name}"`);
95
106
  }
96
107
  }
108
+ else if (svc.auth.type === 'service-account' && svc.auth.credentials) {
109
+ svc.auth.credentials = tryDecrypt(svc.auth.credentials, config.masterKey, strictDecryption, `service account credentials for service "${name}"`);
110
+ }
97
111
  }
98
112
  return config;
99
113
  }
@@ -119,6 +133,12 @@ function saveYAMLConfig(config) {
119
133
  svc.auth.passphrase = (0, crypto_1.encryptSecret)(svc.auth.passphrase, config.masterKey);
120
134
  }
121
135
  }
136
+ else if (svc.auth.type === 'headers' && svc.auth.headers) {
137
+ // Encrypt each header value
138
+ for (const headerName of Object.keys(svc.auth.headers)) {
139
+ svc.auth.headers[headerName] = (0, crypto_1.encryptSecret)(svc.auth.headers[headerName], config.masterKey);
140
+ }
141
+ }
122
142
  else if (svc.auth.type === 'service-account' && svc.auth.credentials) {
123
143
  svc.auth.credentials = (0, crypto_1.encryptSecret)(svc.auth.credentials, config.masterKey);
124
144
  }
@@ -127,16 +147,16 @@ function saveYAMLConfig(config) {
127
147
  indent: 2,
128
148
  lineWidth: 120
129
149
  });
130
- fs_1.default.writeFileSync(CONFIG_FILE_YAML, yamlContent, { mode: 0o600 });
150
+ fs_1.default.writeFileSync(getConfigFileYAML(), yamlContent, { mode: 0o600 });
131
151
  }
132
152
  /**
133
153
  * Initialize new YAML config
134
154
  */
135
155
  function initYAMLConfig() {
136
- if (!fs_1.default.existsSync(CONFIG_DIR)) {
137
- fs_1.default.mkdirSync(CONFIG_DIR, { mode: 0o700, recursive: true });
156
+ if (!fs_1.default.existsSync(getConfigDir())) {
157
+ fs_1.default.mkdirSync(getConfigDir(), { mode: 0o700, recursive: true });
138
158
  }
139
- if (fs_1.default.existsSync(CONFIG_FILE_YAML)) {
159
+ if (fs_1.default.existsSync(getConfigFileYAML())) {
140
160
  throw new Error('Config already exists');
141
161
  }
142
162
  const config = {
@@ -144,7 +164,8 @@ function initYAMLConfig() {
144
164
  masterKey: (0, crypto_1.generateMasterKey)(),
145
165
  server: {
146
166
  port: 9119,
147
- host: 'localhost'
167
+ host: 'localhost',
168
+ strictDecryption: true // Fail hard on decryption errors (recommended)
148
169
  },
149
170
  services: {},
150
171
  capabilities: {}
@@ -184,14 +205,14 @@ function addCapabilityYAML(name, capConfig) {
184
205
  * Migrate from JSON to YAML config
185
206
  */
186
207
  function migrateToYAML() {
187
- if (!fs_1.default.existsSync(CONFIG_FILE_JSON)) {
208
+ if (!fs_1.default.existsSync(getConfigFileJSON())) {
188
209
  throw new Error('No JSON config to migrate');
189
210
  }
190
- if (fs_1.default.existsSync(CONFIG_FILE_YAML)) {
211
+ if (fs_1.default.existsSync(getConfigFileYAML())) {
191
212
  throw new Error('YAML config already exists');
192
213
  }
193
214
  // Load old JSON config
194
- const oldConfig = JSON.parse(fs_1.default.readFileSync(CONFIG_FILE_JSON, 'utf8'));
215
+ const oldConfig = JSON.parse(fs_1.default.readFileSync(getConfigFileJSON(), 'utf8'));
195
216
  // Create new YAML config
196
217
  const newConfig = {
197
218
  version: '0.2.0',
@@ -226,10 +247,10 @@ function migrateToYAML() {
226
247
  indent: 2,
227
248
  lineWidth: 120
228
249
  });
229
- fs_1.default.writeFileSync(CONFIG_FILE_YAML, yamlContent, { mode: 0o600 });
250
+ fs_1.default.writeFileSync(getConfigFileYAML(), yamlContent, { mode: 0o600 });
230
251
  console.log('✅ Migrated to YAML config');
231
- console.log(`Old config backed up at: ${CONFIG_FILE_JSON}.bak`);
252
+ console.log(`Old config backed up at: ${getConfigFileJSON()}.bak`);
232
253
  // Backup old config
233
- fs_1.default.renameSync(CONFIG_FILE_JSON, `${CONFIG_FILE_JSON}.bak`);
254
+ fs_1.default.renameSync(getConfigFileJSON(), `${getConfigFileJSON()}.bak`);
234
255
  }
235
256
  //# sourceMappingURL=config-yaml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-yaml.js","sourceRoot":"","sources":["../../src/cli/config-yaml.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AA6DH,kCAEC;AAED,oCAEC;AAKD,sCAEC;AAKD,wCAqDC;AAKD,wCA6BC;AAKD,wCAsBC;AAKD,wCAiBC;AAKD,8CAgBC;AAKD,sCAyDC;AAxSD,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AACpB,sDAA2B;AAC3B,2CAAiF;AAkDjF,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC9D,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAC9D,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEhD,SAAgB,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,OAAO,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,iBAAI,CAAC,IAAI,CAAC,OAAO,CAAoB,CAAC;IAErD,oFAAoF;IACpF,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;IAEhD,4DAA4D;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAwB,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,8BAA8B;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACtG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACrE,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3E,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7E,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvE,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/E,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAuB;IACpD,0CAA0C;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,OAAwB,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACtG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAA,sBAAa,EAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,iBAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QACxC,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,YAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,IAAA,0BAAiB,GAAE;QAC9B,MAAM,EAAE;YACN,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;SAClB;QACD,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,IAAY,EACZ,OAAe,EACf,IAAgB;IAEhB,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;QACtB,OAAO;QACP,IAAI;KACL,CAAC;IAEF,cAAc,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,IAAY,EACZ,SAA2B;IAE3B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,kBAAkB,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,YAAY,SAAS,CAAC,OAAO,aAAa,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa;IAC3B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,YAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAExE,yBAAyB;IACzB,MAAM,SAAS,GAAoB;QACjC,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE;YACN,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,IAAI,IAAI;YACtC,IAAI,EAAE,WAAW;SAClB;QACD,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,mBAAmB;IACnB,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;gBACjC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,GAAG,EAAE,OAAO,CAAC,YAAY,CAAE,oBAAoB;iBAChD;aACF,CAAC;YAEF,6CAA6C;YAC7C,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;gBACrC,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,GAAG,EAAE,IAAI;gBACT,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,WAAW,GAAG,iBAAI,CAAC,IAAI,CAAC,SAAS,EAAE;QACvC,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,YAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEjE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAgB,MAAM,CAAC,CAAC;IAEhE,oBAAoB;IACpB,YAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,GAAG,gBAAgB,MAAM,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"config-yaml.js","sourceRoot":"","sources":["../../src/cli/config-yaml.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -15,11 +15,17 @@ const logs_1 = require("./commands/logs");
15
15
  const sessions_1 = require("./commands/sessions");
16
16
  const revoke_1 = require("./commands/revoke");
17
17
  const search_1 = require("./commands/search");
18
+ const fs_1 = require("fs");
19
+ const path_1 = require("path");
20
+ // Read version from package.json
21
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
22
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf8'));
23
+ const version = packageJson.version || '0.0.0';
18
24
  const program = new commander_1.Command();
19
25
  program
20
26
  .name('janee')
21
27
  .description('Secrets management for AI agents')
22
- .version('0.2.1');
28
+ .version(version);
23
29
  // Commands
24
30
  program
25
31
  .command('init')
@@ -42,6 +48,7 @@ program
42
48
  program
43
49
  .command('remove <service>')
44
50
  .description('Remove a service from Janee')
51
+ .option('-y, --yes', 'Skip confirmation prompt')
45
52
  .action(remove_1.removeCommand);
46
53
  program
47
54
  .command('serve')
@@ -50,6 +57,7 @@ program
50
57
  program
51
58
  .command('list')
52
59
  .description('List configured services')
60
+ .option('--json', 'Output as JSON')
53
61
  .action(list_1.listCommand);
54
62
  program
55
63
  .command('logs')
@@ -57,10 +65,12 @@ program
57
65
  .option('-f, --follow', 'Follow logs in real-time')
58
66
  .option('-n, --lines <count>', 'Number of recent logs to show', '20')
59
67
  .option('-s, --service <name>', 'Filter by service')
68
+ .option('--json', 'Output as JSON (not supported with --follow)')
60
69
  .action(logs_1.logsCommand);
61
70
  program
62
71
  .command('sessions')
63
72
  .description('List active sessions')
73
+ .option('--json', 'Output as JSON')
64
74
  .action(sessions_1.sessionsCommand);
65
75
  program
66
76
  .command('revoke <session>')
@@ -70,6 +80,7 @@ program
70
80
  .command('search [query]')
71
81
  .description('Search the service directory')
72
82
  .option('-v, --verbose', 'Show full details for each service')
73
- .action((query, options) => (0, search_1.searchCommand)(query, options.verbose));
83
+ .option('--json', 'Output as JSON')
84
+ .action((query, options) => (0, search_1.searchCommand)(query, options));
74
85
  program.parse();
75
86
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;AAEH,yCAAoC;AACpC,0CAA8C;AAC9C,wCAA4C;AAC5C,8CAAkD;AAClD,4CAAgD;AAChD,0CAA8C;AAC9C,0CAA8C;AAC9C,kDAAsD;AACtD,8CAAkD;AAClD,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,kCAAkC,CAAC;KAC/C,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,WAAW;AACX,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;KACpD,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;KACpD,MAAM,CAAC,oBAAoB,EAAE,qFAAqF,CAAC;KACnH,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,CAAC;KACnE,MAAM,CAAC,2BAA2B,EAAE,2BAA2B,CAAC;KAChE,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;KACxE,MAAM,CAAC,yBAAyB,EAAE,2CAA2C,CAAC;KAC9E,MAAM,CAAC,6BAA6B,EAAE,2CAA2C,CAAC;KAClF,MAAM,CAAC,2BAA2B,EAAE,mEAAmE,CAAC;KACxG,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,CAAC;KAC5E,MAAM,CAAC,gBAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iBAAiB,CAAC;KAC9B,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,+BAA+B,EAAE,IAAI,CAAC;KACpE,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;KACnD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,0BAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAC7D,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAErE,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@true-and-useful/janee",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "Secrets management for AI agents via MCP",
5
5
  "main": "dist/index.js",
6
6
  "bin": {