@zincapp/zn-vault-agent 1.6.13 → 1.6.14

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.
@@ -19,6 +19,7 @@ import { isManagedKeyMode } from './config.js';
19
19
  import { ChildProcessManager } from '../services/child-process-manager.js';
20
20
  import { extractSecretIds, extractApiKeyNames, parseSecretMappingFromConfig, updateEnvFile, findEnvVarsForApiKey, } from './secret-env.js';
21
21
  import { bindManagedApiKey } from './api.js';
22
+ import { createPluginLoader, clearPluginLoader, } from '../plugins/loader.js';
22
23
  // Graceful shutdown state
23
24
  let isShuttingDown = false;
24
25
  let activeDeployments = 0;
@@ -363,6 +364,8 @@ export function createUnifiedWebSocketClient(additionalSecretIds = [], managedKe
363
364
  export async function startDaemon(options = {}) {
364
365
  const config = loadConfig();
365
366
  const secretTargets = config.secretTargets || [];
367
+ // Initialize plugin loader
368
+ let pluginLoader = null;
366
369
  // Initialize metrics
367
370
  initializeMetrics();
368
371
  // Setup log rotation handler
@@ -407,10 +410,56 @@ export async function startDaemon(options = {}) {
407
410
  log.error({ err }, 'Child process error');
408
411
  });
409
412
  }
410
- // Start health server if port specified
413
+ // Initialize plugin system if plugins are configured
414
+ const pluginConfigs = config.plugins;
415
+ if (pluginConfigs && pluginConfigs.length > 0) {
416
+ log.info({ pluginCount: pluginConfigs.length }, 'Initializing plugin system');
417
+ pluginLoader = createPluginLoader({
418
+ config,
419
+ childProcessManager: childManager,
420
+ restartChild: childManager ? (reason) => childManager.restart(reason) : undefined,
421
+ }, {
422
+ pluginDir: process.env.ZNVAULT_AGENT_PLUGIN_DIR,
423
+ });
424
+ try {
425
+ // Load plugins from config
426
+ await pluginLoader.loadPlugins(config);
427
+ // Initialize plugins
428
+ await pluginLoader.initializePlugins();
429
+ log.info({ plugins: pluginLoader.getAllPluginStatuses() }, 'Plugins initialized');
430
+ }
431
+ catch (err) {
432
+ log.error({ err }, 'Failed to initialize plugins');
433
+ // Continue running agent without plugins
434
+ }
435
+ // Wire up child process events to plugins
436
+ if (childManager) {
437
+ childManager.on('started', (pid) => {
438
+ const event = { type: 'started', pid };
439
+ void pluginLoader?.dispatchEvent('childProcess', event);
440
+ });
441
+ childManager.on('stopped', (code, signal) => {
442
+ const event = {
443
+ type: 'stopped',
444
+ exitCode: code ?? undefined,
445
+ signal: signal ?? undefined,
446
+ };
447
+ void pluginLoader?.dispatchEvent('childProcess', event);
448
+ });
449
+ childManager.on('restarting', (reason) => {
450
+ const event = { type: 'restarting', reason };
451
+ void pluginLoader?.dispatchEvent('childProcess', event);
452
+ });
453
+ childManager.on('maxRestartsExceeded', () => {
454
+ const event = { type: 'max_restarts' };
455
+ void pluginLoader?.dispatchEvent('childProcess', event);
456
+ });
457
+ }
458
+ }
459
+ // Start health server if port specified (pass plugin loader for routes and health aggregation)
411
460
  if (options.healthPort) {
412
461
  try {
413
- await startHealthServer(options.healthPort);
462
+ await startHealthServer(options.healthPort, pluginLoader ?? undefined);
414
463
  }
415
464
  catch (err) {
416
465
  log.error({ err }, 'Failed to start health server');
@@ -434,6 +483,19 @@ export async function startDaemon(options = {}) {
434
483
  const result = await deployCertificate(target, true);
435
484
  if (result.success) {
436
485
  log.info({ name: target.name, fingerprint: result.fingerprint }, 'Certificate deployed');
486
+ // Dispatch plugin event
487
+ if (pluginLoader) {
488
+ const certEvent = {
489
+ certId: target.certId,
490
+ name: target.name,
491
+ paths: target.outputs,
492
+ fingerprint: result.fingerprint || '',
493
+ expiresAt: '', // Would need cert parsing for this
494
+ commonName: '', // Would need cert parsing for this
495
+ isUpdate: true,
496
+ };
497
+ void pluginLoader.dispatchEvent('certificateDeployed', certEvent);
498
+ }
437
499
  // Restart child process if configured
438
500
  if (childManager && options.exec?.restartOnChange) {
439
501
  await childManager.restart('certificate rotated');
@@ -469,6 +531,19 @@ export async function startDaemon(options = {}) {
469
531
  if (result.success) {
470
532
  log.info({ name: target.name, version: result.version }, 'Secret deployed');
471
533
  deployedSecretTarget = true;
534
+ // Dispatch plugin event
535
+ if (pluginLoader) {
536
+ const secretEvent = {
537
+ secretId: target.secretId,
538
+ alias: event.alias,
539
+ name: target.name,
540
+ path: target.output,
541
+ format: target.format,
542
+ version: result.version || event.version,
543
+ isUpdate: true,
544
+ };
545
+ void pluginLoader.dispatchEvent('secretDeployed', secretEvent);
546
+ }
472
547
  }
473
548
  else {
474
549
  log.error({ name: target.name, error: result.message }, 'Secret deployment failed');
@@ -526,6 +601,17 @@ export async function startDaemon(options = {}) {
526
601
  keyName: event.apiKeyName,
527
602
  keyPrefix: newKey.substring(0, 8),
528
603
  }, 'Fetched new API key value');
604
+ // Dispatch plugin event
605
+ if (pluginLoader) {
606
+ const keyEvent = {
607
+ keyName: event.apiKeyName,
608
+ newPrefix: event.newPrefix,
609
+ graceExpiresAt: event.graceExpiresAt,
610
+ nextRotationAt: bindResponse.nextRotationAt,
611
+ rotationMode: event.rotationMode,
612
+ };
613
+ void pluginLoader.dispatchEvent('keyRotated', keyEvent);
614
+ }
529
615
  // Update env file if using output file mode
530
616
  if (execOutputFile) {
531
617
  // Find which env var(s) map to this API key
@@ -603,6 +689,16 @@ export async function startDaemon(options = {}) {
603
689
  }
604
690
  // Connect unified WebSocket
605
691
  unifiedClient.connect();
692
+ // Start plugins (after WebSocket is connecting but before initial sync)
693
+ if (pluginLoader) {
694
+ try {
695
+ await pluginLoader.startPlugins();
696
+ log.info({ plugins: pluginLoader.getAllPluginStatuses() }, 'Plugins started');
697
+ }
698
+ catch (err) {
699
+ log.error({ err }, 'Failed to start plugins');
700
+ }
701
+ }
606
702
  // Initial sync - certificates
607
703
  if (config.targets.length > 0) {
608
704
  log.info('Performing initial certificate sync');
@@ -686,6 +782,17 @@ export async function startDaemon(options = {}) {
686
782
  else {
687
783
  stopApiKeyRenewal();
688
784
  }
785
+ // Stop plugins
786
+ if (pluginLoader) {
787
+ try {
788
+ await pluginLoader.stopPlugins();
789
+ clearPluginLoader();
790
+ log.info('Plugins stopped');
791
+ }
792
+ catch (err) {
793
+ log.warn({ err }, 'Error stopping plugins');
794
+ }
795
+ }
689
796
  // Stop child process first (it needs to exit before we can)
690
797
  if (childManager) {
691
798
  log.info('Stopping child process');
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/lib/websocket.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,+EAA+E;AAE/E,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AAE1D,0CAA0C;AAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,QAAQ,IAAI,GAAG,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,IAAI,mBAAmB,EACnC,oBAAoB,IAAI,yBAAyB,EACjD,wBAAwB,IAAI,6BAA6B,GAC1D,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,aAAa,EACb,oBAAoB,GAErB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAqD7C,0BAA0B;AAC1B,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAmB1B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAC1C,sBAAgC,EAAE,EAClC,kBAA4B,EAAE;IAE9B,IAAI,EAAE,GAAqB,IAAI,CAAC;IAChC,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,cAAc,GAA0B,IAAI,CAAC;IACjD,IAAI,cAAc,GAA0B,IAAI,CAAC;IACjD,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAC5C,IAAI,kBAAkB,GAAG,KAAK,CAAC,CAAC,+DAA+D;IAE/F,MAAM,iBAAiB,GAA0C,EAAE,CAAC;IACpE,MAAM,mBAAmB,GAAqC,EAAE,CAAC;IACjE,MAAM,mBAAmB,GAA0C,EAAE,CAAC;IACtE,MAAM,2BAA2B,GAA6C,EAAE,CAAC;IACjF,MAAM,eAAe,GAAkC,EAAE,CAAC;IAC1D,MAAM,kBAAkB,GAAiC,EAAE,CAAC;IAC5D,MAAM,aAAa,GAA+B,EAAE,CAAC;IAErD,mCAAmC;IACnC,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAM,iCAAiC;IACzE,MAAM,uBAAuB,GAAG,GAAG,CAAC,CAAI,mBAAmB;IAC3D,MAAM,kBAAkB,GAAG,KAAK,CAAC,CAAO,6BAA6B;IACrE,MAAM,YAAY,GAAG,KAAK,CAAC,CAAa,gCAAgC;IAExE,IAAI,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,gBAAgB,GAA0B,IAAI,CAAC;IAEnD,SAAS,iBAAiB;QACxB,6DAA6D;QAC7D,IAAI,iBAAiB,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,uBAAuB,CAAC;QACjC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACtG,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,iBAAiB;IACvD,CAAC;IAED,SAAS,iBAAiB;QACxB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAErC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,GAAG,CAAC,QAAQ,GAAG,cAAc,CAAC;QAE9B,0CAA0C;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3D,4DAA4D;QAC5D,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAEhF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,+CAA+C;QAC/C,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,gDAAgD;QAChD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEhD,iBAAiB;QACjB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QAClE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,cAAc;QACrB,IAAI,cAAc;YAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,gBAAgB;YAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAErD,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9B,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtC,8CAA8C;gBAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;gBACxD,IAAI,iBAAiB,GAAG,YAAY,GAAG,kBAAkB,EAAE,CAAC;oBAC1D,sDAAsD;oBACtD,GAAG,CAAC,IAAI,CAAC;wBACP,EAAE,EAAE,SAAS;wBACb,iBAAiB;wBACjB,SAAS,EAAE,YAAY,GAAG,kBAAkB;qBAC7C,EAAE,wDAAwD,CAAC,CAAC;oBAC7D,cAAc,CAAC,cAAc,CAAC,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,mCAAmC;gBACnC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1C,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,wBAAwB,CAAC,CAAC;gBAEvD,2CAA2C;gBAC3C,IAAI,gBAAgB;oBAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACrD,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;oBAC9C,IAAI,OAAO,GAAG,YAAY,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBAChE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,kCAAkC,CAAC,CAAC;wBACzE,cAAc,CAAC,cAAc,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC,EAAE,YAAY,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,aAAa;QACpB,IAAI,cAAc,EAAE,CAAC;YACnB,aAAa,CAAC,cAAc,CAAC,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACrB,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAC/B,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,SAAS,cAAc,CAAC,MAAc;QACpC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;QACnE,aAAa,EAAE,CAAC;QAEhB,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,8BAA8B;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;YACD,EAAE,GAAG,IAAI,CAAC;QACZ,CAAC;QAED,oDAAoD;QACpD,iBAAiB,GAAG,CAAC,CAAC;QACtB,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,SAAS,iBAAiB;QACxB,IAAI,CAAC,eAAe,IAAI,cAAc;YAAE,OAAO;QAE/C,IAAI,cAAc;YAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAClC,iBAAiB,EAAE,CAAC;QACpB,OAAO,CAAC,WAAW,EAAE,CAAC;QAEtB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAEvF,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,SAAS,aAAa,CAAC,OAA0B;QAC/C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,YAAY;gBACf,iBAAiB,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,6BAA6B,CAAC,CAAC;gBACxE,MAAM;YAER,KAAK,YAAY;gBACf,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBAC5E,MAAM;YAER,KAAK,MAAM;gBACT,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9B,IAAI,gBAAgB,EAAE,CAAC;oBACrB,YAAY,CAAC,gBAAgB,CAAC,CAAC;oBAC/B,gBAAgB,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBACD,GAAG,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBAC3D,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,OAAO,CAAC,KAAK,KAAK,cAAc,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAwB,CAAC;oBAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,EAAE,4BAA4B,CAAC,CAAC;oBAC5F,kBAAkB,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBACrC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,CAAC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACvD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAmB,CAAC;oBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;oBACpF,wBAAwB,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;oBAC3C,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACvD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAwB,CAAC;oBAC/C,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAC,CAAC;oBACtF,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;oBACvD,MAAM,KAAK,GAAG,OAAO,CAAC,IAA2B,CAAC;oBAClD,GAAG,CAAC,IAAI,CAAC;wBACP,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,OAAO,EAAE,KAAK,CAAC,UAAU;wBACzB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;qBACrC,EAAE,iCAAiC,CAAC,CAAC;oBAEtC,gEAAgE;oBAChE,6EAA6E;oBAC7E,KAAK,6BAA6B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAErD,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;gBACxD,MAAM;QACV,CAAC;IACH,CAAC;IAED,SAAS,OAAO;QACd,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,sCAAsC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAClD,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC/C,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YACjF,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,iCAAiC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;YAEjH,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE;gBACxB,kBAAkB,EAAE,CAAC,MAAM,CAAC,QAAQ;gBACpC,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACjB,MAAM,WAAW,GAAG,kBAAkB,CAAC;gBACvC,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,iBAAiB,GAAG,CAAC,CAAC;gBACtB,cAAc,EAAE,CAAC;gBACjB,kBAAkB,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBACrC,wBAAwB,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,WAAW,EAAE,CAAC;gBACtB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,6BAA6B,CAAC,CAAC;gBAExE,oFAAoF;gBACpF,IAAI,WAAW,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;oBACnE,KAAK,yBAAyB,EAAE,CAAC;gBACnC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAsB,CAAC;oBACjE,aAAa,CAAC,OAAO,CAAC,CAAC;oBAEvB,+CAA+C;oBAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,iBAAiB,EAAE,CAAC;wBACvD,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,iBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC9B,aAAa,EAAE,CAAC;gBAChB,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAC1B,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAChC,OAAO,CAAC,cAAc,EAAE,CAAC;gBACzB,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,SAAS,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,SAAS,IAAI,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,wBAAwB,CAAC,CAAC;gBAC/E,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,iBAAiB,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;gBACrD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,4BAA4B,CAAC,CAAC;YACvE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,SAAS,UAAU;QACjB,eAAe,GAAG,KAAK,CAAC;QAExB,IAAI,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,aAAa,EAAE,CAAC;QAEhB,IAAI,EAAE,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,yBAAyB,CAAC,CAAC;YACvD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,GAAG,IAAI,CAAC;QACZ,CAAC;QAED,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,iBAAiB,GAAG,IAAI,CAAC;QACzB,kBAAkB,GAAG,KAAK,CAAC,CAAC,wCAAwC;IACtE,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAkG;QAC7H,IAAI,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,EAAc;YACtB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,aAAa;SAC5B,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEvD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACjD,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU;QACV,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI;QACpD,kBAAkB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;QAChE,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7D,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7D,qBAAqB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7E,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QACrD,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3D,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QACjD,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAI9B,EAAE;IACJ,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;IAEjD,qBAAqB;IACrB,iBAAiB,EAAE,CAAC;IAEpB,6BAA6B;IAC7B,gBAAgB,EAAE,CAAC;IAEnB,+EAA+E;IAC/E,IAAI,aAAa,GAAa,EAAE,CAAC;IACjC,IAAI,mBAAmB,GAAa,EAAE,CAAC;IACvC,IAAI,kBAAkB,GAA6C,EAAE,CAAC;IACtE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,qCAAqC;IAEnF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5E,aAAa,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACrD,mBAAmB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IAED,GAAG,CAAC,IAAI,CAAC;QACP,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QAClC,aAAa,EAAE,aAAa,CAAC,MAAM;QACnC,WAAW,EAAE,aAAa,CAAC,MAAM;QACjC,eAAe,EAAE,mBAAmB,CAAC,MAAM;QAC3C,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC7C,EAAE,yBAAyB,CAAC,CAAC;IAE9B,2DAA2D;IAC3D,IAAI,YAAY,GAA+B,IAAI,CAAC;IACpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,YAAY,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErD,mDAAmD;QACnD,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAErC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACjC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;YACvC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC1C,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,6EAA6E;IAC7E,MAAM,aAAa,GAAG,4BAA4B,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;IAEvF,4BAA4B;IAC5B,aAAa,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/C,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,4CAA4C,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,iBAAiB,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACpF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAErD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,sBAAsB,CAAC,CAAC;oBAEzF,sCAAsC;oBACtC,IAAI,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;wBAClD,MAAM,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,+BAA+B,CAAC,CAAC;gBAC3F,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,iBAAiB,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,EAAE,0CAA0C,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,uCAAuC,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,qDAAqD;QACrD,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,MAAM,EAAE,CAAC;YACX,iBAAiB,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBACvG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAEhD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;oBAC5E,oBAAoB,GAAG,IAAI,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,iBAAiB,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAClF,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,4BAA4B;QAC5B,kEAAkE;QAClE,gCAAgC;QAChC,IAAI,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;YAClD,IAAI,oBAAoB,IAAI,YAAY,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAC5E,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,qCAAqC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACjF,sDAAsD;IACxD,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,aAAa,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClD,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,iDAAiD,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,mDAAmD,CAAC,CAAC;YAC9F,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,EAAE,2CAA2C,CAAC,CAAC;QAEhD,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;YAEhC,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,KAAK,CAAC,UAAU;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;aAClC,EAAE,2BAA2B,CAAC,CAAC;YAEhC,4CAA4C;YAC5C,IAAI,cAAc,EAAE,CAAC;gBACnB,4CAA4C;gBAC5C,MAAM,OAAO,GAAG,oBAAoB,CAAC,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBAE3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,MAAM,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;wBACpD,GAAG,CAAC,IAAI,CAAC;4BACP,OAAO,EAAE,KAAK,CAAC,UAAU;4BACzB,MAAM;4BACN,QAAQ,EAAE,cAAc;yBACzB,EAAE,uCAAuC,CAAC,CAAC;oBAC9C,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,CAAC,KAAK,CAAC;4BACR,GAAG;4BACH,OAAO,EAAE,KAAK,CAAC,UAAU;4BACzB,MAAM;4BACN,QAAQ,EAAE,cAAc;yBACzB,EAAE,gDAAgD,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4DAA4D;YAC5D,IAAI,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;gBAClD,MAAM,YAAY,CAAC,OAAO,CAAC,oBAAoB,KAAK,CAAC,UAAU,WAAW,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC;gBACR,GAAG;gBACH,OAAO,EAAE,KAAK,CAAC,UAAU;aAC1B,EAAE,0CAA0C,CAAC,CAAC;QACjD,CAAC;gBAAS,CAAC;YACT,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5B,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,sDAAsD;IACtD,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAEvC,+CAA+C;QAC/C,mBAAmB,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,6CAA6C,CAAC,CAAC;YAClG,mCAAmC;YACnC,aAAa,CAAC,UAAU,EAAE,CAAC;YAC3B,0CAA0C;YAC1C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,2DAA2D;QAC3D,qFAAqF;QACrF,IAAI,CAAC;YACH,MAAM,sBAAsB,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,6CAA6C,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,+BAA+B;QAC/B,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAED,4BAA4B;IAC5B,aAAa,CAAC,OAAO,EAAE,CAAC;IAExB,8BAA8B;IAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC9D,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,2BAA2B,CAAC,CAAC;IACjH,CAAC;IAED,yBAAyB;IACzB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAClE,kBAAkB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAClH,CAAC;IAED,wDAAwD;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;YACpD,uDAAuD;QACzD,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1D,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,cAAc;YAAE,OAAO;QAE3B,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAEpC,oBAAoB;QACpB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,cAAc;gBAAE,MAAM;YAE1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtD,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,eAAe,EAAE,CAAC;oBAClD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,iCAAiC,CAAC,CAAC;gBAC9F,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,eAAe;QACf,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IAAI,cAAc;gBAAE,MAAM;YAE1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,4BAA4B,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAElD,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,cAAc,GAAG,IAAI,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;QAEtC,4BAA4B;QAC5B,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,aAAa,CAAC,UAAU,EAAE,CAAC;QAE3B,qDAAqD;QACrD,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvB,qBAAqB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,iBAAiB,EAAE,CAAC;QACtB,CAAC;QAED,4DAA4D;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,iBAAiB,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,KAAK,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,gCAAgC,CAAC,CAAC;YAC1E,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,0CAA0C,CAAC,CAAC;QACtF,CAAC;QAED,qBAAqB;QACrB,MAAM,gBAAgB,EAAE,CAAC;QAEzB,aAAa;QACb,MAAM,SAAS,EAAE,CAAC;QAElB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjD,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE,EAAE,sCAAsC,CAAC,CAAC;AAClG,CAAC"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/lib/websocket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import type { PluginContext } from './types.js';
3
+ import type { AgentInternals } from './loader.js';
4
+ import type { PluginLoader } from './loader.js';
5
+ /**
6
+ * Create a plugin context for a specific plugin
7
+ */
8
+ export declare function createPluginContext(pluginName: string, agentInternals: AgentInternals, _loader: PluginLoader): PluginContext;
9
+ /**
10
+ * Get the inter-plugin event emitter (for testing)
11
+ */
12
+ export declare function getPluginEventEmitter(): EventEmitter;
13
+ /**
14
+ * Clear all plugin event listeners (for testing)
15
+ */
16
+ export declare function clearPluginEventListeners(): void;
17
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/plugins/context.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUhD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,YAAY,GACpB,aAAa,CAwIf;AAyCD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,CAEpD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -0,0 +1,175 @@
1
+ // Path: src/plugins/context.ts
2
+ // Plugin context implementation - provides safe access to agent internals
3
+ import { EventEmitter } from 'node:events';
4
+ import { createLogger } from '../lib/logger.js';
5
+ import { getSecret as apiGetSecret, decryptCertificate } from '../lib/api.js';
6
+ import { getPluginStorage } from './storage.js';
7
+ /**
8
+ * Inter-plugin event emitter (singleton)
9
+ */
10
+ const pluginEventEmitter = new EventEmitter();
11
+ pluginEventEmitter.setMaxListeners(50); // Support many plugins
12
+ /**
13
+ * Create a plugin context for a specific plugin
14
+ */
15
+ export function createPluginContext(pluginName, agentInternals, _loader) {
16
+ const logger = createLogger({ module: `plugin:${pluginName}` });
17
+ return {
18
+ logger,
19
+ // Read-only config snapshot
20
+ get config() {
21
+ return Object.freeze({ ...agentInternals.config });
22
+ },
23
+ get vaultUrl() {
24
+ return agentInternals.config.vaultUrl;
25
+ },
26
+ get tenantId() {
27
+ return agentInternals.config.tenantId;
28
+ },
29
+ /**
30
+ * Fetch a secret from vault by alias or ID
31
+ */
32
+ async getSecret(aliasOrId) {
33
+ logger.debug({ aliasOrId }, 'Plugin fetching secret');
34
+ const decrypted = await apiGetSecret(aliasOrId);
35
+ return {
36
+ id: decrypted.id,
37
+ alias: decrypted.alias,
38
+ data: decrypted.data,
39
+ version: decrypted.version,
40
+ type: decrypted.type,
41
+ };
42
+ },
43
+ /**
44
+ * Get certificate content by ID or name
45
+ */
46
+ async getCertificate(certIdOrName) {
47
+ logger.debug({ certIdOrName }, 'Plugin fetching certificate');
48
+ // Find cert ID from targets if name given
49
+ let certId = certIdOrName;
50
+ const targets = agentInternals.config.targets || [];
51
+ const target = targets.find(t => t.name === certIdOrName || t.certId === certIdOrName);
52
+ if (target) {
53
+ certId = target.certId;
54
+ }
55
+ // Decrypt certificate from vault
56
+ const decrypted = await decryptCertificate(certId, 'plugin-access');
57
+ // Parse PEM to extract components
58
+ const certData = decrypted.certificateData;
59
+ const parts = parsePemBundle(certData);
60
+ return {
61
+ id: decrypted.id,
62
+ name: target?.name || certId,
63
+ certificate: parts.certificate,
64
+ privateKey: parts.privateKey,
65
+ chain: parts.chain,
66
+ fullchain: parts.fullchain,
67
+ fingerprint: decrypted.fingerprintSha256,
68
+ expiresAt: '', // Would need to parse from cert
69
+ commonName: '', // Would need to parse from cert
70
+ };
71
+ },
72
+ /**
73
+ * Get configured certificate targets
74
+ */
75
+ getCertTargets() {
76
+ return agentInternals.config.targets || [];
77
+ },
78
+ /**
79
+ * Get configured secret targets
80
+ */
81
+ getSecretTargets() {
82
+ return agentInternals.config.secretTargets || [];
83
+ },
84
+ /**
85
+ * Request child process restart
86
+ */
87
+ async restartChild(reason) {
88
+ if (agentInternals.restartChild) {
89
+ logger.info({ reason }, 'Plugin requesting child restart');
90
+ await agentInternals.restartChild(reason);
91
+ }
92
+ else {
93
+ logger.debug('restartChild called but no exec mode configured');
94
+ }
95
+ },
96
+ /**
97
+ * Get current child process state
98
+ */
99
+ getChildState() {
100
+ if (agentInternals.childProcessManager) {
101
+ return agentInternals.childProcessManager.getState();
102
+ }
103
+ return null;
104
+ },
105
+ /**
106
+ * Emit custom event to other plugins
107
+ */
108
+ emit(event, data) {
109
+ const eventName = `plugin:${event}`;
110
+ logger.debug({ event: eventName }, 'Plugin emitting event');
111
+ pluginEventEmitter.emit(eventName, data);
112
+ },
113
+ /**
114
+ * Listen for custom events from other plugins
115
+ */
116
+ on(event, handler) {
117
+ const eventName = `plugin:${event}`;
118
+ pluginEventEmitter.on(eventName, handler);
119
+ },
120
+ /**
121
+ * Remove event listener
122
+ */
123
+ off(event, handler) {
124
+ const eventName = `plugin:${event}`;
125
+ pluginEventEmitter.off(eventName, handler);
126
+ },
127
+ /**
128
+ * Plugin-specific persistent storage
129
+ */
130
+ storage: getPluginStorage(pluginName),
131
+ };
132
+ }
133
+ /**
134
+ * Parse a PEM bundle into components
135
+ */
136
+ function parsePemBundle(pemData) {
137
+ const blocks = [];
138
+ const regex = /-----BEGIN ([^-]+)-----[\s\S]*?-----END \1-----/g;
139
+ let match;
140
+ while ((match = regex.exec(pemData)) !== null) {
141
+ blocks.push(match[0]);
142
+ }
143
+ let certificate = '';
144
+ let privateKey = '';
145
+ const chainCerts = [];
146
+ for (const block of blocks) {
147
+ if (block.includes('CERTIFICATE')) {
148
+ if (!certificate) {
149
+ certificate = block;
150
+ }
151
+ else {
152
+ chainCerts.push(block);
153
+ }
154
+ }
155
+ else if (block.includes('PRIVATE KEY')) {
156
+ privateKey = block;
157
+ }
158
+ }
159
+ const chain = chainCerts.length > 0 ? chainCerts.join('\n') : undefined;
160
+ const fullchain = chain ? `${certificate}\n${chain}` : certificate;
161
+ return { certificate, privateKey, chain, fullchain };
162
+ }
163
+ /**
164
+ * Get the inter-plugin event emitter (for testing)
165
+ */
166
+ export function getPluginEventEmitter() {
167
+ return pluginEventEmitter;
168
+ }
169
+ /**
170
+ * Clear all plugin event listeners (for testing)
171
+ */
172
+ export function clearPluginEventListeners() {
173
+ pluginEventEmitter.removeAllListeners();
174
+ }
175
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/plugins/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { AgentPlugin, PluginFactory, PluginConfig, PluginContext, PluginStorage, SecretValue, CertificateContent, CertificateDeployedEvent, SecretDeployedEvent, KeyRotatedEvent, ChildProcessEvent, PluginHealthStatus, LoadedPlugin, PluginEventMap, } from './types.js';
2
+ export { PluginLoader, createPluginLoader, getPluginLoader, clearPluginLoader, type AgentInternals, type PluginLoaderOptions, } from './loader.js';
3
+ export { createPluginContext, getPluginEventEmitter, clearPluginEventListeners, } from './context.js';
4
+ export { getPluginStorage, deletePluginStorage, listPluginsWithStorage, clearStorageCache, } from './storage.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ // Path: src/plugins/index.ts
2
+ // Plugin system public exports
3
+ // Loader
4
+ export { PluginLoader, createPluginLoader, getPluginLoader, clearPluginLoader, } from './loader.js';
5
+ // Context
6
+ export { createPluginContext, getPluginEventEmitter, clearPluginEventListeners, } from './context.js';
7
+ // Storage
8
+ export { getPluginStorage, deletePluginStorage, listPluginsWithStorage, clearStorageCache, } from './storage.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,+BAA+B;AAoB/B,SAAS;AACT,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAGlB,MAAM,aAAa,CAAC;AAErB,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AAEtB,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,116 @@
1
+ import type { FastifyInstance } from 'fastify';
2
+ import { EventEmitter } from 'node:events';
3
+ import type { AgentPlugin, PluginConfig, LoadedPlugin, PluginEventMap, PluginHealthStatus } from './types.js';
4
+ import type { AgentConfig } from '../lib/config.js';
5
+ import type { ChildProcessManager } from '../services/child-process-manager.js';
6
+ /**
7
+ * Agent internals passed to plugin context
8
+ */
9
+ export interface AgentInternals {
10
+ /** Current agent config */
11
+ config: AgentConfig;
12
+ /** Child process manager (if exec mode) */
13
+ childProcessManager: ChildProcessManager | null;
14
+ /** Restart child process callback */
15
+ restartChild?: (reason: string) => Promise<void>;
16
+ }
17
+ /**
18
+ * Plugin loader options
19
+ */
20
+ export interface PluginLoaderOptions {
21
+ /** Plugin directory for local plugins */
22
+ pluginDir?: string;
23
+ /** Skip npm package discovery */
24
+ skipNpmDiscovery?: boolean;
25
+ }
26
+ /**
27
+ * Manages plugin discovery, loading, and lifecycle
28
+ */
29
+ export declare class PluginLoader extends EventEmitter {
30
+ private plugins;
31
+ private agentInternals;
32
+ private options;
33
+ private isStarted;
34
+ constructor(agentInternals: AgentInternals, options?: PluginLoaderOptions);
35
+ /**
36
+ * Load all plugins from config and auto-discovered locations
37
+ */
38
+ loadPlugins(config: AgentConfig): Promise<void>;
39
+ /**
40
+ * Load a single plugin by config
41
+ */
42
+ loadPlugin(config: PluginConfig): Promise<AgentPlugin | null>;
43
+ /**
44
+ * Load plugins from local directory
45
+ */
46
+ private loadLocalPlugins;
47
+ /**
48
+ * Validate plugin has required fields
49
+ */
50
+ private validatePlugin;
51
+ /**
52
+ * Initialize all loaded plugins
53
+ */
54
+ initializePlugins(): Promise<void>;
55
+ /**
56
+ * Start all initialized plugins
57
+ */
58
+ startPlugins(): Promise<void>;
59
+ /**
60
+ * Stop all running plugins
61
+ */
62
+ stopPlugins(): Promise<void>;
63
+ /**
64
+ * Register plugin routes on Fastify server
65
+ */
66
+ registerRoutes(fastify: FastifyInstance): Promise<void>;
67
+ /**
68
+ * Dispatch event to all plugins
69
+ */
70
+ dispatchEvent<K extends keyof PluginEventMap>(eventType: K, event: PluginEventMap[K]): Promise<void>;
71
+ /**
72
+ * Collect health status from all plugins
73
+ */
74
+ collectHealthStatus(): Promise<PluginHealthStatus[]>;
75
+ /**
76
+ * Get loaded plugins
77
+ */
78
+ getPlugins(): AgentPlugin[];
79
+ /**
80
+ * Get plugin by name
81
+ */
82
+ getPlugin(name: string): AgentPlugin | undefined;
83
+ /**
84
+ * Get plugin status
85
+ */
86
+ getPluginStatus(name: string): LoadedPlugin['status'] | undefined;
87
+ /**
88
+ * Get all plugin statuses
89
+ */
90
+ getAllPluginStatuses(): Array<{
91
+ name: string;
92
+ status: LoadedPlugin['status'];
93
+ error?: string;
94
+ }>;
95
+ /**
96
+ * Check if any plugins are loaded
97
+ */
98
+ hasPlugins(): boolean;
99
+ /**
100
+ * Update agent internals (called when config changes)
101
+ */
102
+ updateInternals(internals: Partial<AgentInternals>): void;
103
+ }
104
+ /**
105
+ * Get or create the plugin loader instance
106
+ */
107
+ export declare function getPluginLoader(): PluginLoader | null;
108
+ /**
109
+ * Create and set the plugin loader instance
110
+ */
111
+ export declare function createPluginLoader(agentInternals: AgentInternals, options?: PluginLoaderOptions): PluginLoader;
112
+ /**
113
+ * Clear the plugin loader instance (for testing)
114
+ */
115
+ export declare function clearPluginLoader(): void;
116
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/plugins/loader.ts"],"names":[],"mappings":"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"}