@true-and-useful/janee 0.8.3 → 0.8.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.
Files changed (58) hide show
  1. package/README.md +82 -2
  2. package/dist/cli/commands/add.d.ts +5 -0
  3. package/dist/cli/commands/add.d.ts.map +1 -1
  4. package/dist/cli/commands/add.js +91 -5
  5. package/dist/cli/commands/add.js.map +1 -1
  6. package/dist/cli/commands/serve-mcp.d.ts.map +1 -1
  7. package/dist/cli/commands/serve-mcp.js +41 -1
  8. package/dist/cli/commands/serve-mcp.js.map +1 -1
  9. package/dist/cli/commands/status.d.ts +4 -0
  10. package/dist/cli/commands/status.d.ts.map +1 -0
  11. package/dist/cli/commands/status.js +127 -0
  12. package/dist/cli/commands/status.js.map +1 -0
  13. package/dist/cli/config-yaml.d.ts +18 -0
  14. package/dist/cli/config-yaml.d.ts.map +1 -1
  15. package/dist/cli/config-yaml.js +28 -1
  16. package/dist/cli/config-yaml.js.map +1 -1
  17. package/dist/cli/index.js +11 -0
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/core/agent-scope.d.ts +81 -0
  20. package/dist/core/agent-scope.d.ts.map +1 -0
  21. package/dist/core/agent-scope.js +146 -0
  22. package/dist/core/agent-scope.js.map +1 -0
  23. package/dist/core/exec.d.ts +86 -0
  24. package/dist/core/exec.d.ts.map +1 -0
  25. package/dist/core/exec.js +149 -0
  26. package/dist/core/exec.js.map +1 -0
  27. package/dist/core/health.d.ts +27 -0
  28. package/dist/core/health.d.ts.map +1 -0
  29. package/dist/core/health.js +73 -0
  30. package/dist/core/health.js.map +1 -0
  31. package/dist/core/mcp-server.d.ts +13 -0
  32. package/dist/core/mcp-server.d.ts.map +1 -1
  33. package/dist/core/mcp-server.js +299 -11
  34. package/dist/core/mcp-server.js.map +1 -1
  35. package/dist/core/sessions.d.ts.map +1 -1
  36. package/dist/core/sessions.js +11 -1
  37. package/dist/core/sessions.js.map +1 -1
  38. package/dist/providers/env.d.ts +27 -0
  39. package/dist/providers/env.d.ts.map +1 -0
  40. package/dist/providers/env.js +64 -0
  41. package/dist/providers/env.js.map +1 -0
  42. package/dist/providers/filesystem.d.ts +34 -0
  43. package/dist/providers/filesystem.d.ts.map +1 -0
  44. package/dist/providers/filesystem.js +143 -0
  45. package/dist/providers/filesystem.js.map +1 -0
  46. package/dist/providers/index.d.ts +25 -0
  47. package/dist/providers/index.d.ts.map +1 -0
  48. package/dist/providers/index.js +39 -0
  49. package/dist/providers/index.js.map +1 -0
  50. package/dist/providers/registry.d.ts +40 -0
  51. package/dist/providers/registry.d.ts.map +1 -0
  52. package/dist/providers/registry.js +113 -0
  53. package/dist/providers/registry.js.map +1 -0
  54. package/dist/providers/types.d.ts +137 -0
  55. package/dist/providers/types.d.ts.map +1 -0
  56. package/dist/providers/types.js +135 -0
  57. package/dist/providers/types.js.map +1 -0
  58. package/package.json +1 -1
package/README.md CHANGED
@@ -21,6 +21,7 @@
21
21
  | ⏱️ **Session TTLs** | Time-limited access with instant revocation |
22
22
  | 🔌 **Works with any MCP client** | Claude Desktop, Cursor, OpenClaw, and more |
23
23
  | 🏠 **Local-first** | Keys encrypted on your machine, never sent to a cloud |
24
+ | 🖥️ **Exec mode** | Run CLI tools with injected credentials — agents never see the keys |
24
25
 
25
26
  ---
26
27
 
@@ -144,6 +145,37 @@ capabilities:
144
145
  autoApprove: true
145
146
  ```
146
147
 
148
+ ### Add CLI tools (exec mode)
149
+
150
+ Some tools need credentials as environment variables, not HTTP headers. Exec mode handles this:
151
+
152
+ ```bash
153
+ janee add twitter --exec \
154
+ --key "tvly-xxx" \
155
+ --allow-commands "bird,tweet-cli" \
156
+ --env-map "TWITTER_API_KEY={{credential}}"
157
+ ```
158
+
159
+ Now agents can run CLI tools through Janee without ever seeing the API key:
160
+
161
+ ```typescript
162
+ // Agent calls janee_exec tool
163
+ janee_exec({
164
+ capability: "twitter",
165
+ command: ["bird", "post", "Hello world!"],
166
+ reason: "User asked to post a tweet"
167
+ })
168
+ ```
169
+
170
+ Janee spawns the process with `TWITTER_API_KEY` injected, runs the command, and returns stdout/stderr. The credential never enters the agent's context.
171
+
172
+ **Key flags:**
173
+ - `--exec` — configure as exec-mode (CLI wrapper instead of HTTP proxy)
174
+ - `--allow-commands` — whitelist of allowed executables (security)
175
+ - `--env-map` — map credentials to environment variables
176
+ - `--work-dir` — working directory for the subprocess
177
+ - `--timeout` — max execution time (default: 30s)
178
+
147
179
  ### Start the MCP server
148
180
 
149
181
  ```bash
@@ -223,7 +255,8 @@ Janee exposes three MCP tools:
223
255
  | Tool | Description |
224
256
  |------|-------------|
225
257
  | `list_services` | Discover available APIs and their policies |
226
- | `execute` | Make an API request through Janee |
258
+ | `execute` | Make an API request through Janee (HTTP proxy mode) |
259
+ | `exec` | Run a CLI command with injected credentials (exec mode) |
227
260
  | `reload_config` | Reload config from disk after adding/removing services (available when started with `janee serve`) |
228
261
 
229
262
  Agents discover what's available, then call APIs through Janee. Same audit trail, same protection.
@@ -266,6 +299,28 @@ capabilities:
266
299
  **Services** = Real APIs with real keys
267
300
  **Capabilities** = What agents can request, with policies
268
301
 
302
+ ### Exec mode capabilities
303
+
304
+ ```yaml
305
+ services:
306
+ twitter:
307
+ auth:
308
+ type: bearer
309
+ key: tvly-xxx
310
+
311
+ capabilities:
312
+ twitter:
313
+ service: twitter
314
+ mode: exec
315
+ allowCommands: ["bird", "tweet-cli"]
316
+ envMap:
317
+ TWITTER_API_KEY: "{{credential}}"
318
+ ttl: 1h
319
+ autoApprove: true
320
+ ```
321
+
322
+ Exec-mode capabilities use `janee_exec` instead of `execute`. The credential is injected as an environment variable — the agent sees only stdout/stderr.
323
+
269
324
  ---
270
325
 
271
326
  ## Request Policies
@@ -399,9 +454,34 @@ Agent never touches the real key.
399
454
 
400
455
  ---
401
456
 
457
+
458
+ ## Docker
459
+
460
+ Run Janee as a container — no local Node.js required:
461
+
462
+ ```bash
463
+ # Build
464
+ docker build -t janee .
465
+
466
+ # Run in HTTP mode
467
+ docker run -d -p 3000:3000 \
468
+ -v ~/.janee:/root/.janee:ro \
469
+ janee --transport http --port 3000 --host 0.0.0.0
470
+ ```
471
+
472
+ Or use Docker Compose:
473
+
474
+ ```bash
475
+ mkdir -p config && cp ~/.janee/config.yaml config/
476
+ docker compose up -d
477
+ ```
478
+
479
+ For Claude Desktop with Docker, see [Docker docs](docs/docker.md).
480
+
481
+ ---
402
482
  ## Contributing
403
483
 
404
- We welcome contributions! See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
484
+ We welcome contributions! Please read **[CONTRIBUTING.md](docs/CONTRIBUTING.md)** before submitting a PR — it includes the required PR checklist (tests, changelog, version bump, etc.).
405
485
 
406
486
  ---
407
487
 
@@ -10,6 +10,11 @@ export declare function addCommand(serviceName?: string, options?: {
10
10
  passphraseFromEnv?: string;
11
11
  credentialsFile?: string;
12
12
  scope?: string | string[];
13
+ exec?: boolean;
14
+ allowCommands?: string[];
15
+ envMap?: string[];
16
+ workDir?: string;
17
+ timeout?: string;
13
18
  json?: boolean;
14
19
  }): Promise<void>;
15
20
  //# sourceMappingURL=add.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAoBA,wBAAsB,UAAU,CAC9B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CACX,GACL,OAAO,CAAC,IAAI,CAAC,CAgff"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AA4CA,wBAAsB,UAAU,CAC9B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CACX,GACL,OAAO,CAAC,IAAI,CAAC,CAiiBf"}
@@ -51,6 +51,29 @@ function resolveEnvVar(varName, label) {
51
51
  }
52
52
  return value.trim();
53
53
  }
54
+ /**
55
+ * Parse --env-map arguments like KEY=value or KEY={{credential}} into a Record.
56
+ * Example: ["TWITTER_API_KEY={{credential}}", "TWITTER_USER=myhandle"]
57
+ * → { TWITTER_API_KEY: "{{credential}}", TWITTER_USER: "myhandle" }
58
+ */
59
+ function parseEnvMap(mappings) {
60
+ const result = {};
61
+ for (const mapping of mappings) {
62
+ const eqIdx = mapping.indexOf('=');
63
+ if (eqIdx === -1) {
64
+ console.error(`❌ Invalid --env-map format: "${mapping}" (expected KEY=value)`);
65
+ process.exit(1);
66
+ }
67
+ const key = mapping.slice(0, eqIdx).trim();
68
+ const value = mapping.slice(eqIdx + 1).trim();
69
+ if (!key) {
70
+ console.error(`❌ Invalid --env-map format: "${mapping}" (empty key)`);
71
+ process.exit(1);
72
+ }
73
+ result[key] = value;
74
+ }
75
+ return result;
76
+ }
54
77
  async function addCommand(serviceName, options = {}) {
55
78
  try {
56
79
  // Check for YAML config
@@ -86,6 +109,25 @@ async function addCommand(serviceName, options = {}) {
86
109
  }
87
110
  options.passphrase = resolveEnvVar(options.passphraseFromEnv, 'passphrase');
88
111
  }
112
+ // Exec mode validation (RFC 0001)
113
+ if (options.exec && !options.allowCommands?.length) {
114
+ if (options.json) {
115
+ console.log(JSON.stringify({ ok: false, error: '--exec requires --allow-commands (whitelist of allowed executables)' }));
116
+ }
117
+ else {
118
+ console.error('❌ --exec requires --allow-commands (whitelist of allowed executables)');
119
+ }
120
+ process.exit(1);
121
+ }
122
+ if (!options.exec && (options.allowCommands || options.envMap || options.workDir || options.timeout)) {
123
+ if (options.json) {
124
+ console.log(JSON.stringify({ ok: false, error: '--allow-commands, --env-map, --work-dir, and --timeout require --exec' }));
125
+ }
126
+ else {
127
+ console.error('❌ --allow-commands, --env-map, --work-dir, and --timeout require --exec');
128
+ }
129
+ process.exit(1);
130
+ }
89
131
  // Lazy readline — only created when a prompt is actually needed.
90
132
  // Prevents the process from hanging on stdin when fully non-interactive.
91
133
  let _rl = null;
@@ -434,14 +476,28 @@ async function addCommand(serviceName, options = {}) {
434
476
  // If readline was never opened, we're fully non-interactive.
435
477
  // Auto-create a capability with sensible defaults.
436
478
  if (!prompted && !config.capabilities[serviceName]) {
437
- config.capabilities[serviceName] = {
479
+ const capConfig = {
438
480
  service: serviceName,
439
481
  ttl: '1h',
440
482
  autoApprove: true,
441
483
  };
484
+ if (options.exec) {
485
+ capConfig.mode = 'exec';
486
+ if (options.allowCommands)
487
+ capConfig.allowCommands = options.allowCommands;
488
+ if (options.envMap)
489
+ capConfig.env = parseEnvMap(options.envMap);
490
+ if (options.workDir)
491
+ capConfig.workDir = options.workDir;
492
+ if (options.timeout)
493
+ capConfig.timeout = parseInt(options.timeout, 10);
494
+ }
495
+ config.capabilities[serviceName] = capConfig;
442
496
  (0, config_yaml_1.saveYAMLConfig)(config);
443
497
  result.capability = serviceName;
444
- result.capabilityMessage = `Added capability "${serviceName}" (1h TTL, auto-approve)`;
498
+ result.capabilityMessage = options.exec
499
+ ? `Added exec-mode capability "${serviceName}" (1h TTL, auto-approve, commands: ${(options.allowCommands || []).join(', ')})`
500
+ : `Added capability "${serviceName}" (1h TTL, auto-approve)`;
445
501
  }
446
502
  console.log(JSON.stringify(result));
447
503
  return;
@@ -452,13 +508,31 @@ async function addCommand(serviceName, options = {}) {
452
508
  // Auto-create a capability with sensible defaults instead of prompting.
453
509
  if (!prompted) {
454
510
  if (!config.capabilities[serviceName]) {
455
- config.capabilities[serviceName] = {
511
+ const capConfig = {
456
512
  service: serviceName,
457
513
  ttl: '1h',
458
514
  autoApprove: true,
459
515
  };
516
+ if (options.exec) {
517
+ capConfig.mode = 'exec';
518
+ if (options.allowCommands)
519
+ capConfig.allowCommands = options.allowCommands;
520
+ if (options.envMap)
521
+ capConfig.env = parseEnvMap(options.envMap);
522
+ if (options.workDir)
523
+ capConfig.workDir = options.workDir;
524
+ if (options.timeout)
525
+ capConfig.timeout = parseInt(options.timeout, 10);
526
+ }
527
+ config.capabilities[serviceName] = capConfig;
460
528
  (0, config_yaml_1.saveYAMLConfig)(config);
461
- console.log(`✅ Added capability "${serviceName}" (1h TTL, auto-approve)`);
529
+ if (options.exec) {
530
+ console.log(`✅ Added exec-mode capability "${serviceName}" (1h TTL, auto-approve)`);
531
+ console.log(` Allowed commands: ${(options.allowCommands || []).join(', ')}`);
532
+ }
533
+ else {
534
+ console.log(`✅ Added capability "${serviceName}" (1h TTL, auto-approve)`);
535
+ }
462
536
  console.log();
463
537
  }
464
538
  console.log("Done! Run 'janee serve' to start.");
@@ -483,12 +557,24 @@ async function addCommand(serviceName, options = {}) {
483
557
  const requiresReasonInput = await getRL().question('Requires reason? (y/N): ');
484
558
  const requiresReason = requiresReasonInput.toLowerCase() === 'y' || requiresReasonInput.toLowerCase() === 'yes';
485
559
  // Add capability
486
- config.capabilities[capName] = {
560
+ const capConfig = {
487
561
  service: serviceName,
488
562
  ttl,
489
563
  autoApprove,
490
564
  requiresReason
491
565
  };
566
+ if (options.exec) {
567
+ capConfig.mode = 'exec';
568
+ if (options.allowCommands)
569
+ capConfig.allowCommands = options.allowCommands;
570
+ if (options.envMap)
571
+ capConfig.env = parseEnvMap(options.envMap);
572
+ if (options.workDir)
573
+ capConfig.workDir = options.workDir;
574
+ if (options.timeout)
575
+ capConfig.timeout = parseInt(options.timeout, 10);
576
+ }
577
+ config.capabilities[capName] = capConfig;
492
578
  (0, config_yaml_1.saveYAMLConfig)(config);
493
579
  console.log(`✅ Added capability "${capName}"`);
494
580
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve-mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve-mcp.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8KlF"}
1
+ {"version":3,"file":"serve-mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/serve-mcp.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,eAAe,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyNlF"}
@@ -9,6 +9,7 @@ const config_yaml_2 = require("../config-yaml");
9
9
  const signing_1 = require("../../core/signing");
10
10
  const service_account_1 = require("../../core/service-account");
11
11
  const url_1 = require("url");
12
+ const exec_js_1 = require("../../core/exec.js");
12
13
  /**
13
14
  * Load config and convert to MCP format
14
15
  */
@@ -20,7 +21,13 @@ function loadConfigForMCP() {
20
21
  ttl: cap.ttl,
21
22
  autoApprove: cap.autoApprove,
22
23
  requiresReason: cap.requiresReason,
23
- rules: cap.rules
24
+ rules: cap.rules,
25
+ // Exec mode fields (RFC 0001)
26
+ mode: cap.mode || 'proxy',
27
+ allowCommands: cap.allowCommands,
28
+ env: cap.env,
29
+ workDir: cap.workDir,
30
+ timeout: cap.timeout,
24
31
  }));
25
32
  const services = new Map();
26
33
  for (const [name, service] of Object.entries(config.services)) {
@@ -63,6 +70,39 @@ async function serveMCPCommand(options = {}) {
63
70
  services,
64
71
  sessionManager,
65
72
  auditLogger,
73
+ // RFC 0001: Secure CLI execution handler
74
+ onExecCommand: async (session, capability, command, stdin) => {
75
+ // Get service config for credentials
76
+ const serviceConfig = currentServices.get(capability.service);
77
+ if (!serviceConfig) {
78
+ throw new Error(`Service not found: ${capability.service}`);
79
+ }
80
+ // Determine credential from service auth
81
+ let credential = '';
82
+ let extraCredentials;
83
+ if (serviceConfig.auth.type === 'bearer' && serviceConfig.auth.key) {
84
+ credential = serviceConfig.auth.key;
85
+ }
86
+ else if (serviceConfig.auth.type === 'hmac-mexc' ||
87
+ serviceConfig.auth.type === 'hmac-bybit' ||
88
+ serviceConfig.auth.type === 'hmac-okx') {
89
+ extraCredentials = {
90
+ apiKey: serviceConfig.auth.apiKey,
91
+ apiSecret: serviceConfig.auth.apiSecret,
92
+ passphrase: serviceConfig.auth.passphrase,
93
+ };
94
+ }
95
+ // Build environment with injected credentials
96
+ const injectedEnv = (0, exec_js_1.buildExecEnv)(capability.env || {}, credential, extraCredentials);
97
+ // Execute command
98
+ return (0, exec_js_1.executeCommand)(command, injectedEnv, {
99
+ workDir: capability.workDir,
100
+ timeout: capability.timeout || 30000,
101
+ stdin,
102
+ credential,
103
+ extraCredentials,
104
+ });
105
+ },
66
106
  onReloadConfig: () => {
67
107
  const result = loadConfigForMCP();
68
108
  // Update our local reference for onExecute
@@ -1 +1 @@
1
- {"version":3,"file":"serve-mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/serve-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve-mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/serve-mcp.ts"],"names":[],"mappings":";;AA+CA,0CAyNC;AAxQD,gDAA+D;AAC/D,sDAAqJ;AACrJ,kDAAqD;AACrD,4CAA+C;AAC/C,gDAA6C;AAC7C,gDAAkE;AAClE,gEAA4I;AAC5I,6BAA0B;AAC1B,gDAAkE;AAElE;;GAEG;AACH,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,IAAA,4BAAc,GAAE,CAAC;IAEhC,MAAM,YAAY,GAAiB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CACxE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,IAAI;QACJ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,8BAA8B;QAC9B,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;QACzB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AAQM,KAAK,UAAU,eAAe,CAAC,UAA2B,EAAE;IACjE,IAAI,CAAC;QACH,kBAAkB;QAClB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;QAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;QAEzC,0BAA0B;QAC1B,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,IAAA,2BAAa,GAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,4BAAc,GAAE,CAAC;QAChC,MAAM,cAAc,GAAG,IAAI,yBAAc,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,mBAAW,CAAC,IAAA,yBAAW,GAAE,EAAE;YACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI;SAC5C,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAEtD,iEAAiE;QACjE,IAAI,eAAe,GAAG,QAAQ,CAAC;QAE/B,oBAAoB;QACpB,MAAM,SAAS,GAAG,IAAA,4BAAe,EAAC;YAChC,YAAY;YACZ,QAAQ;YACR,cAAc;YACd,WAAW;YAEX,yCAAyC;YACzC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC3D,qCAAqC;gBACrC,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAED,yCAAyC;gBACzC,IAAI,UAAU,GAAG,EAAE,CAAC;gBACpB,IAAI,gBAA0F,CAAC;gBAE/F,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACnE,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtC,CAAC;qBAAM,IACL,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;oBACvC,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;oBACxC,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EACtC,CAAC;oBACD,gBAAgB,GAAG;wBACjB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;wBACjC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;wBACvC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU;qBAC1C,CAAC;gBACJ,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,WAAW,GAAG,IAAA,sBAAY,EAC9B,UAAU,CAAC,GAAG,IAAI,EAAE,EACpB,UAAU,EACV,gBAAgB,CACjB,CAAC;gBAEF,kBAAkB;gBAClB,OAAO,IAAA,wBAAc,EAAC,OAAO,EAAE,WAAW,EAAE;oBAC1C,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,KAAK;oBACpC,KAAK;oBACL,UAAU;oBACV,gBAAgB;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,cAAc,EAAE,GAAG,EAAE;gBACnB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAClC,2CAA2C;gBAC3C,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;gBACpC,kEAAkE;gBAClE,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBAED,+CAA+C;gBAC/C,IAAI,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,GAAG,CAAC;gBAC3C,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxD,MAAM,SAAS,GAAG,IAAI,SAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAE5C,uEAAuE;gBACvE,MAAM,aAAa,GAAG,IAAI,SAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;gBAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,MAAM,kCAAkC,aAAa,EAAE,CAAC,CAAC;gBACpH,CAAC;gBAED,gBAAgB;gBAChB,MAAM,OAAO,GAA2B,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;gBAE/D,cAAc;gBACd,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBACnE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChE,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC/E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBAChH,8DAA8D;oBAC9D,MAAM,MAAM,GAAG,IAAA,kBAAQ,EAAC;wBACtB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;wBACjC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;wBACvC,WAAW,EAAE,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE;qBAC/C,CAAC,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC5D,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjH,0CAA0C;oBAC1C,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC;wBACvB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;wBACjC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;wBACvC,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,WAAW,EAAE,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE;wBAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChJ,6DAA6D;oBAC7D,MAAM,MAAM,GAAG,IAAA,iBAAO,EAAC;wBACrB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;wBACjC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;wBACvC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU;wBACzC,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,WAAW,EAAE,GAAG,GAAG,OAAO,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;wBACrD,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxH,gCAAgC;oBAChC,IAAI,CAAC;wBACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAA8B,CAAC;wBAC5F,IAAA,mDAAiC,EAAC,WAAW,CAAC,CAAC;wBAE/C,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAc,EACtC,OAAO,CAAC,OAAO,EACf,WAAW,EACX,aAAa,CAAC,IAAI,CAAC,MAAM,CAC1B,CAAC;wBAEF,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;oBACrD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,8CAA8C;wBAC9C,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC5D,IAAA,kCAAgB,EAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAA8B,CAAC;4BAC5F,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAc,EACtC,OAAO,CAAC,OAAO,EACf,WAAW,EACX,aAAa,CAAC,IAAI,CAAC,MAAM,CAC1B,CAAC;4BACF,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;wBACrD,CAAC;6BAAM,CAAC;4BACN,MAAM,KAAK,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBACzE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;gBAC/C,CAAC;gBAED,mBAAmB;gBACnB,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAc,EAAC,SAAS,EAAE;oBAC/C,GAAG,OAAO;oBACV,OAAO;iBACR,CAAC,CAAC;gBAEH,eAAe;gBACf,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAEnC,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;QAEH,uCAAuC;QACvC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAkB,EAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,2BAAc,EAAC,SAAS,CAAC,CAAC;QAClC,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"}
@@ -0,0 +1,4 @@
1
+ export declare function statusCommand(options?: {
2
+ json?: boolean;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AA0BA,wBAAsB,aAAa,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2HnF"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusCommand = statusCommand;
4
+ const config_yaml_1 = require("../config-yaml");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ async function statusCommand(options = {}) {
8
+ try {
9
+ const configDir = (0, config_yaml_1.getConfigDir)();
10
+ const auditDir = (0, config_yaml_1.getAuditDir)();
11
+ // Read version from package.json
12
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../../package.json');
13
+ const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf8'));
14
+ const version = packageJson.version || '0.0.0';
15
+ const configExists = (0, config_yaml_1.hasYAMLConfig)();
16
+ let services = 0;
17
+ let capabilities = 0;
18
+ let encrypted = false;
19
+ if (configExists) {
20
+ const config = (0, config_yaml_1.loadYAMLConfig)();
21
+ services = Object.keys(config.services).length;
22
+ capabilities = Object.keys(config.capabilities).length;
23
+ encrypted = !!config.masterKey;
24
+ }
25
+ // Count sessions
26
+ const sessionsFile = (0, path_1.join)(configDir, 'sessions.json');
27
+ let activeSessions = 0;
28
+ let totalSessions = 0;
29
+ if ((0, fs_1.existsSync)(sessionsFile)) {
30
+ const data = (0, fs_1.readFileSync)(sessionsFile, 'utf8');
31
+ const sessions = JSON.parse(data);
32
+ totalSessions = sessions.length;
33
+ const now = new Date();
34
+ activeSessions = sessions.filter(s => !s.revoked && new Date(s.expiresAt) > now).length;
35
+ }
36
+ // Count audit logs
37
+ let auditLogEntries = 0;
38
+ let auditLogBytes = 0;
39
+ if ((0, fs_1.existsSync)(auditDir)) {
40
+ const files = (0, fs_1.readdirSync)(auditDir).filter(f => f.endsWith('.jsonl'));
41
+ for (const file of files) {
42
+ const filePath = (0, path_1.join)(auditDir, file);
43
+ const stat = (0, fs_1.statSync)(filePath);
44
+ auditLogBytes += stat.size;
45
+ const content = (0, fs_1.readFileSync)(filePath, 'utf8');
46
+ auditLogEntries += content.split('\n').filter(line => line.trim()).length;
47
+ }
48
+ }
49
+ const status = {
50
+ version,
51
+ configDir,
52
+ configExists,
53
+ encrypted,
54
+ services,
55
+ capabilities,
56
+ activeSessions,
57
+ totalSessions,
58
+ auditLogEntries,
59
+ auditLogSize: formatBytes(auditLogBytes),
60
+ };
61
+ if (options.json) {
62
+ console.log(JSON.stringify(status, null, 2));
63
+ return;
64
+ }
65
+ // Human-readable output
66
+ console.log('');
67
+ console.log(` Janee v${version}`);
68
+ console.log('');
69
+ if (!configExists) {
70
+ console.log(' ⚠️ Not initialized');
71
+ console.log('');
72
+ console.log(' Run `janee init` to get started.');
73
+ console.log('');
74
+ return;
75
+ }
76
+ console.log(` Config: ${configDir}`);
77
+ console.log(` Encryption: ${encrypted ? '🔒 enabled' : '⚠️ disabled'}`);
78
+ console.log('');
79
+ console.log(` Services: ${services}`);
80
+ console.log(` Capabilities: ${capabilities}`);
81
+ console.log(` Sessions: ${activeSessions} active${totalSessions > activeSessions ? ` (${totalSessions} total)` : ''}`);
82
+ console.log('');
83
+ console.log(` Audit log: ${auditLogEntries} entries (${formatBytes(auditLogBytes)})`);
84
+ console.log('');
85
+ // Show health hints
86
+ if (services === 0) {
87
+ console.log(' 💡 Add a service: janee add');
88
+ }
89
+ if (capabilities === 0 && services > 0) {
90
+ console.log(' 💡 Add a capability: edit ~/.janee/config.yaml');
91
+ }
92
+ if (activeSessions === 0 && services > 0) {
93
+ console.log(' 💡 Start serving: janee serve');
94
+ }
95
+ if (services === 0 || capabilities === 0 || activeSessions === 0) {
96
+ console.log('');
97
+ }
98
+ }
99
+ catch (error) {
100
+ if (error instanceof Error) {
101
+ if (options.json) {
102
+ console.log(JSON.stringify({ error: error.message }, null, 2));
103
+ }
104
+ else {
105
+ console.error('❌ Error:', error.message);
106
+ }
107
+ }
108
+ else {
109
+ if (options.json) {
110
+ console.log(JSON.stringify({ error: 'Unknown error occurred' }, null, 2));
111
+ }
112
+ else {
113
+ console.error('❌ Unknown error occurred');
114
+ }
115
+ }
116
+ process.exit(1);
117
+ }
118
+ }
119
+ function formatBytes(bytes) {
120
+ if (bytes === 0)
121
+ return '0 B';
122
+ const units = ['B', 'KB', 'MB', 'GB'];
123
+ const i = Math.floor(Math.log(bytes) / Math.log(1024));
124
+ const value = bytes / Math.pow(1024, i);
125
+ return `${value.toFixed(i === 0 ? 0 : 1)} ${units[i]}`;
126
+ }
127
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}