@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
@@ -3,6 +3,39 @@
3
3
  * MCP Server for Janee
4
4
  * Exposes capabilities to AI agents via Model Context Protocol
5
5
  */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
6
39
  var __importDefault = (this && this.__importDefault) || function (mod) {
7
40
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
41
  };
@@ -19,6 +52,13 @@ const rules_js_1 = require("./rules.js");
19
52
  const http_1 = __importDefault(require("http"));
20
53
  const https_1 = __importDefault(require("https"));
21
54
  const express_1 = __importDefault(require("express"));
55
+ const exec_js_1 = require("./exec.js");
56
+ const fs_1 = require("fs");
57
+ const agent_scope_js_1 = require("./agent-scope.js");
58
+ const path_1 = require("path");
59
+ // Read version from package.json
60
+ const packageJsonPath = (0, path_1.join)(__dirname, '../../package.json');
61
+ const pkgVersion = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf8')).version || '0.0.0';
22
62
  /**
23
63
  * Parse TTL string to seconds
24
64
  */
@@ -40,13 +80,13 @@ function parseTTL(ttl) {
40
80
  * Create and start MCP server
41
81
  */
42
82
  function createMCPServer(options) {
43
- const { sessionManager, auditLogger, onExecute, onReloadConfig } = options;
83
+ const { sessionManager, auditLogger, onExecute, onExecCommand, onReloadConfig, onPersistOwnership } = options;
44
84
  // Store as mutable to support hot-reloading
45
85
  let capabilities = options.capabilities;
46
86
  let services = options.services;
47
87
  const server = new index_js_1.Server({
48
88
  name: 'janee',
49
- version: '0.1.0'
89
+ version: pkgVersion
50
90
  }, {
51
91
  capabilities: {
52
92
  tools: {}
@@ -55,10 +95,15 @@ function createMCPServer(options) {
55
95
  // Tool: list_services
56
96
  const listServicesTool = {
57
97
  name: 'list_services',
58
- description: 'List available API capabilities managed by Janee',
98
+ description: 'List available API capabilities managed by Janee. If you provide your agentId, only credentials you have access to will be shown.',
59
99
  inputSchema: {
60
100
  type: 'object',
61
- properties: {},
101
+ properties: {
102
+ agentId: {
103
+ type: 'string',
104
+ description: 'Your agent identifier (optional — filters results to credentials you can access)'
105
+ }
106
+ },
62
107
  required: []
63
108
  }
64
109
  };
@@ -94,6 +139,10 @@ function createMCPServer(options) {
94
139
  reason: {
95
140
  type: 'string',
96
141
  description: 'Reason for this request (required for some capabilities)'
142
+ },
143
+ agentId: {
144
+ type: 'string',
145
+ description: 'Your agent identifier (required for agent-scoped credentials)'
97
146
  }
98
147
  },
99
148
  required: ['capability', 'method', 'path']
@@ -109,9 +158,69 @@ function createMCPServer(options) {
109
158
  required: []
110
159
  }
111
160
  };
161
+ // Tool: janee_exec (RFC 0001 - Secure CLI Execution)
162
+ const execTool = {
163
+ name: 'janee_exec',
164
+ description: 'Execute a CLI command with credentials injected via environment variables. The agent never sees the actual credential — Janee injects it and scrubs output.',
165
+ inputSchema: {
166
+ type: 'object',
167
+ properties: {
168
+ capability: {
169
+ type: 'string',
170
+ description: 'Capability name (must be exec mode, from list_services)'
171
+ },
172
+ command: {
173
+ type: 'array',
174
+ items: { type: 'string' },
175
+ description: 'Command and arguments as array, e.g. ["gh", "issue", "list"]'
176
+ },
177
+ stdin: {
178
+ type: 'string',
179
+ description: 'Optional stdin input to pipe to the command'
180
+ },
181
+ reason: {
182
+ type: 'string',
183
+ description: 'Reason for this execution (required for some capabilities)'
184
+ }
185
+ },
186
+ required: ['capability', 'command']
187
+ }
188
+ };
189
+ // Tool: manage_credential (agent-scoped credential access control)
190
+ const manageCredentialTool = {
191
+ name: 'manage_credential',
192
+ description: 'View or manage access policies for agent-scoped credentials. Agents can check who has access, grant access to other agents, or revoke access.',
193
+ inputSchema: {
194
+ type: 'object',
195
+ properties: {
196
+ action: {
197
+ type: 'string',
198
+ enum: ['view', 'grant', 'revoke'],
199
+ description: 'Action to perform: view ownership info, grant access to another agent, or revoke access'
200
+ },
201
+ service: {
202
+ type: 'string',
203
+ description: 'Service name to manage'
204
+ },
205
+ targetAgentId: {
206
+ type: 'string',
207
+ description: 'Agent ID to grant/revoke access for (required for grant/revoke actions)'
208
+ },
209
+ agentId: {
210
+ type: 'string',
211
+ description: 'Your agent identifier (used to verify ownership)'
212
+ }
213
+ },
214
+ required: ['action', 'service']
215
+ }
216
+ };
112
217
  // Register tools
113
218
  server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
114
- const tools = [listServicesTool, executeTool];
219
+ const tools = [listServicesTool, executeTool, manageCredentialTool];
220
+ // Add exec tool if handler is provided
221
+ if (onExecCommand) {
222
+ tools.push(execTool);
223
+ }
115
224
  // Only expose reload_config if a reload handler is provided
116
225
  if (onReloadConfig) {
117
226
  tools.push(reloadConfigTool);
@@ -119,24 +228,36 @@ function createMCPServer(options) {
119
228
  return { tools };
120
229
  });
121
230
  // Handle tool calls
122
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
231
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
123
232
  const { name, arguments: args } = request.params;
124
233
  try {
125
234
  switch (name) {
126
- case 'list_services':
235
+ case 'list_services': {
236
+ const listAgentId = (0, agent_scope_js_1.resolveAgentIdentity)({ agentId: extra?.sessionId, metadata: { verifiedAgentId: extra?.authInfo?.clientId } }, args?.agentId);
127
237
  return {
128
238
  content: [{
129
239
  type: 'text',
130
- text: JSON.stringify(capabilities.map(cap => ({
240
+ text: JSON.stringify(capabilities
241
+ .filter(cap => {
242
+ const svc = services.get(cap.service);
243
+ return (0, agent_scope_js_1.canAgentAccess)(listAgentId, svc?.ownership);
244
+ })
245
+ .map(cap => ({
131
246
  name: cap.name,
132
247
  service: cap.service,
248
+ mode: cap.mode || 'proxy',
133
249
  ttl: cap.ttl,
134
250
  autoApprove: cap.autoApprove,
135
251
  requiresReason: cap.requiresReason,
136
- rules: cap.rules
252
+ rules: cap.rules,
253
+ ...(cap.mode === 'exec' && {
254
+ allowCommands: cap.allowCommands,
255
+ env: cap.env ? Object.keys(cap.env) : undefined,
256
+ })
137
257
  })), null, 2)
138
258
  }]
139
259
  };
260
+ }
140
261
  case 'reload_config': {
141
262
  if (!onReloadConfig) {
142
263
  throw new Error('Config reload not supported');
@@ -169,11 +290,25 @@ function createMCPServer(options) {
169
290
  }
170
291
  case 'execute': {
171
292
  const { capability, method, path, body, headers, reason } = args;
293
+ // Validate required arguments
294
+ if (!capability) {
295
+ throw new Error('Missing required argument: capability');
296
+ }
297
+ if (!method) {
298
+ throw new Error('Missing required argument: method (GET, POST, PUT, DELETE, etc.)');
299
+ }
300
+ if (!path) {
301
+ throw new Error('Missing required argument: path');
302
+ }
172
303
  // Find capability
173
304
  const cap = capabilities.find(c => c.name === capability);
174
305
  if (!cap) {
175
306
  throw new Error(`Unknown capability: ${capability}`);
176
307
  }
308
+ // Reject exec-mode capabilities — they should use janee_exec instead
309
+ if (cap.mode === 'exec') {
310
+ throw new Error(`Capability "${capability}" is an exec-mode capability. Use the 'janee_exec' tool instead.`);
311
+ }
177
312
  // Check if reason required
178
313
  if (cap.requiresReason && !reason) {
179
314
  throw new Error(`Capability "${capability}" requires a reason`);
@@ -185,9 +320,16 @@ function createMCPServer(options) {
185
320
  auditLogger.logDenied(cap.service, method, path, ruleCheck.reason || 'Request denied by policy', reason);
186
321
  throw new Error(ruleCheck.reason || 'Request denied by policy');
187
322
  }
323
+ // Check agent-scoped access (transport-bound identity preferred over client-asserted)
324
+ const executeAgentId = (0, agent_scope_js_1.resolveAgentIdentity)({ agentId: extra?.sessionId, metadata: { verifiedAgentId: extra?.authInfo?.clientId } }, args.agentId);
325
+ const executeSvc = services.get(cap.service);
326
+ if (!(0, agent_scope_js_1.canAgentAccess)(executeAgentId, executeSvc?.ownership)) {
327
+ auditLogger.logDenied(cap.service, method, path, 'Agent does not have access to this credential', reason);
328
+ throw new Error(`Access denied: credential for service "${cap.service}" is not accessible to this agent`);
329
+ }
188
330
  // Get or create session
189
331
  const ttlSeconds = parseTTL(cap.ttl);
190
- const session = sessionManager.createSession(cap.name, cap.service, ttlSeconds, { reason });
332
+ const session = sessionManager.createSession(cap.name, cap.service, ttlSeconds, { agentId: executeAgentId, reason });
191
333
  // Build API request
192
334
  const apiReq = {
193
335
  service: cap.service,
@@ -208,6 +350,149 @@ function createMCPServer(options) {
208
350
  }]
209
351
  };
210
352
  }
353
+ case 'janee_exec': {
354
+ if (!onExecCommand) {
355
+ throw new Error('CLI execution not supported in this configuration');
356
+ }
357
+ const { capability: execCapName, command: rawExecCommand, stdin: execStdin, reason: execReason } = args;
358
+ // Validate required arguments
359
+ if (!execCapName) {
360
+ throw new Error('Missing required argument: capability');
361
+ }
362
+ if (!rawExecCommand || (Array.isArray(rawExecCommand) && rawExecCommand.length === 0) || (typeof rawExecCommand === 'string' && rawExecCommand.trim() === '')) {
363
+ throw new Error('Missing required argument: command');
364
+ }
365
+ // Normalize command to array — accept both string and array from MCP clients
366
+ const execCommand = Array.isArray(rawExecCommand)
367
+ ? rawExecCommand
368
+ : typeof rawExecCommand === 'string'
369
+ ? rawExecCommand.trim().split(/\s+/)
370
+ : [];
371
+ // Find capability
372
+ const execCap = capabilities.find(c => c.name === execCapName);
373
+ if (!execCap) {
374
+ throw new Error(`Unknown capability: ${execCapName}`);
375
+ }
376
+ // Verify this is an exec-mode capability
377
+ if (execCap.mode !== 'exec') {
378
+ throw new Error(`Capability "${execCapName}" is not an exec-mode capability. Use the 'execute' tool for API proxy capabilities.`);
379
+ }
380
+ // Check if reason required
381
+ if (execCap.requiresReason && !execReason) {
382
+ throw new Error(`Capability "${execCapName}" requires a reason`);
383
+ }
384
+ // Validate command against whitelist
385
+ const cmdValidation = (0, exec_js_1.validateCommand)(execCommand, execCap.allowCommands || []);
386
+ if (!cmdValidation.allowed) {
387
+ auditLogger.logDenied(execCap.service, 'EXEC', execCommand.join(' '), cmdValidation.reason || 'Command not allowed', execReason);
388
+ throw new Error(cmdValidation.reason || 'Command not allowed');
389
+ }
390
+ // Get or create session
391
+ const execTtlSeconds = parseTTL(execCap.ttl);
392
+ const execSession = sessionManager.createSession(execCap.name, execCap.service, execTtlSeconds, { reason: execReason });
393
+ // Execute command
394
+ const execResult = await onExecCommand(execSession, execCap, execCommand, execStdin);
395
+ // Log to audit
396
+ auditLogger.log({
397
+ service: execCap.service,
398
+ path: execCommand.join(' '),
399
+ method: 'EXEC',
400
+ headers: { 'x-janee-reason': execReason || '' },
401
+ }, {
402
+ statusCode: execResult.exitCode === 0 ? 200 : 500,
403
+ headers: {},
404
+ body: execResult.stdout,
405
+ }, execResult.executionTimeMs);
406
+ return {
407
+ content: [{
408
+ type: 'text',
409
+ text: JSON.stringify({
410
+ exitCode: execResult.exitCode,
411
+ stdout: execResult.stdout,
412
+ stderr: execResult.stderr,
413
+ executionTimeMs: execResult.executionTimeMs,
414
+ }, null, 2)
415
+ }]
416
+ };
417
+ }
418
+ case 'manage_credential': {
419
+ const { action: credAction, service: credService, targetAgentId: credTarget } = args;
420
+ const credAgentId = (0, agent_scope_js_1.resolveAgentIdentity)({ agentId: extra?.sessionId, metadata: { verifiedAgentId: extra?.authInfo?.clientId } }, args.agentId);
421
+ if (!credService) {
422
+ throw new Error('Missing required argument: service');
423
+ }
424
+ const svc = services.get(credService);
425
+ if (!svc) {
426
+ throw new Error(`Unknown service: ${credService}`);
427
+ }
428
+ if (credAction === 'view') {
429
+ return {
430
+ content: [{
431
+ type: 'text',
432
+ text: JSON.stringify({
433
+ service: credService,
434
+ ownership: svc.ownership || { accessPolicy: 'all-agents', note: 'No ownership metadata (legacy credential)' },
435
+ yourAccess: (0, agent_scope_js_1.canAgentAccess)(credAgentId, svc.ownership)
436
+ }, null, 2)
437
+ }]
438
+ };
439
+ }
440
+ // Grant/revoke require ownership verification
441
+ if (!credAgentId) {
442
+ throw new Error('agentId is required for grant/revoke actions');
443
+ }
444
+ if (!svc.ownership) {
445
+ throw new Error('Cannot manage access for legacy credentials without ownership metadata. Re-add the service to enable scoping.');
446
+ }
447
+ if (svc.ownership.createdBy !== credAgentId) {
448
+ throw new Error('Only the credential owner can grant or revoke access');
449
+ }
450
+ if (credAction === 'grant') {
451
+ if (!credTarget) {
452
+ throw new Error('targetAgentId is required for grant action');
453
+ }
454
+ const { grantAccess } = await Promise.resolve().then(() => __importStar(require('./agent-scope.js')));
455
+ svc.ownership = grantAccess(svc.ownership, credTarget);
456
+ // Persist ownership change to config storage
457
+ if (onPersistOwnership) {
458
+ onPersistOwnership(credService, svc.ownership);
459
+ }
460
+ return {
461
+ content: [{
462
+ type: 'text',
463
+ text: JSON.stringify({
464
+ success: true,
465
+ message: `Granted access to ${credTarget}`,
466
+ ownership: svc.ownership,
467
+ persisted: !!onPersistOwnership
468
+ }, null, 2)
469
+ }]
470
+ };
471
+ }
472
+ if (credAction === 'revoke') {
473
+ if (!credTarget) {
474
+ throw new Error('targetAgentId is required for revoke action');
475
+ }
476
+ const { revokeAccess } = await Promise.resolve().then(() => __importStar(require('./agent-scope.js')));
477
+ svc.ownership = revokeAccess(svc.ownership, credTarget);
478
+ // Persist ownership change to config storage
479
+ if (onPersistOwnership) {
480
+ onPersistOwnership(credService, svc.ownership);
481
+ }
482
+ return {
483
+ content: [{
484
+ type: 'text',
485
+ text: JSON.stringify({
486
+ success: true,
487
+ message: `Revoked access from ${credTarget}`,
488
+ ownership: svc.ownership,
489
+ persisted: !!onPersistOwnership
490
+ }, null, 2)
491
+ }]
492
+ };
493
+ }
494
+ throw new Error(`Unknown action: ${credAction}. Use 'view', 'grant', or 'revoke'.`);
495
+ }
211
496
  default:
212
497
  throw new Error(`Unknown tool: ${name}`);
213
498
  }
@@ -237,7 +522,10 @@ function makeAPIRequest(targetUrl, request) {
237
522
  port: targetUrl.port,
238
523
  path: targetUrl.pathname + targetUrl.search,
239
524
  method: request.method,
240
- headers: request.headers
525
+ headers: {
526
+ 'User-Agent': 'janee/' + pkgVersion,
527
+ ...request.headers
528
+ }
241
529
  };
242
530
  const req = client.request(options, (res) => {
243
531
  let body = '';
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/core/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/core/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;IACH,OAAO,CAAC,IAAI;IAwBZ;;OAEG;IACH,OAAO,CAAC,IAAI;IAeZ;;OAEG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAClD,OAAO;IA4BV;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgBlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAazC;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;IAgBzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAShB"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;IACH,OAAO,CAAC,IAAI;IAwBZ;;OAEG;IACH,OAAO,CAAC,IAAI;IAeZ;;OAEG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAClD,OAAO;IA4BV;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgBlD;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAazC;;OAEG;IACH,YAAY,IAAI,OAAO,EAAE;IAsBzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAehB"}
@@ -106,8 +106,8 @@ class SessionManager {
106
106
  return false;
107
107
  }
108
108
  session.revoked = true;
109
- this.sessions.delete(sessionId);
110
109
  this.save();
110
+ this.sessions.delete(sessionId);
111
111
  return true;
112
112
  }
113
113
  /**
@@ -116,6 +116,7 @@ class SessionManager {
116
116
  listSessions() {
117
117
  const now = new Date();
118
118
  const active = [];
119
+ let cleaned = false;
119
120
  for (const [id, session] of this.sessions.entries()) {
120
121
  if (!session.revoked && now <= session.expiresAt) {
121
122
  active.push(session);
@@ -123,8 +124,12 @@ class SessionManager {
123
124
  else {
124
125
  // Clean up expired
125
126
  this.sessions.delete(id);
127
+ cleaned = true;
126
128
  }
127
129
  }
130
+ if (cleaned) {
131
+ this.save();
132
+ }
128
133
  return active;
129
134
  }
130
135
  /**
@@ -132,11 +137,16 @@ class SessionManager {
132
137
  */
133
138
  cleanup() {
134
139
  const now = new Date();
140
+ let cleaned = false;
135
141
  for (const [id, session] of this.sessions.entries()) {
136
142
  if (session.revoked || now > session.expiresAt) {
137
143
  this.sessions.delete(id);
144
+ cleaned = true;
138
145
  }
139
146
  }
147
+ if (cleaned) {
148
+ this.save();
149
+ }
140
150
  }
141
151
  }
142
152
  exports.SessionManager = SessionManager;
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/core/sessions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,qCAAyC;AACzC,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAapB,MAAa,cAAc;IACjB,QAAQ,GAAyB,IAAI,GAAG,EAAE,CAAC;IAC3C,WAAW,CAAS;IAE5B,YAAY,WAAoB;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACrF,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACK,IAAI;QACV,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAG9B,CAAC;YAEH,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACtB,GAAG,CAAC;oBACJ,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;oBAChC,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;iBACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,IAAI;QACV,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC;YACJ,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;YACpC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;SACrC,CAAC,CAAC,CAAC;QAEJ,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,YAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,aAAa,CACX,UAAkB,EAClB,OAAe,EACf,UAAkB,EAClB,UAAiD,EAAE;QAEnD,MAAM,EAAE,GAAG,IAAA,sBAAa,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAY;YACvB,EAAE;YACF,UAAU;YACV,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,GAAG;YACd,SAAS;YACT,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,mBAAmB;QACnB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;QAEtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,mBAAmB;gBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,OAAO,CAAC,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAxKD,wCAwKC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Environment Variable Secrets Provider
3
+ *
4
+ * The simplest external provider: reads secrets from environment variables.
5
+ * Useful for CI/CD, Docker, Kubernetes, and simple deployments.
6
+ *
7
+ * Usage in config:
8
+ * key: env://STRIPE_API_KEY
9
+ *
10
+ * This reads from process.env.STRIPE_API_KEY at runtime.
11
+ */
12
+ import { SecretsProvider, HealthCheckResult, ProviderConfig } from './types';
13
+ export declare class EnvProvider implements SecretsProvider {
14
+ readonly name: string;
15
+ readonly type = "env";
16
+ private prefix;
17
+ private required;
18
+ private initialized;
19
+ constructor(config: ProviderConfig);
20
+ initialize(): Promise<void>;
21
+ getSecret(varPath: string): Promise<string | null>;
22
+ listSecrets(prefix?: string): Promise<string[]>;
23
+ dispose(): Promise<void>;
24
+ healthCheck(): Promise<HealthCheckResult>;
25
+ private ensureInitialized;
26
+ }
27
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/providers/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAgC,MAAM,SAAS,CAAC;AAS3G,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,cAAc;IAO5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoBlD,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAK/C,OAAO,CAAC,iBAAiB;CAS1B"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ /**
3
+ * Environment Variable Secrets Provider
4
+ *
5
+ * The simplest external provider: reads secrets from environment variables.
6
+ * Useful for CI/CD, Docker, Kubernetes, and simple deployments.
7
+ *
8
+ * Usage in config:
9
+ * key: env://STRIPE_API_KEY
10
+ *
11
+ * This reads from process.env.STRIPE_API_KEY at runtime.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.EnvProvider = void 0;
15
+ const types_1 = require("./types");
16
+ class EnvProvider {
17
+ name;
18
+ type = 'env';
19
+ prefix;
20
+ required;
21
+ initialized = false;
22
+ constructor(config) {
23
+ this.name = config.name;
24
+ const envConfig = config.config;
25
+ this.prefix = envConfig.prefix || '';
26
+ this.required = envConfig.required || false;
27
+ }
28
+ async initialize() {
29
+ this.initialized = true;
30
+ }
31
+ async getSecret(varPath) {
32
+ this.ensureInitialized();
33
+ const envVar = this.prefix + varPath;
34
+ const value = process.env[envVar];
35
+ if (value === undefined) {
36
+ if (this.required) {
37
+ throw new types_1.SecretError(types_1.SecretErrorCode.NOT_FOUND, `EnvProvider "${this.name}": required environment variable "${envVar}" is not set`, { provider: this.name, secretPath: varPath });
38
+ }
39
+ return null;
40
+ }
41
+ return value;
42
+ }
43
+ async listSecrets(prefix) {
44
+ this.ensureInitialized();
45
+ const fullPrefix = this.prefix + (prefix || '');
46
+ return Object.keys(process.env)
47
+ .filter(key => key.startsWith(fullPrefix))
48
+ .map(key => key.slice(this.prefix.length));
49
+ }
50
+ async dispose() {
51
+ this.initialized = false;
52
+ }
53
+ async healthCheck() {
54
+ // Environment variables are always available
55
+ return { healthy: true, latencyMs: 0 };
56
+ }
57
+ ensureInitialized() {
58
+ if (!this.initialized) {
59
+ throw new types_1.SecretError(types_1.SecretErrorCode.NOT_INITIALIZED, `EnvProvider "${this.name}": not initialized. Call initialize() first.`, { provider: this.name });
60
+ }
61
+ }
62
+ }
63
+ exports.EnvProvider = EnvProvider;
64
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/providers/env.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,mCAA2G;AAS3G,MAAa,WAAW;IACb,IAAI,CAAS;IACb,IAAI,GAAG,KAAK,CAAC;IAEd,MAAM,CAAS;IACf,QAAQ,CAAU;IAClB,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,MAAsB;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,MAA8B,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,mBAAW,CACnB,uBAAe,CAAC,SAAS,EACzB,gBAAgB,IAAI,CAAC,IAAI,qCAAqC,MAAM,cAAc,EAClF,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAC7C,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAe;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;aACzC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,6CAA6C;QAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,mBAAW,CACnB,uBAAe,CAAC,eAAe,EAC/B,gBAAgB,IAAI,CAAC,IAAI,8CAA8C,EACvE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAnED,kCAmEC"}