@naylence/runtime 0.3.20 → 0.3.22

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.
@@ -515,12 +515,12 @@ async function ensureRuntimeFactoriesRegistered(registry = factory.Registry) {
515
515
  }
516
516
 
517
517
  // This file is auto-generated during build - do not edit manually
518
- // Generated from package.json version: 0.3.20
518
+ // Generated from package.json version: 0.3.22
519
519
  /**
520
520
  * The package version, injected at build time.
521
521
  * @internal
522
522
  */
523
- const VERSION = '0.3.20';
523
+ const VERSION = '0.3.22';
524
524
 
525
525
  let initialized = false;
526
526
  const runtimePlugin = {
@@ -1365,7 +1365,7 @@ class TaskCancelledError extends Error {
1365
1365
  * Provides functionality similar to Python's asyncio TaskSpawner with proper
1366
1366
  * error handling, cancellation, and graceful shutdown capabilities.
1367
1367
  */
1368
- const logger$1h = getLogger('naylence.fame.util.task_spawner');
1368
+ const logger$1g = getLogger('naylence.fame.util.task_spawner');
1369
1369
  function firstDefined(source, keys) {
1370
1370
  for (const key of keys) {
1371
1371
  if (Object.prototype.hasOwnProperty.call(source, key)) {
@@ -1526,7 +1526,7 @@ class TaskSpawner {
1526
1526
  const taskId = `task-${++this._taskCounter}`;
1527
1527
  const taskName = normalizedOptions.name || `unnamed-${taskId}`;
1528
1528
  const timeout = normalizedOptions.timeout ?? this._config.defaultTimeout;
1529
- logger$1h.debug('starting_background_task', {
1529
+ logger$1g.debug('starting_background_task', {
1530
1530
  task_name: taskName,
1531
1531
  task_id: taskId,
1532
1532
  });
@@ -1543,7 +1543,7 @@ class TaskSpawner {
1543
1543
  task.promise
1544
1544
  .then(() => {
1545
1545
  if (!this._suppressCompletionLogging) {
1546
- logger$1h.debug('task_completed_successfully', {
1546
+ logger$1g.debug('task_completed_successfully', {
1547
1547
  task_name: taskName,
1548
1548
  task_id: taskId,
1549
1549
  duration_ms: Date.now() - task.startTime,
@@ -1597,7 +1597,7 @@ class TaskSpawner {
1597
1597
  error.name === 'AbortError' ||
1598
1598
  error.message === 'Task cancelled' ||
1599
1599
  error.message === 'Aborted') {
1600
- logger$1h.debug('task_cancelled', {
1600
+ logger$1g.debug('task_cancelled', {
1601
1601
  task_name: taskName,
1602
1602
  note: 'Task cancelled as requested',
1603
1603
  });
@@ -1605,7 +1605,7 @@ class TaskSpawner {
1605
1605
  }
1606
1606
  // Handle timeout
1607
1607
  if (error instanceof TaskTimeoutError) {
1608
- logger$1h.warning('task_timed_out', {
1608
+ logger$1g.warning('task_timed_out', {
1609
1609
  task_name: taskName,
1610
1610
  error: error.message,
1611
1611
  });
@@ -1617,7 +1617,7 @@ class TaskSpawner {
1617
1617
  // Handle known WebSocket shutdown race condition (similar to Python version)
1618
1618
  if (error.message.includes("await wasn't used with future") ||
1619
1619
  error.message.includes('WebSocket closed during receive')) {
1620
- logger$1h.debug('task_shutdown_race_condition_handled', {
1620
+ logger$1g.debug('task_shutdown_race_condition_handled', {
1621
1621
  task_name: taskName,
1622
1622
  note: 'Normal WebSocket close timing during shutdown - not an error',
1623
1623
  });
@@ -1627,7 +1627,7 @@ class TaskSpawner {
1627
1627
  if (error.name === 'FameTransportClose' ||
1628
1628
  error.message.includes('normal closure') ||
1629
1629
  error.message.includes('Connection closed')) {
1630
- logger$1h.debug('task_shutdown_completed_normally', {
1630
+ logger$1g.debug('task_shutdown_completed_normally', {
1631
1631
  task_name: taskName,
1632
1632
  note: 'Task closed normally during shutdown',
1633
1633
  });
@@ -1635,7 +1635,7 @@ class TaskSpawner {
1635
1635
  }
1636
1636
  // Handle PKCE redirect "errors" as info
1637
1637
  if (error.name === 'OAuth2PkceRedirectInitiatedError') {
1638
- logger$1h.debug('background_task_redirecting', {
1638
+ logger$1g.debug('background_task_redirecting', {
1639
1639
  task_name: taskName,
1640
1640
  note: 'Task interrupted for PKCE redirect',
1641
1641
  });
@@ -1648,14 +1648,14 @@ class TaskSpawner {
1648
1648
  // Log retriable errors as warnings (they'll be retried by upstream logic)
1649
1649
  // Log non-retriable errors as errors (fatal failures)
1650
1650
  if (isRetriableError) {
1651
- logger$1h.warning('background_task_failed', {
1651
+ logger$1g.warning('background_task_failed', {
1652
1652
  task_name: taskName,
1653
1653
  error: error.message,
1654
1654
  retriable: true,
1655
1655
  });
1656
1656
  }
1657
1657
  else {
1658
- logger$1h.error('background_task_failed', {
1658
+ logger$1g.error('background_task_failed', {
1659
1659
  task_name: taskName,
1660
1660
  error: error.message,
1661
1661
  stack: error.stack,
@@ -1674,11 +1674,11 @@ class TaskSpawner {
1674
1674
  async shutdownTasks(options = {}) {
1675
1675
  const { gracePeriod, cancelHanging, joinTimeout } = normalizeShutdownOptions(options);
1676
1676
  if (this._tasks.size === 0) {
1677
- logger$1h.debug('shutdown_tasks_no_tasks_to_shutdown');
1677
+ logger$1g.debug('shutdown_tasks_no_tasks_to_shutdown');
1678
1678
  return;
1679
1679
  }
1680
1680
  this._suppressCompletionLogging = true;
1681
- logger$1h.debug('shutting_down_tasks', {
1681
+ logger$1g.debug('shutting_down_tasks', {
1682
1682
  task_count: this._tasks.size,
1683
1683
  task_names: Array.from(this._tasks.values()).map((t) => t.name),
1684
1684
  grace_period_ms: gracePeriod,
@@ -1693,7 +1693,7 @@ class TaskSpawner {
1693
1693
  if (cancelHanging) {
1694
1694
  const stillRunning = tasks.filter((task) => task.getState() === TaskState.RUNNING && !completed.has(task));
1695
1695
  if (stillRunning.length > 0) {
1696
- logger$1h.debug('tasks_did_not_complete_within_grace_period', {
1696
+ logger$1g.debug('tasks_did_not_complete_within_grace_period', {
1697
1697
  hanging_count: stillRunning.length,
1698
1698
  });
1699
1699
  // Wait for them to finish with individual timeouts
@@ -1703,7 +1703,7 @@ class TaskSpawner {
1703
1703
  }
1704
1704
  catch (error) {
1705
1705
  if (error instanceof TaskTimeoutError) {
1706
- logger$1h.warning('task_did_not_shutdown', {
1706
+ logger$1g.warning('task_did_not_shutdown', {
1707
1707
  task_name: task.name || task.id,
1708
1708
  join_timeout_ms: joinTimeout,
1709
1709
  });
@@ -1714,7 +1714,7 @@ class TaskSpawner {
1714
1714
  }
1715
1715
  else if (!(error instanceof TaskCancelledError)) {
1716
1716
  /* istanbul ignore next - unreachable defensive branch */
1717
- logger$1h.error('task_raised_during_cancellation', {
1717
+ logger$1g.error('task_raised_during_cancellation', {
1718
1718
  task_name: task.name || task.id,
1719
1719
  error: error instanceof Error ? error.message : String(error),
1720
1720
  });
@@ -2851,7 +2851,7 @@ async function safeImport(loader, dependencyNameOrOptions, maybeOptions) {
2851
2851
  * condition/promise and ensure at most one notifier coroutine exists for a
2852
2852
  * flow at any time.
2853
2853
  */
2854
- const logger$1g = getLogger('naylence.fame.flow.flow_controller');
2854
+ const logger$1f = getLogger('naylence.fame.flow.flow_controller');
2855
2855
  /**
2856
2856
  * Simple condition variable implementation for TypeScript/Node.js
2857
2857
  * Similar to Python's asyncio.Condition
@@ -2985,7 +2985,7 @@ class FlowController {
2985
2985
  const newBalance = Math.max(0, Math.min(this.initialWindow, prev + delta));
2986
2986
  this.credits.set(flowId, newBalance);
2987
2987
  const crossedZero = prev <= 0 && newBalance > 0;
2988
- logger$1g.debug('flow_controller_add_credits', {
2988
+ logger$1f.debug('flow_controller_add_credits', {
2989
2989
  flow_id: flowId,
2990
2990
  delta,
2991
2991
  prev_balance: prev,
@@ -3005,12 +3005,12 @@ class FlowController {
3005
3005
  async acquire(flowId) {
3006
3006
  this.ensureFlow(flowId);
3007
3007
  const condition = this.conditions.get(flowId);
3008
- logger$1g.debug('flow_controller_acquire_attempt', {
3008
+ logger$1f.debug('flow_controller_acquire_attempt', {
3009
3009
  flow_id: flowId,
3010
3010
  current_balance: this.credits.get(flowId),
3011
3011
  });
3012
3012
  while (this.credits.get(flowId) <= 0) {
3013
- logger$1g.debug('flow_controller_waiting_for_credits', {
3013
+ logger$1f.debug('flow_controller_waiting_for_credits', {
3014
3014
  flow_id: flowId,
3015
3015
  current_balance: this.credits.get(flowId),
3016
3016
  });
@@ -3018,12 +3018,12 @@ class FlowController {
3018
3018
  }
3019
3019
  const newBalance = this.credits.get(flowId) - 1;
3020
3020
  this.credits.set(flowId, newBalance);
3021
- logger$1g.debug('flow_controller_acquire_success', {
3021
+ logger$1f.debug('flow_controller_acquire_success', {
3022
3022
  flow_id: flowId,
3023
3023
  new_balance: newBalance,
3024
3024
  });
3025
3025
  if (newBalance <= this.lowWatermark) {
3026
- logger$1g.debug('flow_controller_acquire_below_low_watermark', {
3026
+ logger$1f.debug('flow_controller_acquire_below_low_watermark', {
3027
3027
  flow_id: flowId,
3028
3028
  low_watermark: this.lowWatermark,
3029
3029
  });
@@ -3047,7 +3047,7 @@ class FlowController {
3047
3047
  const current = this.credits.get(flowId);
3048
3048
  const remaining = Math.max(current - credits, 0);
3049
3049
  this.credits.set(flowId, remaining);
3050
- logger$1g.debug('flow_controller_consume', {
3050
+ logger$1f.debug('flow_controller_consume', {
3051
3051
  flow_id: flowId,
3052
3052
  requested: credits,
3053
3053
  prev_balance: current,
@@ -3073,7 +3073,7 @@ class FlowController {
3073
3073
  this.windowIds.delete(flowId);
3074
3074
  this.credits.set(flowId, this.initialWindow);
3075
3075
  this.wakeWaiters(flowId);
3076
- logger$1g.debug('flow_controller_flow_reset', {
3076
+ logger$1f.debug('flow_controller_flow_reset', {
3077
3077
  flow_id: flowId,
3078
3078
  reset_balance: this.initialWindow,
3079
3079
  });
@@ -3361,7 +3361,7 @@ class InMemoryBinding {
3361
3361
  * TypeScript port of Python's InMemoryFanoutBroker that extends TaskSpawner
3362
3362
  * to manage multiple WriteChannel subscribers with concurrent message distribution.
3363
3363
  */
3364
- const logger$1f = getLogger('naylence.fame.channel.in_memory.in_memory_fanout_broker');
3364
+ const logger$1e = getLogger('naylence.fame.channel.in_memory.in_memory_fanout_broker');
3365
3365
  // Sentinel object for shutdown signaling
3366
3366
  const SENTINEL = Symbol('fanout-broker-sentinel');
3367
3367
  function isCloseable(obj) {
@@ -3414,7 +3414,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3414
3414
  }
3415
3415
  catch (error) {
3416
3416
  // Ignore errors when sending sentinel (sink might be closed)
3417
- logger$1f.debug('error_sending_sentinel', {
3417
+ logger$1e.debug('error_sending_sentinel', {
3418
3418
  error: error.message,
3419
3419
  });
3420
3420
  }
@@ -3428,7 +3428,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3428
3428
  await sub.close();
3429
3429
  }
3430
3430
  catch (error) {
3431
- logger$1f.error('error_closing_subscriber', {
3431
+ logger$1e.error('error_closing_subscriber', {
3432
3432
  subscriber: sub.toString(),
3433
3433
  error: error.message,
3434
3434
  });
@@ -3468,7 +3468,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3468
3468
  [envelope, context] = core.extractEnvelopeAndContext(msg);
3469
3469
  }
3470
3470
  catch (error) {
3471
- logger$1f.debug('failed_to_extract_envelope', {
3471
+ logger$1e.debug('failed_to_extract_envelope', {
3472
3472
  error: error.message,
3473
3473
  });
3474
3474
  continue;
@@ -3490,7 +3490,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3490
3490
  await sub.send(messageToSend);
3491
3491
  }
3492
3492
  catch (error) {
3493
- logger$1f.error('error_sending_to_subscriber', {
3493
+ logger$1e.error('error_sending_to_subscriber', {
3494
3494
  subscriber: sub.toString(),
3495
3495
  error: error.message,
3496
3496
  action: 'unsubscribing',
@@ -3506,7 +3506,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3506
3506
  }
3507
3507
  catch (error) {
3508
3508
  // Critical broker-level error: log and back off, but keep the loop running
3509
- logger$1f.critical('receive_loop_failed_unexpectedly', {
3509
+ logger$1e.critical('receive_loop_failed_unexpectedly', {
3510
3510
  error: error.message,
3511
3511
  stack: error.stack,
3512
3512
  });
@@ -5182,7 +5182,7 @@ function normalizeResponseType(value) {
5182
5182
  return value;
5183
5183
  }
5184
5184
 
5185
- const logger$1e = getLogger('naylence.fame.node.binding_manager');
5185
+ const logger$1d = getLogger('naylence.fame.node.binding_manager');
5186
5186
  const SYSTEM_INBOX$3 = '__sys__';
5187
5187
  const DEFAULT_ACK_TIMEOUT_MS = 20000;
5188
5188
  class BindingStoreEntryRecord {
@@ -5268,7 +5268,7 @@ class BindingManager {
5268
5268
  if (!this.bindings.has(key)) {
5269
5269
  const binding = this.bindingFactory(new core.FameAddress(key));
5270
5270
  this.bindings.set(key, binding);
5271
- logger$1e.debug('restored_binding', { address: key });
5271
+ logger$1d.debug('restored_binding', { address: key });
5272
5272
  }
5273
5273
  }
5274
5274
  if (!this.hasUpstream) {
@@ -5278,13 +5278,13 @@ class BindingManager {
5278
5278
  await this.readvertiseCapabilitiesUpstream();
5279
5279
  }
5280
5280
  async bind(participant, capabilities) {
5281
- logger$1e.debug('binding_participant', { participant });
5281
+ logger$1d.debug('binding_participant', { participant });
5282
5282
  const { prefixAddress, addresses, propagateAddress, capabilityAddress } = this.computeBindingAddresses(participant);
5283
5283
  for (const address of addresses) {
5284
5284
  if (!this.bindings.has(address)) {
5285
5285
  const binding = this.bindingFactory(new core.FameAddress(address));
5286
5286
  this.bindings.set(address, binding);
5287
- logger$1e.debug('bound_address', { address, participant });
5287
+ logger$1d.debug('bound_address', { address, participant });
5288
5288
  }
5289
5289
  }
5290
5290
  let propagatedAddress = null;
@@ -5313,7 +5313,7 @@ class BindingManager {
5313
5313
  await this.unbindAddressUpstream(propagatedAddress);
5314
5314
  }
5315
5315
  catch (rollbackError) {
5316
- logger$1e.error('bind_rollback_failed', {
5316
+ logger$1d.error('bind_rollback_failed', {
5317
5317
  address: propagatedAddress.toString(),
5318
5318
  error: rollbackError.message,
5319
5319
  });
@@ -5332,7 +5332,7 @@ class BindingManager {
5332
5332
  physicalPath: null,
5333
5333
  });
5334
5334
  }
5335
- logger$1e.debug('bind_success', {
5335
+ logger$1d.debug('bind_success', {
5336
5336
  participant,
5337
5337
  address: prefixAddress.toString(),
5338
5338
  capabilities,
@@ -5368,7 +5368,7 @@ class BindingManager {
5368
5368
  await this.bindingStore.delete(address);
5369
5369
  }
5370
5370
  }
5371
- logger$1e.debug('unbind_success', {
5371
+ logger$1d.debug('unbind_success', {
5372
5372
  participant,
5373
5373
  address: prefixAddress.toString(),
5374
5374
  totalBindings: this.bindings.size,
@@ -5398,7 +5398,7 @@ class BindingManager {
5398
5398
  await this.bindAddressUpstream(new core.FameAddress(address));
5399
5399
  }
5400
5400
  catch (error) {
5401
- logger$1e.error('rebind_failed', {
5401
+ logger$1d.error('rebind_failed', {
5402
5402
  address,
5403
5403
  error: error.message,
5404
5404
  });
@@ -5417,7 +5417,7 @@ class BindingManager {
5417
5417
  await this.advertiseCapabilities(new core.FameAddress(address), Array.from(capabilities));
5418
5418
  }
5419
5419
  catch (error) {
5420
- logger$1e.error('capability_replay_failed', {
5420
+ logger$1d.error('capability_replay_failed', {
5421
5421
  address,
5422
5422
  error: error.message,
5423
5423
  });
@@ -5684,7 +5684,7 @@ class BindingManager {
5684
5684
  }
5685
5685
  }
5686
5686
 
5687
- const logger$1d = getLogger('naylence.fame.node.response_context_manager');
5687
+ const logger$1c = getLogger('naylence.fame.node.response_context_manager');
5688
5688
  function cloneSecurityContext(source) {
5689
5689
  if (!source) {
5690
5690
  return undefined;
@@ -5712,7 +5712,7 @@ class ResponseContextManager {
5712
5712
  security: responseSecurity,
5713
5713
  expectedResponseType: core.FameResponseType.NONE,
5714
5714
  };
5715
- logger$1d.debug('created_response_context', {
5715
+ logger$1c.debug('created_response_context', {
5716
5716
  request_id: requestEnvelope.id,
5717
5717
  inherited_crypto_level: responseSecurity?.inboundCryptoLevel ?? null,
5718
5718
  channel_id: responseSecurity?.cryptoChannelId ?? null,
@@ -5732,14 +5732,14 @@ class ResponseContextManager {
5732
5732
  responseContext.fromSystemId = this.getId();
5733
5733
  }
5734
5734
  // Envelope-level metadata is intentionally omitted to defer to context usage.
5735
- logger$1d.debug('ensured_response_metadata', {
5735
+ logger$1c.debug('ensured_response_metadata', {
5736
5736
  response_id: responseEnvelope.id,
5737
5737
  request_id: requestEnvelope.id,
5738
5738
  });
5739
5739
  }
5740
5740
  }
5741
5741
 
5742
- const logger$1c = getLogger('naylence.fame.node.streaming_response_handler');
5742
+ const logger$1b = getLogger('naylence.fame.node.streaming_response_handler');
5743
5743
  function isObject(value) {
5744
5744
  return typeof value === 'object' && value !== null;
5745
5745
  }
@@ -5858,12 +5858,12 @@ class StreamingResponseHandler {
5858
5858
  }
5859
5859
  async handleStreamingFameMessageResponses(responses, requestEnvelope, requestContext) {
5860
5860
  const asyncResponses = toAsyncIterable(responses);
5861
- logger$1c.debug('handling_streaming_fame_message_responses', {
5861
+ logger$1b.debug('handling_streaming_fame_message_responses', {
5862
5862
  request_id: requestEnvelope.id,
5863
5863
  });
5864
5864
  for await (const response of asyncResponses) {
5865
5865
  if (!response?.envelope) {
5866
- logger$1c.warning('invalid_streaming_response_type', {
5866
+ logger$1b.warning('invalid_streaming_response_type', {
5867
5867
  request_id: requestEnvelope.id,
5868
5868
  actual_type: typeof response,
5869
5869
  });
@@ -5877,7 +5877,7 @@ class StreamingResponseHandler {
5877
5877
  }
5878
5878
  async handleStreamingResponse(result, requestEnvelope, requestContext, replyTo, requestId) {
5879
5879
  const iterable = toAsyncIterable(result);
5880
- logger$1c.debug('handling_streaming_response', {
5880
+ logger$1b.debug('handling_streaming_response', {
5881
5881
  request_id: requestId,
5882
5882
  reply_to: replyTo,
5883
5883
  });
@@ -5888,7 +5888,7 @@ class StreamingResponseHandler {
5888
5888
  await this.sendRpcResponse(null, requestEnvelope, requestContext, replyTo, requestId);
5889
5889
  }
5890
5890
  catch (error) {
5891
- logger$1c.error('streaming_response_handler_error', {
5891
+ logger$1b.error('streaming_response_handler_error', {
5892
5892
  request_id: requestId,
5893
5893
  error: error instanceof Error ? error.message : String(error),
5894
5894
  });
@@ -5915,7 +5915,7 @@ class StreamingResponseHandler {
5915
5915
  });
5916
5916
  const responseContext = this.responseContextManager.createResponseContext(requestEnvelope, requestContext);
5917
5917
  this.responseContextManager.ensureResponseMetadata(responseEnvelope, requestEnvelope, responseContext);
5918
- logger$1c.debug('sending_streaming_rpc_response', {
5918
+ logger$1b.debug('sending_streaming_rpc_response', {
5919
5919
  request_id: requestId,
5920
5920
  response_envelope_id: responseEnvelope.id,
5921
5921
  reply_to: replyTo,
@@ -5928,7 +5928,7 @@ class StreamingResponseHandler {
5928
5928
  }
5929
5929
  }
5930
5930
 
5931
- const logger$1b = getLogger('naylence.fame.node.channel_polling_manager');
5931
+ const logger$1a = getLogger('naylence.fame.node.channel_polling_manager');
5932
5932
  class ChannelPollingManager {
5933
5933
  constructor(deliverWrapper, responseContextManager, streamingResponseHandler) {
5934
5934
  this.deliverWrapper = deliverWrapper;
@@ -5936,7 +5936,7 @@ class ChannelPollingManager {
5936
5936
  this.streamingResponseHandler = streamingResponseHandler;
5937
5937
  }
5938
5938
  async startPollingLoop(serviceName, channel, handler, stopState, pollTimeoutMs = core.DEFAULT_POLLING_TIMEOUT_MS) {
5939
- logger$1b.debug('poll_loop_started', {
5939
+ logger$1a.debug('poll_loop_started', {
5940
5940
  recipient: serviceName,
5941
5941
  });
5942
5942
  try {
@@ -5944,7 +5944,7 @@ class ChannelPollingManager {
5944
5944
  while (true) {
5945
5945
  if (this.isStopRequested(stopState) && !draining) {
5946
5946
  draining = true;
5947
- logger$1b.debug('poll_loop_draining_pending_messages', {
5947
+ logger$1a.debug('poll_loop_draining_pending_messages', {
5948
5948
  recipient: serviceName,
5949
5949
  });
5950
5950
  }
@@ -5954,7 +5954,7 @@ class ChannelPollingManager {
5954
5954
  }
5955
5955
  catch (error) {
5956
5956
  if (error instanceof FameTransportClose) {
5957
- logger$1b.debug('channel_closed', {
5957
+ logger$1a.debug('channel_closed', {
5958
5958
  recipient: serviceName,
5959
5959
  message: error.message,
5960
5960
  });
@@ -5967,7 +5967,7 @@ class ChannelPollingManager {
5967
5967
  continue;
5968
5968
  }
5969
5969
  if (error instanceof Error && error.name === 'AbortError') {
5970
- logger$1b.debug('listener_cancelled', {
5970
+ logger$1a.debug('listener_cancelled', {
5971
5971
  recipient: serviceName,
5972
5972
  });
5973
5973
  throw error;
@@ -5979,13 +5979,13 @@ class ChannelPollingManager {
5979
5979
  continue;
5980
5980
  }
5981
5981
  if (error instanceof Error && error.message === 'Channel is closed') {
5982
- logger$1b.debug('channel_closed', {
5982
+ logger$1a.debug('channel_closed', {
5983
5983
  recipient: serviceName,
5984
5984
  });
5985
5985
  break;
5986
5986
  }
5987
5987
  if (error instanceof Error && error.name === 'TaskCancelledError') {
5988
- logger$1b.debug('listener_cancelled', {
5988
+ logger$1a.debug('listener_cancelled', {
5989
5989
  recipient: serviceName,
5990
5990
  });
5991
5991
  throw error;
@@ -5997,12 +5997,12 @@ class ChannelPollingManager {
5997
5997
  continue;
5998
5998
  }
5999
5999
  if (error instanceof Error && error.message.includes('closed')) {
6000
- logger$1b.debug('channel_closed', {
6000
+ logger$1a.debug('channel_closed', {
6001
6001
  recipient: serviceName,
6002
6002
  });
6003
6003
  break;
6004
6004
  }
6005
- logger$1b.error('transport_error', {
6005
+ logger$1a.error('transport_error', {
6006
6006
  recipient: serviceName,
6007
6007
  error: error instanceof Error ? error.message : String(error),
6008
6008
  });
@@ -6018,7 +6018,7 @@ class ChannelPollingManager {
6018
6018
  }
6019
6019
  }
6020
6020
  finally {
6021
- logger$1b.debug('poll_loop_exiting', {
6021
+ logger$1a.debug('poll_loop_exiting', {
6022
6022
  recipient: serviceName,
6023
6023
  });
6024
6024
  }
@@ -6031,7 +6031,7 @@ class ChannelPollingManager {
6031
6031
  await this.processHandlerResult(result, envelope, deliveryContext, serviceName);
6032
6032
  }
6033
6033
  catch (error) {
6034
- logger$1b.error('handler_crashed', {
6034
+ logger$1a.error('handler_crashed', {
6035
6035
  recipient: serviceName,
6036
6036
  error: error instanceof Error ? error.message : String(error),
6037
6037
  });
@@ -6045,7 +6045,7 @@ class ChannelPollingManager {
6045
6045
  return;
6046
6046
  }
6047
6047
  if (this.streamingResponseHandler.isStreamingFameMessageResponse(result)) {
6048
- logger$1b.debug('handling_streaming_fame_message_responses', {
6048
+ logger$1a.debug('handling_streaming_fame_message_responses', {
6049
6049
  service_name: serviceName,
6050
6050
  envelope_id: envelope.id,
6051
6051
  });
@@ -6053,7 +6053,7 @@ class ChannelPollingManager {
6053
6053
  }
6054
6054
  }
6055
6055
  async handleMessageResponse(response, requestEnvelope, requestContext, serviceName) {
6056
- logger$1b.debug('delivering_envelope_response_message', {
6056
+ logger$1a.debug('delivering_envelope_response_message', {
6057
6057
  service_name: serviceName,
6058
6058
  response_envelope_id: response.envelope.id,
6059
6059
  });
@@ -6073,7 +6073,7 @@ class ChannelPollingManager {
6073
6073
  }
6074
6074
  }
6075
6075
 
6076
- const logger$1a = getLogger('naylence.fame.node.rpc_server_handler');
6076
+ const logger$19 = getLogger('naylence.fame.node.rpc_server_handler');
6077
6077
  function isPlainRecord$6(value) {
6078
6078
  if (typeof value !== 'object' || value === null) {
6079
6079
  return false;
@@ -6117,13 +6117,13 @@ class RPCServerHandler {
6117
6117
  }
6118
6118
  async handleRpcRequest(envelope, handlerContext, handler, serviceName) {
6119
6119
  if (!this.isDataFrame(envelope.frame)) {
6120
- logger$1a.warning('rpc_request_missing_data_frame', {
6120
+ logger$19.warning('rpc_request_missing_data_frame', {
6121
6121
  service_name: serviceName,
6122
6122
  envelope_id: envelope.id,
6123
6123
  });
6124
6124
  return;
6125
6125
  }
6126
- logger$1a.debug('rpc_request_received', {
6126
+ logger$19.debug('rpc_request_received', {
6127
6127
  service_name: serviceName,
6128
6128
  envelope_id: envelope.id,
6129
6129
  trace_id: envelope.traceId,
@@ -6135,7 +6135,7 @@ class RPCServerHandler {
6135
6135
  request = core.parseRequest(envelope.frame.payload);
6136
6136
  params = cloneParams(request.params);
6137
6137
  const paramKeys = Object.keys(params);
6138
- logger$1a.debug('parsed_rpc_request', {
6138
+ logger$19.debug('parsed_rpc_request', {
6139
6139
  service_name: serviceName,
6140
6140
  method: request.method,
6141
6141
  request_id: request.id,
@@ -6144,7 +6144,7 @@ class RPCServerHandler {
6144
6144
  });
6145
6145
  }
6146
6146
  catch (error) {
6147
- logger$1a.warning('request_decode_error', {
6147
+ logger$19.warning('request_decode_error', {
6148
6148
  service_name: serviceName,
6149
6149
  envelope_id: envelope.id,
6150
6150
  error: error instanceof Error ? error.message : String(error),
@@ -6152,7 +6152,7 @@ class RPCServerHandler {
6152
6152
  return;
6153
6153
  }
6154
6154
  if (request.id == null) {
6155
- logger$1a.warning('request_missing_id', {
6155
+ logger$19.warning('request_missing_id', {
6156
6156
  service_name: serviceName,
6157
6157
  envelope_id: envelope.id,
6158
6158
  });
@@ -6160,7 +6160,7 @@ class RPCServerHandler {
6160
6160
  }
6161
6161
  const replyTo = this.resolveReplyTo(envelope, params);
6162
6162
  if (!replyTo) {
6163
- logger$1a.warning('missing_reply_to', {
6163
+ logger$19.warning('missing_reply_to', {
6164
6164
  service_name: serviceName,
6165
6165
  envelope_id: envelope.id,
6166
6166
  request_id: request.id,
@@ -6169,13 +6169,13 @@ class RPCServerHandler {
6169
6169
  }
6170
6170
  let handlerResult;
6171
6171
  try {
6172
- logger$1a.debug('calling_rpc_handler', {
6172
+ logger$19.debug('calling_rpc_handler', {
6173
6173
  service_name: serviceName,
6174
6174
  method: request.method,
6175
6175
  request_id: request.id,
6176
6176
  });
6177
6177
  handlerResult = await handler(request.method, params);
6178
- logger$1a.debug('rpc_handler_returned', {
6178
+ logger$19.debug('rpc_handler_returned', {
6179
6179
  service_name: serviceName,
6180
6180
  method: request.method,
6181
6181
  request_id: request.id,
@@ -6184,7 +6184,7 @@ class RPCServerHandler {
6184
6184
  });
6185
6185
  }
6186
6186
  catch (error) {
6187
- logger$1a.error('rpc_handler_error', {
6187
+ logger$19.error('rpc_handler_error', {
6188
6188
  service_name: serviceName,
6189
6189
  request_id: request.id,
6190
6190
  envelope_id: envelope.id,
@@ -6194,7 +6194,7 @@ class RPCServerHandler {
6194
6194
  return this.createTraditionalResponse(response, request.id, envelope, replyTo, handlerContext, serviceName);
6195
6195
  }
6196
6196
  if (core.isFameMessageResponse(handlerResult)) {
6197
- logger$1a.debug('returning_response_message', {
6197
+ logger$19.debug('returning_response_message', {
6198
6198
  service_name: serviceName,
6199
6199
  request_id: request.id,
6200
6200
  response_envelope_id: handlerResult.envelope.id,
@@ -6202,7 +6202,7 @@ class RPCServerHandler {
6202
6202
  return handlerResult;
6203
6203
  }
6204
6204
  if (this.streamingResponseHandler.isStreamingResult(handlerResult)) {
6205
- logger$1a.debug('handling_streaming_response', {
6205
+ logger$19.debug('handling_streaming_response', {
6206
6206
  service_name: serviceName,
6207
6207
  request_id: request.id,
6208
6208
  envelope_id: envelope.id,
@@ -6231,7 +6231,7 @@ class RPCServerHandler {
6231
6231
  return null;
6232
6232
  }
6233
6233
  async createTraditionalResponse(payload, requestId, requestEnvelope, replyTo, handlerContext, serviceName) {
6234
- logger$1a.debug('creating_traditional_response_envelope', {
6234
+ logger$19.debug('creating_traditional_response_envelope', {
6235
6235
  service_name: serviceName,
6236
6236
  request_id: requestId,
6237
6237
  envelope_id: requestEnvelope.id,
@@ -6255,7 +6255,7 @@ class RPCServerHandler {
6255
6255
  if (requestEnvelope.id) {
6256
6256
  responseContext.meta['response-to-id'] = requestEnvelope.id;
6257
6257
  }
6258
- logger$1a.debug('returning_traditional_response', {
6258
+ logger$19.debug('returning_traditional_response', {
6259
6259
  service_name: serviceName,
6260
6260
  request_id: requestId,
6261
6261
  envelope_id: requestEnvelope.id,
@@ -6320,7 +6320,7 @@ function normalizeErrorCode(code) {
6320
6320
  return code;
6321
6321
  }
6322
6322
 
6323
- const logger$19 = getLogger('naylence.fame.node.rpc_client_manager');
6323
+ const logger$18 = getLogger('naylence.fame.node.rpc_client_manager');
6324
6324
  function isPlainRecord$5(value) {
6325
6325
  if (typeof value !== 'object' || value === null) {
6326
6326
  return false;
@@ -6537,7 +6537,7 @@ class RPCClientManager {
6537
6537
  const metaReason = tracked.meta?.['nack_reason'];
6538
6538
  const formattedMessage = formatDeliveryErrorMessage(typeof metaCode === 'string' ? metaCode : 'DELIVERY_ERROR', reason ??
6539
6539
  (typeof metaReason === 'string' ? metaReason : undefined));
6540
- logger$19.debug('pending_request_rejected_by_delivery_nack', {
6540
+ logger$18.debug('pending_request_rejected_by_delivery_nack', {
6541
6541
  envelope_id: envelopeId,
6542
6542
  request_id: requestId,
6543
6543
  code: typeof metaCode === 'string' ? metaCode : 'DELIVERY_ERROR',
@@ -6560,7 +6560,7 @@ class RPCClientManager {
6560
6560
  this.trackerWithEvents.removeEventHandler?.(this.trackerEventHandler);
6561
6561
  }
6562
6562
  catch (error) {
6563
- logger$19.debug('rpc_tracker_handler_remove_failed', {
6563
+ logger$18.debug('rpc_tracker_handler_remove_failed', {
6564
6564
  error: error instanceof Error ? error.message : String(error),
6565
6565
  });
6566
6566
  }
@@ -6603,7 +6603,7 @@ class RPCClientManager {
6603
6603
  this.rpcListenerAddress = await this.listenCallback(recipient, handler);
6604
6604
  this.rpcBound = true;
6605
6605
  this.boundPhysicalPath = currentPhysicalPath;
6606
- logger$19.debug('rpc_reply_listener_bound', {
6606
+ logger$18.debug('rpc_reply_listener_bound', {
6607
6607
  reply_recipient: recipient,
6608
6608
  reply_address: this.rpcReplyAddress?.toString(),
6609
6609
  listener_address: this.rpcListenerAddress?.toString(),
@@ -6697,7 +6697,7 @@ class RPCClientManager {
6697
6697
  const finalizePromise = this.notifyStreamClosed(envelopeId);
6698
6698
  if (finalizePromise) {
6699
6699
  finalizePromise.catch((notifyError) => {
6700
- logger$19.debug('stream_tracker_finalize_failed', {
6700
+ logger$18.debug('stream_tracker_finalize_failed', {
6701
6701
  request_id: requestId,
6702
6702
  envelope_id: envelopeId,
6703
6703
  error: notifyError instanceof Error
@@ -6758,7 +6758,7 @@ class RPCClientManager {
6758
6758
  return iterator;
6759
6759
  }
6760
6760
  async sendRpcRequest(requestId, envelope, expectedResponseType, timeoutMs) {
6761
- logger$19.debug('sending_rpc_request', {
6761
+ logger$18.debug('sending_rpc_request', {
6762
6762
  envp_id: envelope.id,
6763
6763
  corr_id: envelope.corrId,
6764
6764
  request_id: requestId,
@@ -6774,7 +6774,7 @@ class RPCClientManager {
6774
6774
  }
6775
6775
  }
6776
6776
  catch (error) {
6777
- logger$19.warning('delivery_tracker_track_failed', {
6777
+ logger$18.warning('delivery_tracker_track_failed', {
6778
6778
  request_id: requestId,
6779
6779
  error: error instanceof Error ? error.message : String(error),
6780
6780
  });
@@ -6787,14 +6787,14 @@ class RPCClientManager {
6787
6787
  await this.deliverWrapper()(envelope, context);
6788
6788
  }
6789
6789
  async handleReplyEnvelope(envelope) {
6790
- logger$19.debug('handle_reply_envelope_received', {
6790
+ logger$18.debug('handle_reply_envelope_received', {
6791
6791
  envelope_id: envelope.id,
6792
6792
  corr_id: envelope.corrId,
6793
6793
  frame_type: envelope.frame?.['type'],
6794
6794
  });
6795
6795
  let requestId = envelope.corrId ?? envelope.id;
6796
6796
  if (!requestId) {
6797
- logger$19.warning('reply_envelope_missing_corr_id', {
6797
+ logger$18.warning('reply_envelope_missing_corr_id', {
6798
6798
  envelope_id: envelope.id,
6799
6799
  });
6800
6800
  return;
@@ -6812,12 +6812,12 @@ class RPCClientManager {
6812
6812
  }
6813
6813
  }
6814
6814
  if (!entry) {
6815
- logger$19.debug('no_pending_request_for_reply', {
6815
+ logger$18.debug('no_pending_request_for_reply', {
6816
6816
  request_id: requestId,
6817
6817
  });
6818
6818
  return;
6819
6819
  }
6820
- logger$19.debug('handle_reply_envelope', {
6820
+ logger$18.debug('handle_reply_envelope', {
6821
6821
  envelope_id: envelope.id,
6822
6822
  request_id: requestId,
6823
6823
  corr_id: envelope.corrId,
@@ -6830,7 +6830,7 @@ class RPCClientManager {
6830
6830
  const ackIndicatesSuccess = frame.ok === true ||
6831
6831
  (frame.ok === undefined && !frame.code && !frame.reason);
6832
6832
  if (ackIndicatesSuccess) {
6833
- logger$19.debug('pending_request_delivery_acknowledged', {
6833
+ logger$18.debug('pending_request_delivery_acknowledged', {
6834
6834
  request_id: requestId,
6835
6835
  envelope_id: envelope.id,
6836
6836
  ref_id: frame.refId ?? null,
@@ -6858,7 +6858,7 @@ class RPCClientManager {
6858
6858
  entry.timer = null;
6859
6859
  }
6860
6860
  if (!this.isDataFrame(envelope.frame)) {
6861
- logger$19.warning('unexpected_reply_frame_type', {
6861
+ logger$18.warning('unexpected_reply_frame_type', {
6862
6862
  request_id: requestId,
6863
6863
  frame_type: envelope.frame?.['type'],
6864
6864
  });
@@ -6924,7 +6924,7 @@ class RPCClientManager {
6924
6924
  return;
6925
6925
  }
6926
6926
  Promise.resolve(this.deliveryTracker.onStreamItem(envelopeId, envelope)).catch((error) => {
6927
- logger$19.debug('stream_tracker_push_failed', {
6927
+ logger$18.debug('stream_tracker_push_failed', {
6928
6928
  envelope_id: envelopeId,
6929
6929
  error: error instanceof Error ? error.message : String(error),
6930
6930
  });
@@ -7039,7 +7039,7 @@ function normalizeMailbox(mailbox) {
7039
7039
  return mailbox;
7040
7040
  }
7041
7041
 
7042
- const logger$18 = getLogger('naylence.fame.node.envelope_listener_manager');
7042
+ const logger$17 = getLogger('naylence.fame.node.envelope_listener_manager');
7043
7043
  const SYSTEM_INBOX$2 = '__sys__';
7044
7044
  class EnvelopeListener {
7045
7045
  constructor(stopFn, task) {
@@ -7047,7 +7047,7 @@ class EnvelopeListener {
7047
7047
  this.task = task;
7048
7048
  }
7049
7049
  stop() {
7050
- logger$18.debug('stopping_listener', {
7050
+ logger$17.debug('stopping_listener', {
7051
7051
  task_name: this.task.name,
7052
7052
  });
7053
7053
  try {
@@ -7055,7 +7055,7 @@ class EnvelopeListener {
7055
7055
  if (maybeCleanup &&
7056
7056
  typeof maybeCleanup.then === 'function') {
7057
7057
  void maybeCleanup.catch((error) => {
7058
- logger$18.debug('listener_stop_cleanup_failed', {
7058
+ logger$17.debug('listener_stop_cleanup_failed', {
7059
7059
  task_name: this.task.name,
7060
7060
  error: error instanceof Error ? error.message : String(error),
7061
7061
  });
@@ -7063,7 +7063,7 @@ class EnvelopeListener {
7063
7063
  }
7064
7064
  }
7065
7065
  catch (error) {
7066
- logger$18.debug('listener_stop_cleanup_failed', {
7066
+ logger$17.debug('listener_stop_cleanup_failed', {
7067
7067
  task_name: this.task.name,
7068
7068
  error: error instanceof Error ? error.message : String(error),
7069
7069
  });
@@ -7093,7 +7093,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7093
7093
  envelope.replyTo = core.formatAddress(SYSTEM_INBOX$2, this.nodeLike.physicalPath);
7094
7094
  }
7095
7095
  catch (error) {
7096
- logger$18.warning('default_reply_to_assignment_failed', {
7096
+ logger$17.warning('default_reply_to_assignment_failed', {
7097
7097
  envelope_id: envelope.id,
7098
7098
  service_name: envelope.capabilities?.[0] ?? null,
7099
7099
  error: error instanceof Error ? error.message : String(error),
@@ -7118,7 +7118,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7118
7118
  if (serviceName === SYSTEM_INBOX$2) {
7119
7119
  continue;
7120
7120
  }
7121
- logger$18.debug('stopping_listener_for_service', {
7121
+ logger$17.debug('stopping_listener_for_service', {
7122
7122
  service_name: serviceName,
7123
7123
  });
7124
7124
  entry.listener.stop();
@@ -7128,7 +7128,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7128
7128
  catch (error) {
7129
7129
  if (!(error instanceof Error) ||
7130
7130
  error.name !== 'TaskCancelledError') {
7131
- logger$18.debug('listener_task_stopped', {
7131
+ logger$17.debug('listener_task_stopped', {
7132
7132
  service_name: serviceName,
7133
7133
  error: error instanceof Error ? error.message : String(error),
7134
7134
  });
@@ -7136,7 +7136,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7136
7136
  }
7137
7137
  }
7138
7138
  if (systemEntry) {
7139
- logger$18.debug('stopping_listener_for_service', {
7139
+ logger$17.debug('stopping_listener_for_service', {
7140
7140
  service_name: SYSTEM_INBOX$2,
7141
7141
  });
7142
7142
  systemEntry.listener.stop();
@@ -7146,7 +7146,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7146
7146
  catch (error) {
7147
7147
  if (!(error instanceof Error) ||
7148
7148
  error.name !== 'TaskCancelledError') {
7149
- logger$18.debug('listener_task_stopped', {
7149
+ logger$17.debug('listener_task_stopped', {
7150
7150
  service_name: SYSTEM_INBOX$2,
7151
7151
  error: error instanceof Error ? error.message : String(error),
7152
7152
  });
@@ -7163,13 +7163,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7163
7163
  }
7164
7164
  async recoverUnhandledInboundEnvelopes() {
7165
7165
  if (typeof this.deliveryTracker.listInbound !== 'function') {
7166
- logger$18.debug('delivery_tracker_missing_inbound_listing');
7166
+ logger$17.debug('delivery_tracker_missing_inbound_listing');
7167
7167
  return;
7168
7168
  }
7169
7169
  const failedInbound = await this.deliveryTracker.listInbound((env) => env.status === EnvelopeStatus.RECEIVED ||
7170
7170
  env.status === EnvelopeStatus.FAILED_TO_HANDLE);
7171
7171
  if (!failedInbound.length) {
7172
- logger$18.debug('no_failed_inbound_envelopes_to_recover');
7172
+ logger$17.debug('no_failed_inbound_envelopes_to_recover');
7173
7173
  return;
7174
7174
  }
7175
7175
  const grouped = new Map();
@@ -7186,7 +7186,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7186
7186
  this.pendingRecoveryEnvelopes.set(serviceName, envelopes);
7187
7187
  }
7188
7188
  });
7189
- logger$18.debug('discovered_failed_inbound_envelopes', {
7189
+ logger$17.debug('discovered_failed_inbound_envelopes', {
7190
7190
  total: failedInbound.length,
7191
7191
  services: Array.from(grouped.keys()),
7192
7192
  });
@@ -7196,7 +7196,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7196
7196
  const pollTimeoutMs = options.pollTimeoutMs ??
7197
7197
  options.poll_timeout_ms ??
7198
7198
  core.DEFAULT_POLLING_TIMEOUT_MS;
7199
- logger$18.debug('listen_start', {
7199
+ logger$17.debug('listen_start', {
7200
7200
  recipient: serviceName,
7201
7201
  poll_timeout_ms: pollTimeoutMs ?? core.DEFAULT_POLLING_TIMEOUT_MS,
7202
7202
  });
@@ -7227,7 +7227,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7227
7227
  tracked?.mailboxType === MailboxType.OUTBOX ||
7228
7228
  envelope.frame?.['type'] === 'DeliveryAck';
7229
7229
  if (!shouldInvoke) {
7230
- logger$18.debug('skipping_listener_handler', {
7230
+ logger$17.debug('skipping_listener_handler', {
7231
7231
  recipient: serviceName,
7232
7232
  envelope_id: envelope.id,
7233
7233
  tracked_status: tracked?.status,
@@ -7241,13 +7241,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7241
7241
  ? undefined
7242
7242
  : (tracked ?? undefined);
7243
7243
  if (trackedForHandler && trackedForHandler.attempt > 0) {
7244
- logger$18.info('resuming_handler_retry_after_restart', {
7244
+ logger$17.info('resuming_handler_retry_after_restart', {
7245
7245
  envelope_id: envelope.id,
7246
7246
  current_attempts: trackedForHandler.attempt,
7247
7247
  service_name: serviceName,
7248
7248
  });
7249
7249
  }
7250
- logger$18.debug('forwarding_to_listener_handler', {
7250
+ logger$17.debug('forwarding_to_listener_handler', {
7251
7251
  recipient: serviceName,
7252
7252
  envelope_id: envelope.id,
7253
7253
  frame_type: envelope.frame?.['type'],
@@ -7266,7 +7266,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7266
7266
  await channel.send(null);
7267
7267
  }
7268
7268
  catch (error) {
7269
- logger$18.debug('listener_stop_signal_failed', {
7269
+ logger$17.debug('listener_stop_signal_failed', {
7270
7270
  service_name: serviceName,
7271
7271
  error: error instanceof Error ? error.message : String(error),
7272
7272
  });
@@ -7275,7 +7275,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7275
7275
  await this.listenersLock.runExclusive(async () => {
7276
7276
  const existing = this.listeners.get(serviceName);
7277
7277
  if (existing) {
7278
- logger$18.debug('replacing_envelope_listener', { recipient: serviceName });
7278
+ logger$17.debug('replacing_envelope_listener', { recipient: serviceName });
7279
7279
  existing.listener.stop();
7280
7280
  try {
7281
7281
  await existing.listener.task.promise;
@@ -7293,13 +7293,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7293
7293
  return binding.address;
7294
7294
  }
7295
7295
  async listenRpc(serviceName, handler, options = {}) {
7296
- logger$18.debug('rpc_listen_start', { service_name: serviceName });
7296
+ logger$17.debug('rpc_listen_start', { service_name: serviceName });
7297
7297
  const rpcHandler = async (envelope, context) => {
7298
7298
  const result = await this.rpcServerHandler.handleRpcRequest(envelope, context, handler, serviceName);
7299
7299
  return result ?? null;
7300
7300
  };
7301
7301
  const address = await this.listen(serviceName, rpcHandler, options);
7302
- logger$18.debug('rpc_listen_bound', {
7302
+ logger$17.debug('rpc_listen_bound', {
7303
7303
  service_name: serviceName,
7304
7304
  address: address.toString(),
7305
7305
  });
@@ -7368,12 +7368,12 @@ class EnvelopeListenerManager extends TaskSpawner {
7368
7368
  return cached;
7369
7369
  });
7370
7370
  if (!envelopes.length) {
7371
- logger$18.debug('no_cached_recovery_for_service', {
7371
+ logger$17.debug('no_cached_recovery_for_service', {
7372
7372
  service_name: serviceName,
7373
7373
  });
7374
7374
  return;
7375
7375
  }
7376
- logger$18.debug('recovering_unhandled_envelopes_on_listen', {
7376
+ logger$17.debug('recovering_unhandled_envelopes_on_listen', {
7377
7377
  service_name: serviceName,
7378
7378
  count: envelopes.length,
7379
7379
  envelope_ids: envelopes.map((trackedEnvelope) => trackedEnvelope.envelopeId),
@@ -7384,7 +7384,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7384
7384
  async recoverServiceEnvelopes(serviceName, envelopes, handler) {
7385
7385
  for (const tracked of envelopes) {
7386
7386
  try {
7387
- logger$18.warning('recovering_unhandled_envelope', {
7387
+ logger$17.warning('recovering_unhandled_envelope', {
7388
7388
  envelope_id: tracked.envelopeId,
7389
7389
  service_name: serviceName,
7390
7390
  current_attempts: tracked.attempt,
@@ -7393,13 +7393,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7393
7393
  const originalEnvelope = tracked.originalEnvelope;
7394
7394
  const receiverPolicy = this.nodeLike.deliveryPolicy?.receiverRetryPolicy ?? undefined;
7395
7395
  await this.executeHandlerWithRetries(handler, originalEnvelope, undefined, receiverPolicy, tracked, serviceName);
7396
- logger$18.debug('envelope_recovery_completed', {
7396
+ logger$17.debug('envelope_recovery_completed', {
7397
7397
  envelope_id: tracked.envelopeId,
7398
7398
  service_name: serviceName,
7399
7399
  });
7400
7400
  }
7401
7401
  catch (error) {
7402
- logger$18.error('envelope_recovery_failed', {
7402
+ logger$17.error('envelope_recovery_failed', {
7403
7403
  envelope_id: tracked.envelopeId,
7404
7404
  service_name: serviceName,
7405
7405
  error: error instanceof Error ? error.message : String(error),
@@ -7445,7 +7445,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7445
7445
  await this.deliveryTracker.onEnvelopeHandled(trackedEnvelope);
7446
7446
  }
7447
7447
  if (currentAttempt > 0) {
7448
- logger$18.info('handler_retry_succeeded', {
7448
+ logger$17.info('handler_retry_succeeded', {
7449
7449
  envelope_id: envelope.id,
7450
7450
  attempt: currentAttempt + 1,
7451
7451
  total_attempts: currentAttempt + 1,
@@ -7461,7 +7461,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7461
7461
  await this.deliveryTracker.onEnvelopeHandleFailed(inboxName, trackedEnvelope, context, error instanceof Error ? error : new Error(String(error)), isFinalAttempt);
7462
7462
  }
7463
7463
  if (isFinalAttempt) {
7464
- logger$18.error('handler_execution_failed_exhausted_retries', {
7464
+ logger$17.error('handler_execution_failed_exhausted_retries', {
7465
7465
  envelope_id: envelope.id,
7466
7466
  total_attempts: attemptNumber,
7467
7467
  max_retries: retryPolicy?.maxRetries ?? 0,
@@ -7470,7 +7470,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7470
7470
  break;
7471
7471
  }
7472
7472
  const delayMs = retryPolicy?.nextDelayMs(attemptNumber) ?? 0;
7473
- logger$18.warning('handler_execution_failed_will_retry', {
7473
+ logger$17.warning('handler_execution_failed_will_retry', {
7474
7474
  envelope_id: envelope.id,
7475
7475
  attempt: attemptNumber,
7476
7476
  max_retries: retryPolicy?.maxRetries ?? 0,
@@ -7500,7 +7500,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7500
7500
  }
7501
7501
  }
7502
7502
 
7503
- const logger$17 = getLogger('naylence.fame.delivery.default_delivery_tracker');
7503
+ const logger$16 = getLogger('naylence.fame.delivery.default_delivery_tracker');
7504
7504
  const STREAM_END = Symbol('stream-end');
7505
7505
  const SWEEPER_TICK = Symbol('tracker-sweeper-tick');
7506
7506
  function createDeferred$2() {
@@ -7719,7 +7719,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7719
7719
  const expectedResponseType = options.expectedResponseType;
7720
7720
  const tracked = await this.lock.runExclusive(async () => {
7721
7721
  if (this.ackFutures.has(envelope.id)) {
7722
- logger$17.debug('tracker_envelope_already_tracked', {
7722
+ logger$16.debug('tracker_envelope_already_tracked', {
7723
7723
  envp_id: envelope.id,
7724
7724
  });
7725
7725
  return null;
@@ -7729,7 +7729,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7729
7729
  if (expectedResponseType & core.FameResponseType.REPLY ||
7730
7730
  expectedResponseType & core.FameResponseType.STREAM) {
7731
7731
  if (existingEnvId && existingEnvId !== envelope.id) {
7732
- logger$17.debug('envelope_already_tracked_for_replies', {
7732
+ logger$16.debug('envelope_already_tracked_for_replies', {
7733
7733
  envp_id: envelope.id,
7734
7734
  corr_id: corrId,
7735
7735
  expected_response_type: expectedResponseType,
@@ -7778,7 +7778,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7778
7778
  return null;
7779
7779
  }
7780
7780
  await this.scheduleTimer(tracked, options.retryPolicy ?? null, options.retryHandler ?? null);
7781
- logger$17.debug('tracker_registered_envelope', {
7781
+ logger$16.debug('tracker_registered_envelope', {
7782
7782
  envp_id: envelope.id,
7783
7783
  corr_id: tracked.originalEnvelope.corrId,
7784
7784
  expected_response: tracked.expectedResponseType,
@@ -7802,21 +7802,21 @@ class DefaultDeliveryTracker extends TaskSpawner {
7802
7802
  return this.awaitEnvelopeFuture(envelopeId, core.FameResponseType.REPLY | core.FameResponseType.STREAM, future, timeoutMs);
7803
7803
  }
7804
7804
  async onEnvelopeDelivered(inboxName, envelope, context) {
7805
- logger$17.debug('envelope_delivered', {
7805
+ logger$16.debug('envelope_delivered', {
7806
7806
  envp_id: envelope.id,
7807
7807
  corr_id: envelope.corrId,
7808
7808
  rtype: envelope.rtype ?? core.FameResponseType.NONE,
7809
7809
  frame_type: envelope.frame?.type ?? 'unknown',
7810
7810
  });
7811
7811
  if (!envelope.corrId) {
7812
- logger$17.debug('envelope_delivered_no_corr_id', {
7812
+ logger$16.debug('envelope_delivered_no_corr_id', {
7813
7813
  envelope_id: envelope.id,
7814
7814
  });
7815
7815
  return null;
7816
7816
  }
7817
7817
  if (this.isDeliveryAckFrame(envelope.frame)) {
7818
7818
  if (!envelope.frame.refId) {
7819
- logger$17.debug('envelope_delivered_no_ref_id', {
7819
+ logger$16.debug('envelope_delivered_no_ref_id', {
7820
7820
  envelope_id: envelope.id,
7821
7821
  });
7822
7822
  return null;
@@ -7853,7 +7853,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7853
7853
  await inbox.set(envelope.id, tracked);
7854
7854
  }
7855
7855
  else {
7856
- logger$17.debug('tracker_duplicate_envelope_already_handled', {
7856
+ logger$16.debug('tracker_duplicate_envelope_already_handled', {
7857
7857
  envp_id: envelope.id,
7858
7858
  status: tracked.status,
7859
7859
  });
@@ -7895,7 +7895,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7895
7895
  }
7896
7896
  if (isFinalFailure) {
7897
7897
  envelope.status = EnvelopeStatus.FAILED_TO_HANDLE;
7898
- logger$17.error('envelope_handle_failed_final', {
7898
+ logger$16.error('envelope_handle_failed_final', {
7899
7899
  inbox_name: inboxName,
7900
7900
  envp_id: envelope.originalEnvelope.id,
7901
7901
  error: error?.message ?? 'unknown',
@@ -7906,7 +7906,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7906
7906
  await inbox.delete(envelope.originalEnvelope.id);
7907
7907
  return;
7908
7908
  }
7909
- logger$17.warning('envelope_handle_failed_retry', {
7909
+ logger$16.warning('envelope_handle_failed_retry', {
7910
7910
  inbox_name: inboxName,
7911
7911
  envp_id: envelope.originalEnvelope.id,
7912
7912
  error: error?.message ?? 'unknown',
@@ -7951,14 +7951,14 @@ class DefaultDeliveryTracker extends TaskSpawner {
7951
7951
  if (handledViaFuture) {
7952
7952
  await this.markDoneSince(this.ackFutures, refId, this.ackDoneSince);
7953
7953
  await this.clearTimer(refId);
7954
- logger$17.debug('tracker_ack_resolved_without_tracked_envelope', {
7954
+ logger$16.debug('tracker_ack_resolved_without_tracked_envelope', {
7955
7955
  envp_id: envelope.id,
7956
7956
  ref_id: refId,
7957
7957
  corr_id: envelope.corrId,
7958
7958
  });
7959
7959
  return;
7960
7960
  }
7961
- logger$17.debug('tracker_ack_for_unknown_envelope', {
7961
+ logger$16.debug('tracker_ack_for_unknown_envelope', {
7962
7962
  envp_id: envelope.id,
7963
7963
  ref_id: refId,
7964
7964
  corr_id: envelope.corrId,
@@ -7966,7 +7966,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7966
7966
  return;
7967
7967
  }
7968
7968
  if (tracked.originalEnvelope.corrId !== envelope.corrId) {
7969
- logger$17.debug('tracker_ack_corr_id_mismatch', {
7969
+ logger$16.debug('tracker_ack_corr_id_mismatch', {
7970
7970
  envp_id: envelope.id,
7971
7971
  expected_corr_id: tracked.originalEnvelope.corrId,
7972
7972
  actual_corr_id: envelope.corrId,
@@ -7991,7 +7991,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7991
7991
  for (const handler of this.eventHandlers) {
7992
7992
  await handler.onEnvelopeAcked?.(tracked);
7993
7993
  }
7994
- logger$17.debug('tracker_envelope_acked', {
7994
+ logger$16.debug('tracker_envelope_acked', {
7995
7995
  envp_id: tracked.originalEnvelope.id,
7996
7996
  });
7997
7997
  }
@@ -8008,13 +8008,13 @@ class DefaultDeliveryTracker extends TaskSpawner {
8008
8008
  const outbox = this.ensureOutbox();
8009
8009
  const tracked = await outbox.get(envelope.frame.refId);
8010
8010
  if (!tracked) {
8011
- logger$17.debug('tracker_nack_for_unknown_envelope', {
8011
+ logger$16.debug('tracker_nack_for_unknown_envelope', {
8012
8012
  envp_id: envelope.id,
8013
8013
  });
8014
8014
  return;
8015
8015
  }
8016
8016
  if (tracked.originalEnvelope.corrId !== envelope.corrId) {
8017
- logger$17.debug('tracker_nack_corr_id_mismatch', {
8017
+ logger$16.debug('tracker_nack_corr_id_mismatch', {
8018
8018
  envp_id: envelope.id,
8019
8019
  expected_corr_id: tracked.originalEnvelope.corrId,
8020
8020
  actual_corr_id: envelope.corrId,
@@ -8056,7 +8056,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8056
8056
  for (const handler of this.eventHandlers) {
8057
8057
  await handler.onEnvelopeNacked?.(tracked, ackFrame.reason ?? null);
8058
8058
  }
8059
- logger$17.debug('tracker_envelope_nacked', {
8059
+ logger$16.debug('tracker_envelope_nacked', {
8060
8060
  envp_id: tracked.originalEnvelope.id,
8061
8061
  reason: ackFrame.reason,
8062
8062
  });
@@ -8103,7 +8103,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8103
8103
  for (const handler of this.eventHandlers) {
8104
8104
  await handler.onEnvelopeReplied?.(trackedEnvelope, envelope);
8105
8105
  }
8106
- logger$17.debug('tracked_envelope_replied', {
8106
+ logger$16.debug('tracked_envelope_replied', {
8107
8107
  envp_id: trackedEnvelope.originalEnvelope.id,
8108
8108
  corr_id: envelope.corrId,
8109
8109
  });
@@ -8177,7 +8177,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8177
8177
  async addToInboxDlq(trackedEnvelope, reason = null) {
8178
8178
  const dlq = this.inboxDlq;
8179
8179
  if (!dlq) {
8180
- logger$17.error('dlq_not_initialized', {
8180
+ logger$16.error('dlq_not_initialized', {
8181
8181
  envp_id: trackedEnvelope.originalEnvelope.id,
8182
8182
  });
8183
8183
  return;
@@ -8192,7 +8192,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8192
8192
  const deadLetteredAt = Date.now();
8193
8193
  setMetaWithLegacy(trackedEnvelope.meta, 'deadLetteredAtMs', 'dead_lettered_at_ms', deadLetteredAt);
8194
8194
  await dlq.set(trackedEnvelope.originalEnvelope.id, trackedEnvelope);
8195
- logger$17.warning('envelope_moved_to_dlq', {
8195
+ logger$16.warning('envelope_moved_to_dlq', {
8196
8196
  envp_id: trackedEnvelope.originalEnvelope.id,
8197
8197
  service_name: trackedEnvelope.serviceName,
8198
8198
  });
@@ -8221,7 +8221,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8221
8221
  const toDelete = Object.entries(items).filter(([, value]) => predicate ? predicate(value) : true);
8222
8222
  await Promise.all(toDelete.map(([key]) => dlq.delete(key)));
8223
8223
  if (toDelete.length) {
8224
- logger$17.debug('dlq_purged', { count: toDelete.length });
8224
+ logger$16.debug('dlq_purged', { count: toDelete.length });
8225
8225
  }
8226
8226
  return toDelete.length;
8227
8227
  }
@@ -8274,11 +8274,11 @@ class DefaultDeliveryTracker extends TaskSpawner {
8274
8274
  }
8275
8275
  this.futuresSweeper = null;
8276
8276
  }
8277
- logger$17.debug('tracker_cleanup_completed');
8277
+ logger$16.debug('tracker_cleanup_completed');
8278
8278
  }
8279
8279
  async recoverPending() {
8280
8280
  const pending = await this.listPending();
8281
- logger$17.debug('tracker_recovering_pending', { count: pending.length });
8281
+ logger$16.debug('tracker_recovering_pending', { count: pending.length });
8282
8282
  await this.lock.runExclusive(async () => {
8283
8283
  for (const tracked of pending) {
8284
8284
  if (tracked.expectedResponseType & core.FameResponseType.ACK) {
@@ -8304,7 +8304,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8304
8304
  for (const tracked of pending) {
8305
8305
  await this.scheduleTimer(tracked, null, null);
8306
8306
  }
8307
- logger$17.debug('tracker_recovery_completed', { count: pending.length });
8307
+ logger$16.debug('tracker_recovery_completed', { count: pending.length });
8308
8308
  }
8309
8309
  ensureOutbox() {
8310
8310
  if (!this.outbox) {
@@ -8319,7 +8319,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8319
8319
  return this.inbox;
8320
8320
  }
8321
8321
  async waitForPendingAcks() {
8322
- logger$17.debug('tracker_node_preparing_to_stop_waiting_for_pending_acks');
8322
+ logger$16.debug('tracker_node_preparing_to_stop_waiting_for_pending_acks');
8323
8323
  const outbox = this.outbox;
8324
8324
  if (!outbox) {
8325
8325
  return;
@@ -8331,7 +8331,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8331
8331
  continue;
8332
8332
  }
8333
8333
  if (!future.done) {
8334
- logger$17.debug('tracker_pending_ack_future_detected', {
8334
+ logger$16.debug('tracker_pending_ack_future_detected', {
8335
8335
  envelope_id: envelopeId,
8336
8336
  });
8337
8337
  pending.push({ envelopeId, future });
@@ -8339,10 +8339,10 @@ class DefaultDeliveryTracker extends TaskSpawner {
8339
8339
  }
8340
8340
  });
8341
8341
  if (!pending.length) {
8342
- logger$17.debug('tracker_no_pending_acks_to_wait_for');
8342
+ logger$16.debug('tracker_no_pending_acks_to_wait_for');
8343
8343
  return;
8344
8344
  }
8345
- logger$17.debug('tracker_waiting_for_pending_acks', { count: pending.length });
8345
+ logger$16.debug('tracker_waiting_for_pending_acks', { count: pending.length });
8346
8346
  for (const entry of pending) {
8347
8347
  if (!entry) {
8348
8348
  continue;
@@ -8359,19 +8359,19 @@ class DefaultDeliveryTracker extends TaskSpawner {
8359
8359
  }
8360
8360
  try {
8361
8361
  await this.awaitWithTimeout(entry.future.promise, remainingMs);
8362
- logger$17.debug('tracker_received_ack', {
8362
+ logger$16.debug('tracker_received_ack', {
8363
8363
  envelope_id: entry.envelopeId,
8364
8364
  });
8365
8365
  await outbox.delete(entry.envelopeId);
8366
8366
  }
8367
8367
  catch (error) {
8368
8368
  if (error instanceof Error && error.name === 'TimeoutError') {
8369
- logger$17.debug('tracker_ack_timeout_expired', {
8369
+ logger$16.debug('tracker_ack_timeout_expired', {
8370
8370
  envelope_id: entry.envelopeId,
8371
8371
  });
8372
8372
  }
8373
8373
  else {
8374
- logger$17.debug('tracker_ack_wait_error', {
8374
+ logger$16.debug('tracker_ack_wait_error', {
8375
8375
  envelope_id: entry.envelopeId,
8376
8376
  error: error instanceof Error ? error.message : String(error),
8377
8377
  });
@@ -8379,13 +8379,13 @@ class DefaultDeliveryTracker extends TaskSpawner {
8379
8379
  }
8380
8380
  }
8381
8381
  catch (error) {
8382
- logger$17.error('tracker_error_waiting_for_ack', {
8382
+ logger$16.error('tracker_error_waiting_for_ack', {
8383
8383
  envelope_id: entry.envelopeId,
8384
8384
  error: error instanceof Error ? error.message : String(error),
8385
8385
  });
8386
8386
  }
8387
8387
  }
8388
- logger$17.debug('tracker_finished_waiting_for_pending_acks');
8388
+ logger$16.debug('tracker_finished_waiting_for_pending_acks');
8389
8389
  }
8390
8390
  async waitForPendingAckDispatches() {
8391
8391
  while (this.pendingAckDispatches.size > 0) {
@@ -8443,7 +8443,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8443
8443
  for (const handler of this.eventHandlers) {
8444
8444
  await handler.onEnvelopeTimeout?.(currentTracked);
8445
8445
  }
8446
- logger$17.debug('tracker_envelope_timed_out', {
8446
+ logger$16.debug('tracker_envelope_timed_out', {
8447
8447
  envp_id: tracked.originalEnvelope.id,
8448
8448
  });
8449
8449
  return;
@@ -8456,7 +8456,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8456
8456
  currentTracked.timeoutAtMs = nextTimeoutAt;
8457
8457
  await outbox.set(tracked.originalEnvelope.id, currentTracked);
8458
8458
  await this.scheduleTimer(currentTracked, retryPolicy, retryHandler);
8459
- logger$17.debug('tracker_retry_deferred_during_shutdown', {
8459
+ logger$16.debug('tracker_retry_deferred_during_shutdown', {
8460
8460
  envp_id: tracked.originalEnvelope.id,
8461
8461
  defer_ms: shutdownDeferMs,
8462
8462
  });
@@ -8479,7 +8479,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8479
8479
  });
8480
8480
  }
8481
8481
  await this.scheduleTimer(currentTracked, retryPolicy, retryHandler);
8482
- logger$17.debug('envelope_delivery_retry_scheduled', {
8482
+ logger$16.debug('envelope_delivery_retry_scheduled', {
8483
8483
  envp_id: tracked.originalEnvelope.id,
8484
8484
  attempt: currentTracked.attempt,
8485
8485
  max_retries: retryPolicy.maxRetries,
@@ -8491,7 +8491,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8491
8491
  currentTracked.timeoutAtMs = currentTracked.overallTimeoutAtMs;
8492
8492
  await outbox.set(tracked.originalEnvelope.id, currentTracked);
8493
8493
  await this.scheduleTimer(currentTracked, retryPolicy, retryHandler);
8494
- logger$17.debug('envelope_retries_exhausted_waiting_until_overall_timeout', {
8494
+ logger$16.debug('envelope_retries_exhausted_waiting_until_overall_timeout', {
8495
8495
  envp_id: tracked.originalEnvelope.id,
8496
8496
  attempt: currentTracked.attempt,
8497
8497
  overall_timeout_at_ms: currentTracked.overallTimeoutAtMs,
@@ -8511,7 +8511,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8511
8511
  for (const handler of this.eventHandlers) {
8512
8512
  await handler.onEnvelopeTimeout?.(currentTracked);
8513
8513
  }
8514
- logger$17.debug('tracker_envelope_timed_out', {
8514
+ logger$16.debug('tracker_envelope_timed_out', {
8515
8515
  envp_id: tracked.originalEnvelope.id,
8516
8516
  });
8517
8517
  }
@@ -8519,7 +8519,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8519
8519
  if (error instanceof TaskCancelledError) {
8520
8520
  return;
8521
8521
  }
8522
- logger$17.error('tracker_timer_error', {
8522
+ logger$16.error('tracker_timer_error', {
8523
8523
  envp_id: tracked.originalEnvelope.id,
8524
8524
  error: error instanceof Error ? error.message : String(error),
8525
8525
  });
@@ -8574,7 +8574,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8574
8574
  if (timeoutSeconds !== null) {
8575
8575
  return await this.awaitWithTimeout(future.promise, timeoutSeconds);
8576
8576
  }
8577
- logger$17.debug('await_envelope_no_timeout_wait', {
8577
+ logger$16.debug('await_envelope_no_timeout_wait', {
8578
8578
  envelope_id: envelopeId,
8579
8579
  });
8580
8580
  return await future.promise;
@@ -8583,7 +8583,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8583
8583
  if (error instanceof Error && error.name !== 'TimeoutError') {
8584
8584
  throw error;
8585
8585
  }
8586
- logger$17.error('await_envelope_timeout_error', {
8586
+ logger$16.error('await_envelope_timeout_error', {
8587
8587
  envelope_id: envelopeId,
8588
8588
  timeout_ms: timeoutSeconds,
8589
8589
  future_done: false,
@@ -8744,7 +8744,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8744
8744
  this.replyDoneSince.delete(envId);
8745
8745
  }
8746
8746
  });
8747
- logger$17.debug('tracker_swept_completed_futures', {
8747
+ logger$16.debug('tracker_swept_completed_futures', {
8748
8748
  ack_removed: toRemoveAck.length,
8749
8749
  reply_removed: toRemoveReply.length,
8750
8750
  grace_secs: this.futGcGraceSecs,
@@ -8758,7 +8758,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8758
8758
  if (error instanceof Error && error.name === 'TimeoutError') {
8759
8759
  continue;
8760
8760
  }
8761
- logger$17.error('tracker_sweeper_error', {
8761
+ logger$16.error('tracker_sweeper_error', {
8762
8762
  error: error instanceof Error ? error.message : String(error),
8763
8763
  });
8764
8764
  }
@@ -8789,14 +8789,14 @@ class DefaultDeliveryTracker extends TaskSpawner {
8789
8789
  }
8790
8790
  const node = this.node;
8791
8791
  if (!envelope.replyTo) {
8792
- logger$17.error('cannot_send_ack_no_reply_to', { envp_id: envelope.id });
8792
+ logger$16.error('cannot_send_ack_no_reply_to', { envp_id: envelope.id });
8793
8793
  return;
8794
8794
  }
8795
8795
  if (!envelope.corrId) {
8796
- logger$17.error('cannot_send_ack_no_corr_id', { envp_id: envelope.id });
8796
+ logger$16.error('cannot_send_ack_no_corr_id', { envp_id: envelope.id });
8797
8797
  return;
8798
8798
  }
8799
- logger$17.debug('tracker_sending_ack', {
8799
+ logger$16.debug('tracker_sending_ack', {
8800
8800
  envp_id: envelope.id,
8801
8801
  ref_id: envelope.id,
8802
8802
  to: envelope.replyTo,
@@ -8816,7 +8816,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8816
8816
  .send(ackEnvelope)
8817
8817
  .then(() => undefined)
8818
8818
  .catch((error) => {
8819
- logger$17.error('tracker_ack_dispatch_failed', {
8819
+ logger$16.error('tracker_ack_dispatch_failed', {
8820
8820
  envp_id: envelope.id,
8821
8821
  error: error instanceof Error ? error.message : String(error),
8822
8822
  });
@@ -8902,7 +8902,7 @@ class AsyncEvent {
8902
8902
  }
8903
8903
  }
8904
8904
 
8905
- const logger$16 = getLogger('naylence.fame.node.root_session_manager');
8905
+ const logger$15 = getLogger('naylence.fame.node.root_session_manager');
8906
8906
  function resolveOption$1(options, primary, ...aliases) {
8907
8907
  const record = options;
8908
8908
  const primaryKey = primary;
@@ -8983,7 +8983,7 @@ class RootSessionManager extends TaskSpawner {
8983
8983
  this.onAdmissionFailed =
8984
8984
  typeof onAdmissionFailed === 'function' ? onAdmissionFailed : undefined;
8985
8985
  this.enableContinuousRefresh = enableContinuousRefresh ?? true;
8986
- logger$16.debug('created_root_session_manager');
8986
+ logger$15.debug('created_root_session_manager');
8987
8987
  }
8988
8988
  get isReady() {
8989
8989
  return this.readyEvent.isSet();
@@ -9008,7 +9008,7 @@ class RootSessionManager extends TaskSpawner {
9008
9008
  if (this.admissionTask) {
9009
9009
  return;
9010
9010
  }
9011
- logger$16.debug('root_session_manager_starting');
9011
+ logger$15.debug('root_session_manager_starting');
9012
9012
  this.stopEvent.clear();
9013
9013
  this.readyEvent.clear();
9014
9014
  const taskName = `root-admission-${this.admissionEpoch}`;
@@ -9028,10 +9028,10 @@ class RootSessionManager extends TaskSpawner {
9028
9028
  await this.admissionTask.promise;
9029
9029
  throw new FameConnectError('Root session manager failed to become ready');
9030
9030
  }
9031
- logger$16.debug('root_session_manager_started');
9031
+ logger$15.debug('root_session_manager_started');
9032
9032
  }
9033
9033
  async stop() {
9034
- logger$16.debug('root_session_manager_stopping');
9034
+ logger$15.debug('root_session_manager_stopping');
9035
9035
  this.stopEvent.set();
9036
9036
  if (this.admissionTask) {
9037
9037
  this.admissionTask.cancel();
@@ -9043,7 +9043,7 @@ class RootSessionManager extends TaskSpawner {
9043
9043
  await this.consumeTask(this.expiryGuardTask);
9044
9044
  this.expiryGuardTask = null;
9045
9045
  }
9046
- logger$16.debug('root_session_manager_stopped');
9046
+ logger$15.debug('root_session_manager_stopped');
9047
9047
  }
9048
9048
  async awaitReady(timeoutMs) {
9049
9049
  if (this.isReady) {
@@ -9084,12 +9084,12 @@ class RootSessionManager extends TaskSpawner {
9084
9084
  await this.onEpochChange(epoch);
9085
9085
  }
9086
9086
  else {
9087
- logger$16.debug('epoch_change_ignored_no_handler', { epoch });
9087
+ logger$15.debug('epoch_change_ignored_no_handler', { epoch });
9088
9088
  }
9089
9089
  }
9090
9090
  static createForRootSentinel(node, admissionClient, requestedLogicals = [], enableContinuousRefresh = true, onEpochChange) {
9091
9091
  const handleWelcome = async (frame) => {
9092
- logger$16.info('root_admission_successful', {
9092
+ logger$15.info('root_admission_successful', {
9093
9093
  system_id: frame.systemId,
9094
9094
  assigned_path: frame.assignedPath ?? null,
9095
9095
  accepted_logicals: frame.acceptedLogicals ?? [],
@@ -9100,12 +9100,12 @@ class RootSessionManager extends TaskSpawner {
9100
9100
  ? grant.purpose
9101
9101
  : undefined;
9102
9102
  if (purpose) {
9103
- logger$16.debug('received_admission_grant', { purpose });
9103
+ logger$15.debug('received_admission_grant', { purpose });
9104
9104
  }
9105
9105
  }
9106
9106
  };
9107
9107
  const handleFailure = async (error) => {
9108
- logger$16.error('root_admission_failed_permanently', {
9108
+ logger$15.error('root_admission_failed_permanently', {
9109
9109
  error: error.message,
9110
9110
  });
9111
9111
  };
@@ -9134,10 +9134,10 @@ class RootSessionManager extends TaskSpawner {
9134
9134
  this.readyEvent.set();
9135
9135
  }
9136
9136
  if (this.hadSuccessfulAdmission) {
9137
- logger$16.debug('root_admission_refreshed');
9137
+ logger$15.debug('root_admission_refreshed');
9138
9138
  }
9139
9139
  else {
9140
- logger$16.debug('root_admission_completed');
9140
+ logger$15.debug('root_admission_completed');
9141
9141
  }
9142
9142
  this.hadSuccessfulAdmission = true;
9143
9143
  delay = RootSessionManager.BACKOFF_INITIAL;
@@ -9146,7 +9146,7 @@ class RootSessionManager extends TaskSpawner {
9146
9146
  await this.startExpiryGuard(welcomeFrame);
9147
9147
  const expiryTriggered = await this.waitForExpiryOrStop();
9148
9148
  if (expiryTriggered && !this.stopEvent.isSet()) {
9149
- logger$16.debug('performing_scheduled_re_admission');
9149
+ logger$15.debug('performing_scheduled_re_admission');
9150
9150
  continue;
9151
9151
  }
9152
9152
  }
@@ -9158,7 +9158,7 @@ class RootSessionManager extends TaskSpawner {
9158
9158
  }
9159
9159
  const errorObject = error instanceof Error ? error : new Error(String(error));
9160
9160
  const willRetry = attempts < RootSessionManager.RETRY_MAX_ATTEMPTS;
9161
- logger$16.warning('root_admission_failed', {
9161
+ logger$15.warning('root_admission_failed', {
9162
9162
  error: errorObject.message,
9163
9163
  attempt: attempts,
9164
9164
  will_retry: willRetry,
@@ -9176,7 +9176,7 @@ class RootSessionManager extends TaskSpawner {
9176
9176
  }
9177
9177
  }
9178
9178
  if (attempts >= RootSessionManager.RETRY_MAX_ATTEMPTS) {
9179
- logger$16.error('root_admission_max_attempts_exceeded', {
9179
+ logger$15.error('root_admission_max_attempts_exceeded', {
9180
9180
  max_attempts: RootSessionManager.RETRY_MAX_ATTEMPTS,
9181
9181
  });
9182
9182
  }
@@ -9253,7 +9253,7 @@ class RootSessionManager extends TaskSpawner {
9253
9253
  }
9254
9254
  async expiryGuard(welcomeFrame, signal) {
9255
9255
  if (!welcomeFrame.expiresAt) {
9256
- logger$16.debug('no_admission_expiry_configured');
9256
+ logger$15.debug('no_admission_expiry_configured');
9257
9257
  await Promise.race([this.stopEvent.wait(), this.waitForAbort(signal)]);
9258
9258
  return;
9259
9259
  }
@@ -9262,7 +9262,7 @@ class RootSessionManager extends TaskSpawner {
9262
9262
  let delaySeconds = (expiresAt.getTime() - now.getTime()) / 1000 -
9263
9263
  RootSessionManager.JWT_REFRESH_SAFETY;
9264
9264
  delaySeconds = Math.max(delaySeconds, 0);
9265
- logger$16.debug('admission_expiry_guard_started', {
9265
+ logger$15.debug('admission_expiry_guard_started', {
9266
9266
  welcome_expires_at: expiresAt.toISOString(),
9267
9267
  delay_seconds: delaySeconds,
9268
9268
  refresh_safety_seconds: RootSessionManager.JWT_REFRESH_SAFETY,
@@ -9271,7 +9271,7 @@ class RootSessionManager extends TaskSpawner {
9271
9271
  if (this.stopEvent.isSet() || signal?.aborted) {
9272
9272
  return;
9273
9273
  }
9274
- logger$16.debug('admission_expiry_triggered_refresh', {
9274
+ logger$15.debug('admission_expiry_triggered_refresh', {
9275
9275
  expires_at: expiresAt.toISOString(),
9276
9276
  current_time: new Date().toISOString(),
9277
9277
  seconds_before_expiry: RootSessionManager.JWT_REFRESH_SAFETY,
@@ -9286,7 +9286,7 @@ class RootSessionManager extends TaskSpawner {
9286
9286
  return;
9287
9287
  }
9288
9288
  const errorObject = error instanceof Error ? error : new Error(String(error));
9289
- logger$16.debug('background_task_error', {
9289
+ logger$15.debug('background_task_error', {
9290
9290
  task_name: task.name,
9291
9291
  error: errorObject.message,
9292
9292
  });
@@ -9327,7 +9327,7 @@ RootSessionManager.JWT_REFRESH_SAFETY = 60.0;
9327
9327
  * Concrete implementations must define supported grant types and provide grant-to-connector
9328
9328
  * conversion logic.
9329
9329
  */
9330
- const logger$15 = getLogger('naylence.fame.connector.connector_factory');
9330
+ const logger$14 = getLogger('naylence.fame.connector.connector_factory');
9331
9331
  const CONNECTOR_FACTORY_BASE_TYPE = 'ConnectorFactory';
9332
9332
  /**
9333
9333
  * Abstract base class for connector factories
@@ -9363,7 +9363,7 @@ class ConnectorFactory {
9363
9363
  }
9364
9364
  }
9365
9365
  catch (error) {
9366
- logger$15.warning(`Failed to evaluate grant with factory ${factoryInfo.constructor.name}: ${error}`);
9366
+ logger$14.warning(`Failed to evaluate grant with factory ${factoryInfo.constructor.name}: ${error}`);
9367
9367
  continue;
9368
9368
  }
9369
9369
  }
@@ -9406,7 +9406,7 @@ class ConnectorFactory {
9406
9406
  }
9407
9407
  }
9408
9408
  catch (error) {
9409
- logger$15.warning(`Failed to create connector config from grant: ${error}`);
9409
+ logger$14.warning(`Failed to create connector config from grant: ${error}`);
9410
9410
  continue;
9411
9411
  }
9412
9412
  }
@@ -9473,20 +9473,20 @@ class ConnectorFactory {
9473
9473
  return existing;
9474
9474
  }
9475
9475
  if (existing && !this.isGrantAware(existing)) {
9476
- logger$15.warning(`Factory ${factoryInfo.constructor.name} is registered under ${CONNECTOR_FACTORY_BASE_TYPE} but is missing grant conversion APIs; skipping.`);
9476
+ logger$14.warning(`Factory ${factoryInfo.constructor.name} is registered under ${CONNECTOR_FACTORY_BASE_TYPE} but is missing grant conversion APIs; skipping.`);
9477
9477
  return null;
9478
9478
  }
9479
9479
  try {
9480
9480
  const instance = new factoryInfo.constructor();
9481
9481
  if (!this.isGrantAware(instance)) {
9482
- logger$15.warning(`Factory ${factoryInfo.constructor.name} does not implement grant conversion APIs required by ${CONNECTOR_FACTORY_BASE_TYPE}; skipping.`);
9482
+ logger$14.warning(`Factory ${factoryInfo.constructor.name} does not implement grant conversion APIs required by ${CONNECTOR_FACTORY_BASE_TYPE}; skipping.`);
9483
9483
  return null;
9484
9484
  }
9485
9485
  factoryInfo.instance = instance;
9486
9486
  return instance;
9487
9487
  }
9488
9488
  catch (error) {
9489
- logger$15.warning(`Failed to instantiate factory ${factoryInfo.constructor.name} while resolving grant conversion APIs: ${error}`);
9489
+ logger$14.warning(`Failed to instantiate factory ${factoryInfo.constructor.name} while resolving grant conversion APIs: ${error}`);
9490
9490
  return null;
9491
9491
  }
9492
9492
  }
@@ -9589,7 +9589,7 @@ class TaskCancellationError extends Error {
9589
9589
  this.name = 'TaskCancellationError';
9590
9590
  }
9591
9591
  }
9592
- const logger$14 = getLogger('naylence.fame.connector.base_async_connector');
9592
+ const logger$13 = getLogger('naylence.fame.connector.base_async_connector');
9593
9593
  // Environment variables
9594
9594
  const ENV_VAR_FAME_FLOW_CONTROL = 'FAME_FLOW_CONTROL';
9595
9595
  const FLOW_CONTROL_ENABLED = typeof process !== 'undefined' && process?.env
@@ -9672,7 +9672,7 @@ class BaseAsyncConnector extends TaskSpawner {
9672
9672
  if (this._state !== newState) {
9673
9673
  const oldState = this._state;
9674
9674
  this._state = newState;
9675
- logger$14.debug('connector_state_transition', {
9675
+ logger$13.debug('connector_state_transition', {
9676
9676
  connector_id: this._connectorFlowId,
9677
9677
  old_state: oldState,
9678
9678
  new_state: newState,
@@ -9711,12 +9711,12 @@ class BaseAsyncConnector extends TaskSpawner {
9711
9711
  * Stop the connector gracefully
9712
9712
  */
9713
9713
  async stop() {
9714
- logger$14.debug('stopping_connector', {
9714
+ logger$13.debug('stopping_connector', {
9715
9715
  current_state: this._state,
9716
9716
  connector_id: this._connectorFlowId,
9717
9717
  });
9718
9718
  if (!core.ConnectorStateUtils.canStop(this._state)) {
9719
- logger$14.debug('connector_stop_already_stopped', {
9719
+ logger$13.debug('connector_stop_already_stopped', {
9720
9720
  current_state: this._state,
9721
9721
  connector_id: this._connectorFlowId,
9722
9722
  });
@@ -9727,7 +9727,7 @@ class BaseAsyncConnector extends TaskSpawner {
9727
9727
  if (this._lastError) {
9728
9728
  throw this._lastError;
9729
9729
  }
9730
- logger$14.debug('connector_stopped', {
9730
+ logger$13.debug('connector_stopped', {
9731
9731
  current_state: this._state,
9732
9732
  connector_id: this._connectorFlowId,
9733
9733
  });
@@ -9736,19 +9736,19 @@ class BaseAsyncConnector extends TaskSpawner {
9736
9736
  * Pause the connector (suspends heartbeat and housekeeping, but keeps connection alive)
9737
9737
  */
9738
9738
  async pause() {
9739
- logger$14.debug('pausing_connector', {
9739
+ logger$13.debug('pausing_connector', {
9740
9740
  current_state: this._state,
9741
9741
  connector_id: this._connectorFlowId,
9742
9742
  });
9743
9743
  if (this._state !== core.ConnectorState.STARTED) {
9744
- logger$14.debug('connector_pause_invalid_state', {
9744
+ logger$13.debug('connector_pause_invalid_state', {
9745
9745
  current_state: this._state,
9746
9746
  connector_id: this._connectorFlowId,
9747
9747
  });
9748
9748
  return;
9749
9749
  }
9750
9750
  this._setState(core.ConnectorState.PAUSED);
9751
- logger$14.debug('connector_paused', {
9751
+ logger$13.debug('connector_paused', {
9752
9752
  current_state: this._state,
9753
9753
  connector_id: this._connectorFlowId,
9754
9754
  });
@@ -9757,19 +9757,19 @@ class BaseAsyncConnector extends TaskSpawner {
9757
9757
  * Resume the connector from paused state
9758
9758
  */
9759
9759
  async resume() {
9760
- logger$14.debug('resuming_connector', {
9760
+ logger$13.debug('resuming_connector', {
9761
9761
  current_state: this._state,
9762
9762
  connector_id: this._connectorFlowId,
9763
9763
  });
9764
9764
  if (this._state !== core.ConnectorState.PAUSED) {
9765
- logger$14.debug('connector_resume_invalid_state', {
9765
+ logger$13.debug('connector_resume_invalid_state', {
9766
9766
  current_state: this._state,
9767
9767
  connector_id: this._connectorFlowId,
9768
9768
  });
9769
9769
  return;
9770
9770
  }
9771
9771
  this._setState(core.ConnectorState.STARTED);
9772
- logger$14.debug('connector_resumed', {
9772
+ logger$13.debug('connector_resumed', {
9773
9773
  current_state: this._state,
9774
9774
  connector_id: this._connectorFlowId,
9775
9775
  });
@@ -9779,7 +9779,7 @@ class BaseAsyncConnector extends TaskSpawner {
9779
9779
  */
9780
9780
  async close(code = 1000, reason = 'normal closure') {
9781
9781
  if (!core.ConnectorStateUtils.canClose(this._state)) {
9782
- logger$14.warning('connector_close_invalid_state', {
9782
+ logger$13.warning('connector_close_invalid_state', {
9783
9783
  current_state: this._state,
9784
9784
  connector_id: this._connectorFlowId,
9785
9785
  });
@@ -9860,7 +9860,7 @@ class BaseAsyncConnector extends TaskSpawner {
9860
9860
  // Add to queue and notify send loop
9861
9861
  this._sendQueue.push(raw);
9862
9862
  // Log for debugging
9863
- logger$14.debug('send_envelope_queued', {
9863
+ logger$13.debug('send_envelope_queued', {
9864
9864
  queue_length: this._sendQueue.length,
9865
9865
  max_queue_size: this._maxQueueSize,
9866
9866
  });
@@ -9909,14 +9909,14 @@ class BaseAsyncConnector extends TaskSpawner {
9909
9909
  const item = this._sendQueue[0];
9910
9910
  if (!item)
9911
9911
  continue;
9912
- logger$14.debug('send_loop_processing_item', {
9912
+ logger$13.debug('send_loop_processing_item', {
9913
9913
  queue_length_before_send: this._sendQueue.length,
9914
9914
  });
9915
9915
  // Send through transport (this may block)
9916
9916
  await this._transportSendBytes(item);
9917
9917
  // Only remove from queue after successful send
9918
9918
  this._sendQueue.shift();
9919
- logger$14.debug('send_loop_item_sent', {
9919
+ logger$13.debug('send_loop_item_sent', {
9920
9920
  queue_length_after_send: this._sendQueue.length,
9921
9921
  });
9922
9922
  }
@@ -9929,14 +9929,14 @@ class BaseAsyncConnector extends TaskSpawner {
9929
9929
  }
9930
9930
  else if (error instanceof TaskCancellationError) {
9931
9931
  // Task cancellation is expected during shutdown - log as debug, not critical
9932
- logger$14.debug('send loop cancelled', {
9932
+ logger$13.debug('send loop cancelled', {
9933
9933
  connector: this.constructor.name,
9934
9934
  reason: error.message,
9935
9935
  });
9936
9936
  // Don't re-throw - this is normal during shutdown
9937
9937
  }
9938
9938
  else {
9939
- logger$14.critical('unexpected exception in send loop', {
9939
+ logger$13.critical('unexpected exception in send loop', {
9940
9940
  connector: this.constructor.name,
9941
9941
  error: error instanceof Error ? error.message : String(error),
9942
9942
  });
@@ -9977,7 +9977,7 @@ class BaseAsyncConnector extends TaskSpawner {
9977
9977
  env = JSON.parse(jsonStr);
9978
9978
  }
9979
9979
  catch (error) {
9980
- logger$14.error('Invalid envelope', {
9980
+ logger$13.error('Invalid envelope', {
9981
9981
  message: message.toString(),
9982
9982
  error: error instanceof Error ? error.message : String(error),
9983
9983
  });
@@ -10001,7 +10001,7 @@ class BaseAsyncConnector extends TaskSpawner {
10001
10001
  };
10002
10002
  await withEnvelopeContextAsync(envelopeContext, async () => {
10003
10003
  const prettyEnvelope = prettyModel$1(env);
10004
- logger$14.trace('connector_received_envelope', {
10004
+ logger$13.trace('connector_received_envelope', {
10005
10005
  envelope: env,
10006
10006
  pretty: prettyEnvelope,
10007
10007
  });
@@ -10030,7 +10030,7 @@ class BaseAsyncConnector extends TaskSpawner {
10030
10030
  if (error instanceof TaskCancellationError) {
10031
10031
  throw error;
10032
10032
  }
10033
- logger$14.error('handler_failed', {
10033
+ logger$13.error('handler_failed', {
10034
10034
  error: error instanceof Error ? error.message : String(error),
10035
10035
  envelope_id: env.id ?? null,
10036
10036
  trace_id: env.traceId ?? null,
@@ -10051,14 +10051,14 @@ class BaseAsyncConnector extends TaskSpawner {
10051
10051
  }
10052
10052
  else if (error instanceof TaskCancellationError) {
10053
10053
  // Task cancellation is expected during shutdown - log as debug, not critical
10054
- logger$14.debug('receive loop cancelled', {
10054
+ logger$13.debug('receive loop cancelled', {
10055
10055
  connector: this.constructor.name,
10056
10056
  reason: error.message,
10057
10057
  });
10058
10058
  // Don't re-throw - this is normal during shutdown
10059
10059
  }
10060
10060
  else {
10061
- logger$14.critical('unexpected_error_in recv_loop', {
10061
+ logger$13.critical('unexpected_error_in recv_loop', {
10062
10062
  error: error instanceof Error ? error.message : String(error),
10063
10063
  });
10064
10064
  throw error;
@@ -10074,7 +10074,7 @@ class BaseAsyncConnector extends TaskSpawner {
10074
10074
  async _maybeEmitCredit(flowId, traceId) {
10075
10075
  const remainingCredits = this._flowCtrl.getCredits(flowId);
10076
10076
  const needsRefill = this._flowCtrl.needsRefill(flowId);
10077
- logger$14.debug('maybe_emit_credit_check', {
10077
+ logger$13.debug('maybe_emit_credit_check', {
10078
10078
  connector_id: this._connectorFlowId,
10079
10079
  flow_id: flowId,
10080
10080
  trace_id: traceId ?? null,
@@ -10090,7 +10090,7 @@ class BaseAsyncConnector extends TaskSpawner {
10090
10090
  }
10091
10091
  const delta = this._initialWindow;
10092
10092
  this._flowCtrl.addCredits(flowId, delta);
10093
- logger$14.debug('maybe_emit_credit_emit', {
10093
+ logger$13.debug('maybe_emit_credit_emit', {
10094
10094
  connector_id: this._connectorFlowId,
10095
10095
  flow_id: flowId,
10096
10096
  trace_id: traceId ?? null,
@@ -10110,7 +10110,7 @@ class BaseAsyncConnector extends TaskSpawner {
10110
10110
  });
10111
10111
  try {
10112
10112
  await this.send(ackEnv);
10113
- logger$14.debug('maybe_emit_credit_sent', {
10113
+ logger$13.debug('maybe_emit_credit_sent', {
10114
10114
  connector_id: this._connectorFlowId,
10115
10115
  flow_id: flowId,
10116
10116
  trace_id: traceId ?? null,
@@ -10118,7 +10118,7 @@ class BaseAsyncConnector extends TaskSpawner {
10118
10118
  });
10119
10119
  }
10120
10120
  catch (error) {
10121
- logger$14.error('maybe_emit_credit_send_failed', {
10121
+ logger$13.error('maybe_emit_credit_send_failed', {
10122
10122
  connector_id: this._connectorFlowId,
10123
10123
  flow_id: flowId,
10124
10124
  trace_id: traceId ?? null,
@@ -10143,13 +10143,13 @@ class BaseAsyncConnector extends TaskSpawner {
10143
10143
  */
10144
10144
  async _shutdown(code, reason, gracePeriod, exc) {
10145
10145
  if (this._closed) {
10146
- logger$14.debug('shutdown_already_closed', {
10146
+ logger$13.debug('shutdown_already_closed', {
10147
10147
  connector_id: this._connectorFlowId,
10148
10148
  current_state: this._state,
10149
10149
  });
10150
10150
  return;
10151
10151
  }
10152
- logger$14.debug('connector_shutdown_starting', {
10152
+ logger$13.debug('connector_shutdown_starting', {
10153
10153
  connector_id: this._connectorFlowId,
10154
10154
  connector_type: this.constructor.name,
10155
10155
  code,
@@ -10179,19 +10179,19 @@ class BaseAsyncConnector extends TaskSpawner {
10179
10179
  this._sendPromiseResolve = undefined;
10180
10180
  }
10181
10181
  // Close transport
10182
- logger$14.debug('connector_closing_transport', {
10182
+ logger$13.debug('connector_closing_transport', {
10183
10183
  connector_id: this._connectorFlowId,
10184
10184
  connector_type: this.constructor.name,
10185
10185
  timestamp: new Date().toISOString(),
10186
10186
  });
10187
10187
  await this._transportClose(code, reason);
10188
- logger$14.debug('connector_transport_closed', {
10188
+ logger$13.debug('connector_transport_closed', {
10189
10189
  connector_id: this._connectorFlowId,
10190
10190
  connector_type: this.constructor.name,
10191
10191
  timestamp: new Date().toISOString(),
10192
10192
  });
10193
10193
  // Shutdown spawned tasks
10194
- logger$14.debug('connector_shutting_down_tasks', {
10194
+ logger$13.debug('connector_shutting_down_tasks', {
10195
10195
  connector_id: this._connectorFlowId,
10196
10196
  connector_type: this.constructor.name,
10197
10197
  grace_period_ms: effectiveGracePeriod * 1000,
@@ -10203,14 +10203,14 @@ class BaseAsyncConnector extends TaskSpawner {
10203
10203
  gracePeriod: effectiveGracePeriod * 1000, // Convert to milliseconds
10204
10204
  joinTimeout: this._shutdownJoinTimeout,
10205
10205
  });
10206
- logger$14.debug('connector_tasks_shutdown_complete', {
10206
+ logger$13.debug('connector_tasks_shutdown_complete', {
10207
10207
  connector_id: this._connectorFlowId,
10208
10208
  connector_type: this.constructor.name,
10209
10209
  timestamp: new Date().toISOString(),
10210
10210
  });
10211
10211
  }
10212
10212
  catch (error) {
10213
- logger$14.warning('task_shutdown_error', {
10213
+ logger$13.warning('task_shutdown_error', {
10214
10214
  connector_id: this._connectorFlowId,
10215
10215
  error: error instanceof Error ? error.message : String(error),
10216
10216
  });
@@ -10223,7 +10223,7 @@ class BaseAsyncConnector extends TaskSpawner {
10223
10223
  if (this._closeResolver) {
10224
10224
  this._closeResolver();
10225
10225
  }
10226
- logger$14.debug('connector_shutdown_complete', {
10226
+ logger$13.debug('connector_shutdown_complete', {
10227
10227
  connector_id: this._connectorFlowId,
10228
10228
  connector_type: this.constructor.name,
10229
10229
  final_state: this._state,
@@ -10299,7 +10299,7 @@ class BoundedAsyncQueue {
10299
10299
  }
10300
10300
  }
10301
10301
 
10302
- const logger$13 = getLogger('naylence.fame.connector.broadcast_channel_connector');
10302
+ const logger$12 = getLogger('naylence.fame.connector.broadcast_channel_connector');
10303
10303
  const BROADCAST_CHANNEL_CONNECTOR_TYPE = 'broadcast-channel-connector';
10304
10304
  const DEFAULT_CHANNEL$7 = 'naylence-fabric';
10305
10305
  const DEFAULT_INBOX_CAPACITY$7 = 2048;
@@ -10388,7 +10388,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10388
10388
  this.localNodeId = normalizedLocalNodeId;
10389
10389
  this.targetNodeId = BroadcastChannelConnector.normalizeTargetNodeId(config.initialTargetNodeId);
10390
10390
  this.channel = new BroadcastChannel(this.channelName);
10391
- logger$13.debug('broadcast_channel_connector_created', {
10391
+ logger$12.debug('broadcast_channel_connector_created', {
10392
10392
  channel: this.channelName,
10393
10393
  connector_id: this.connectorId,
10394
10394
  local_node_id: this.localNodeId,
@@ -10400,7 +10400,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10400
10400
  this.onMsg = (event) => {
10401
10401
  // Guard: Don't process if listener was unregistered
10402
10402
  if (!this.listenerRegistered) {
10403
- logger$13.warning('broadcast_channel_message_after_unregister', {
10403
+ logger$12.warning('broadcast_channel_message_after_unregister', {
10404
10404
  channel: this.channelName,
10405
10405
  connector_id: this.connectorId,
10406
10406
  timestamp: new Date().toISOString(),
@@ -10408,7 +10408,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10408
10408
  return;
10409
10409
  }
10410
10410
  const message = event.data;
10411
- logger$13.debug('broadcast_channel_raw_event', {
10411
+ logger$12.debug('broadcast_channel_raw_event', {
10412
10412
  channel: this.channelName,
10413
10413
  connector_id: this.connectorId,
10414
10414
  message_type: message && typeof message === 'object'
@@ -10424,7 +10424,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10424
10424
  const busMessage = message;
10425
10425
  const senderNodeId = BroadcastChannelConnector.normalizeNodeId(busMessage.senderNodeId);
10426
10426
  if (!senderNodeId) {
10427
- logger$13.debug('broadcast_channel_message_rejected', {
10427
+ logger$12.debug('broadcast_channel_message_rejected', {
10428
10428
  channel: this.channelName,
10429
10429
  connector_id: this.connectorId,
10430
10430
  reason: 'missing_sender_node_id',
@@ -10432,7 +10432,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10432
10432
  return;
10433
10433
  }
10434
10434
  if (senderNodeId === this.localNodeId) {
10435
- logger$13.debug('broadcast_channel_message_rejected', {
10435
+ logger$12.debug('broadcast_channel_message_rejected', {
10436
10436
  channel: this.channelName,
10437
10437
  connector_id: this.connectorId,
10438
10438
  reason: 'self_echo',
@@ -10446,14 +10446,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10446
10446
  }
10447
10447
  const payload = BroadcastChannelConnector.coercePayload(busMessage.payload);
10448
10448
  if (!payload) {
10449
- logger$13.debug('broadcast_channel_payload_rejected', {
10449
+ logger$12.debug('broadcast_channel_payload_rejected', {
10450
10450
  channel: this.channelName,
10451
10451
  connector_id: this.connectorId,
10452
10452
  reason: 'unrecognized_payload_type',
10453
10453
  });
10454
10454
  return;
10455
10455
  }
10456
- logger$13.debug('broadcast_channel_message_received', {
10456
+ logger$12.debug('broadcast_channel_message_received', {
10457
10457
  channel: this.channelName,
10458
10458
  sender_id: message?.senderId,
10459
10459
  sender_node_id: senderNodeId,
@@ -10482,14 +10482,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10482
10482
  }
10483
10483
  catch (error) {
10484
10484
  if (error instanceof QueueFullError) {
10485
- logger$13.warning('broadcast_channel_receive_queue_full', {
10485
+ logger$12.warning('broadcast_channel_receive_queue_full', {
10486
10486
  channel: this.channelName,
10487
10487
  inbox_capacity: this.inboxCapacity,
10488
10488
  inbox_remaining_capacity: this.inbox.remainingCapacity,
10489
10489
  });
10490
10490
  }
10491
10491
  else {
10492
- logger$13.error('broadcast_channel_receive_error', {
10492
+ logger$12.error('broadcast_channel_receive_error', {
10493
10493
  channel: this.channelName,
10494
10494
  error: error instanceof Error ? error.message : String(error),
10495
10495
  });
@@ -10503,7 +10503,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10503
10503
  // Setup visibility change monitoring
10504
10504
  this.visibilityChangeHandler = () => {
10505
10505
  const isHidden = document.hidden;
10506
- logger$13.debug('broadcast_channel_visibility_changed', {
10506
+ logger$12.debug('broadcast_channel_visibility_changed', {
10507
10507
  channel: this.channelName,
10508
10508
  connector_id: this.connectorId,
10509
10509
  visibility: isHidden ? 'hidden' : 'visible',
@@ -10512,7 +10512,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10512
10512
  // Pause/resume connector based on visibility
10513
10513
  if (isHidden && this.state === core.ConnectorState.STARTED) {
10514
10514
  this.pause().catch((err) => {
10515
- logger$13.warning('broadcast_channel_pause_failed', {
10515
+ logger$12.warning('broadcast_channel_pause_failed', {
10516
10516
  channel: this.channelName,
10517
10517
  connector_id: this.connectorId,
10518
10518
  error: err instanceof Error ? err.message : String(err),
@@ -10521,7 +10521,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10521
10521
  }
10522
10522
  else if (!isHidden && this.state === core.ConnectorState.PAUSED) {
10523
10523
  this.resume().catch((err) => {
10524
- logger$13.warning('broadcast_channel_resume_failed', {
10524
+ logger$12.warning('broadcast_channel_resume_failed', {
10525
10525
  channel: this.channelName,
10526
10526
  connector_id: this.connectorId,
10527
10527
  error: err instanceof Error ? err.message : String(err),
@@ -10535,7 +10535,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10535
10535
  // Track page lifecycle events to detect browser unload/discard
10536
10536
  if (typeof window !== 'undefined') {
10537
10537
  const lifecycleLogger = (event) => {
10538
- logger$13.debug('broadcast_channel_page_lifecycle', {
10538
+ logger$12.debug('broadcast_channel_page_lifecycle', {
10539
10539
  channel: this.channelName,
10540
10540
  connector_id: this.connectorId,
10541
10541
  event_type: event.type,
@@ -10551,7 +10551,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10551
10551
  document.addEventListener('resume', lifecycleLogger);
10552
10552
  }
10553
10553
  // Log initial state with detailed visibility info
10554
- logger$13.debug('broadcast_channel_initial_visibility', {
10554
+ logger$12.debug('broadcast_channel_initial_visibility', {
10555
10555
  channel: this.channelName,
10556
10556
  connector_id: this.connectorId,
10557
10557
  visibility: document.hidden ? 'hidden' : 'visible',
@@ -10583,14 +10583,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10583
10583
  }
10584
10584
  catch (error) {
10585
10585
  if (error instanceof QueueFullError) {
10586
- logger$13.warning('broadcast_channel_push_queue_full', {
10586
+ logger$12.warning('broadcast_channel_push_queue_full', {
10587
10587
  channel: this.channelName,
10588
10588
  inbox_capacity: this.inboxCapacity,
10589
10589
  inbox_remaining_capacity: this.inbox.remainingCapacity,
10590
10590
  });
10591
10591
  throw error;
10592
10592
  }
10593
- logger$13.error('broadcast_channel_push_failed', {
10593
+ logger$12.error('broadcast_channel_push_failed', {
10594
10594
  channel: this.channelName,
10595
10595
  error: error instanceof Error ? error.message : String(error),
10596
10596
  });
@@ -10600,7 +10600,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10600
10600
  async _transportSendBytes(data) {
10601
10601
  ensureBroadcastEnvironment();
10602
10602
  const targetNodeId = this.targetNodeId ?? '*';
10603
- logger$13.debug('broadcast_channel_message_sending', {
10603
+ logger$12.debug('broadcast_channel_message_sending', {
10604
10604
  channel: this.channelName,
10605
10605
  sender_id: this.connectorId,
10606
10606
  sender_node_id: this.localNodeId,
@@ -10621,7 +10621,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10621
10621
  return item;
10622
10622
  }
10623
10623
  async _transportClose(code, reason) {
10624
- logger$13.debug('broadcast_channel_transport_closing', {
10624
+ logger$12.debug('broadcast_channel_transport_closing', {
10625
10625
  channel: this.channelName,
10626
10626
  connector_id: this.connectorId,
10627
10627
  code,
@@ -10630,14 +10630,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10630
10630
  timestamp: new Date().toISOString(),
10631
10631
  });
10632
10632
  if (this.listenerRegistered) {
10633
- logger$13.debug('broadcast_channel_removing_listener', {
10633
+ logger$12.debug('broadcast_channel_removing_listener', {
10634
10634
  channel: this.channelName,
10635
10635
  connector_id: this.connectorId,
10636
10636
  timestamp: new Date().toISOString(),
10637
10637
  });
10638
10638
  this.channel.removeEventListener('message', this.onMsg);
10639
10639
  this.listenerRegistered = false;
10640
- logger$13.debug('broadcast_channel_listener_removed', {
10640
+ logger$12.debug('broadcast_channel_listener_removed', {
10641
10641
  channel: this.channelName,
10642
10642
  connector_id: this.connectorId,
10643
10643
  timestamp: new Date().toISOString(),
@@ -10650,13 +10650,13 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10650
10650
  this.visibilityChangeListenerRegistered = false;
10651
10651
  this.visibilityChangeHandler = undefined;
10652
10652
  }
10653
- logger$13.debug('broadcast_channel_closing', {
10653
+ logger$12.debug('broadcast_channel_closing', {
10654
10654
  channel: this.channelName,
10655
10655
  connector_id: this.connectorId,
10656
10656
  timestamp: new Date().toISOString(),
10657
10657
  });
10658
10658
  this.channel.close();
10659
- logger$13.debug('broadcast_channel_closed', {
10659
+ logger$12.debug('broadcast_channel_closed', {
10660
10660
  channel: this.channelName,
10661
10661
  connector_id: this.connectorId,
10662
10662
  timestamp: new Date().toISOString(),
@@ -10680,7 +10680,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10680
10680
  if (targetNodeId &&
10681
10681
  targetNodeId !== '*' &&
10682
10682
  targetNodeId !== this.localNodeId) {
10683
- logger$13.debug('broadcast_channel_message_rejected', {
10683
+ logger$12.debug('broadcast_channel_message_rejected', {
10684
10684
  channel: this.channelName,
10685
10685
  connector_id: this.connectorId,
10686
10686
  reason: 'wildcard_target_mismatch',
@@ -10696,7 +10696,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10696
10696
  if (expectedSender &&
10697
10697
  expectedSender !== '*' &&
10698
10698
  senderNodeId !== expectedSender) {
10699
- logger$13.debug('broadcast_channel_message_rejected', {
10699
+ logger$12.debug('broadcast_channel_message_rejected', {
10700
10700
  channel: this.channelName,
10701
10701
  connector_id: this.connectorId,
10702
10702
  reason: 'unexpected_sender',
@@ -10709,7 +10709,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10709
10709
  if (targetNodeId &&
10710
10710
  targetNodeId !== '*' &&
10711
10711
  targetNodeId !== this.localNodeId) {
10712
- logger$13.debug('broadcast_channel_message_rejected', {
10712
+ logger$12.debug('broadcast_channel_message_rejected', {
10713
10713
  channel: this.channelName,
10714
10714
  connector_id: this.connectorId,
10715
10715
  reason: 'unexpected_target',
@@ -10734,7 +10734,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10734
10734
  return 'unknown';
10735
10735
  }
10736
10736
  logInboxSnapshot(event, extra = {}) {
10737
- logger$13.debug(event, {
10737
+ logger$12.debug(event, {
10738
10738
  channel: this.channelName,
10739
10739
  connector_id: this.connectorId,
10740
10740
  connector_state: this.state,
@@ -10750,7 +10750,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10750
10750
  await super.start(inboundHandler);
10751
10751
  // After transitioning to STARTED, check if tab is already hidden
10752
10752
  if (typeof document !== 'undefined' && document.hidden) {
10753
- logger$13.debug('broadcast_channel_start_in_hidden_tab', {
10753
+ logger$12.debug('broadcast_channel_start_in_hidden_tab', {
10754
10754
  channel: this.channelName,
10755
10755
  connector_id: this.connectorId,
10756
10756
  document_hidden: document.hidden,
@@ -10760,7 +10760,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10760
10760
  });
10761
10761
  // Immediately pause if tab is hidden at start time
10762
10762
  await this.pause().catch((err) => {
10763
- logger$13.warning('broadcast_channel_initial_pause_failed', {
10763
+ logger$12.warning('broadcast_channel_initial_pause_failed', {
10764
10764
  channel: this.channelName,
10765
10765
  connector_id: this.connectorId,
10766
10766
  error: err instanceof Error ? err.message : String(err),
@@ -10778,7 +10778,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10778
10778
  return;
10779
10779
  }
10780
10780
  this.targetNodeId = normalized;
10781
- logger$13.debug('broadcast_channel_target_updated', {
10781
+ logger$12.debug('broadcast_channel_target_updated', {
10782
10782
  channel: this.channelName,
10783
10783
  connector_id: this.connectorId,
10784
10784
  local_node_id: this.localNodeId,
@@ -10788,7 +10788,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10788
10788
  }
10789
10789
  setWildcardTarget() {
10790
10790
  this.targetNodeId = '*';
10791
- logger$13.debug('broadcast_channel_target_updated', {
10791
+ logger$12.debug('broadcast_channel_target_updated', {
10792
10792
  channel: this.channelName,
10793
10793
  connector_id: this.connectorId,
10794
10794
  local_node_id: this.localNodeId,
@@ -10961,7 +10961,7 @@ function broadcastChannelGrantToConnectorConfig(grant) {
10961
10961
  return config;
10962
10962
  }
10963
10963
 
10964
- const logger$12 = getLogger('naylence.fame.node.upstream_session_manager');
10964
+ const logger$11 = getLogger('naylence.fame.node.upstream_session_manager');
10965
10965
  function isPlainRecord$4(value) {
10966
10966
  if (typeof value !== 'object' || value === null) {
10967
10967
  return false;
@@ -11082,7 +11082,7 @@ class UpstreamSessionManager extends TaskSpawner {
11082
11082
  this.wrappedHandler = this.makeHeartbeatEnabledHandler(options.inboundHandler);
11083
11083
  // Store the connection retry policy (can be null, in which case default behavior applies)
11084
11084
  this.connectionRetryPolicy = options.retryPolicy ?? null;
11085
- logger$12.debug('created_upstream_session_manager', {
11085
+ logger$11.debug('created_upstream_session_manager', {
11086
11086
  target_system_id: this.targetSystemId,
11087
11087
  has_retry_policy: this.connectionRetryPolicy !== null,
11088
11088
  });
@@ -11091,23 +11091,23 @@ class UpstreamSessionManager extends TaskSpawner {
11091
11091
  return this.targetSystemId;
11092
11092
  }
11093
11093
  setupVisibilityListener() {
11094
- logger$12.debug('setup_visibility_listener_called', {
11094
+ logger$11.debug('setup_visibility_listener_called', {
11095
11095
  has_document: typeof document !== 'undefined',
11096
11096
  });
11097
11097
  if (typeof document !== 'undefined' && document.addEventListener) {
11098
11098
  this._visibilityHandler = () => {
11099
- logger$12.debug('visibility_change_event_fired', {
11099
+ logger$11.debug('visibility_change_event_fired', {
11100
11100
  state: document.visibilityState,
11101
11101
  });
11102
11102
  if (document.visibilityState === 'visible') {
11103
- logger$12.debug('visibility_change_detected_waking_up');
11103
+ logger$11.debug('visibility_change_detected_waking_up');
11104
11104
  this.wakeEvent.set();
11105
11105
  }
11106
11106
  };
11107
11107
  document.addEventListener('visibilitychange', this._visibilityHandler);
11108
11108
  }
11109
11109
  else {
11110
- logger$12.debug('setup_visibility_listener_skipped_no_document');
11110
+ logger$11.debug('setup_visibility_listener_skipped_no_document');
11111
11111
  }
11112
11112
  }
11113
11113
  teardownVisibilityListener() {
@@ -11140,13 +11140,13 @@ class UpstreamSessionManager extends TaskSpawner {
11140
11140
  }
11141
11141
  throw new FameConnectError('Upstream session manager failed to attach');
11142
11142
  }
11143
- logger$12.debug('upstream_session_manager_started');
11143
+ logger$11.debug('upstream_session_manager_started');
11144
11144
  }
11145
11145
  getActiveConnector() {
11146
11146
  return this.connector;
11147
11147
  }
11148
11148
  async stop() {
11149
- logger$12.debug('upstream_session_manager_stopping');
11149
+ logger$11.debug('upstream_session_manager_stopping');
11150
11150
  this.teardownVisibilityListener();
11151
11151
  this.stopEvent.set();
11152
11152
  this.currentStopSubtasks?.set();
@@ -11157,7 +11157,7 @@ class UpstreamSessionManager extends TaskSpawner {
11157
11157
  }
11158
11158
  catch (error) {
11159
11159
  if (!(error instanceof TaskCancelledError)) {
11160
- logger$12.debug('fsm_task_stopped_with_error', {
11160
+ logger$11.debug('fsm_task_stopped_with_error', {
11161
11161
  error: error.message,
11162
11162
  });
11163
11163
  }
@@ -11166,13 +11166,13 @@ class UpstreamSessionManager extends TaskSpawner {
11166
11166
  }
11167
11167
  if (this.connector) {
11168
11168
  await this.connector.stop().catch((error) => {
11169
- logger$12.debug('connector_stop_error', {
11169
+ logger$11.debug('connector_stop_error', {
11170
11170
  error: error.message,
11171
11171
  });
11172
11172
  });
11173
11173
  this.connector = null;
11174
11174
  }
11175
- logger$12.debug('upstream_session_manager_stopped');
11175
+ logger$11.debug('upstream_session_manager_stopped');
11176
11176
  }
11177
11177
  async send(envelope) {
11178
11178
  if (this.messageQueue.length >= UpstreamSessionManager.TX_QUEUE_MAX) {
@@ -11221,7 +11221,7 @@ class UpstreamSessionManager extends TaskSpawner {
11221
11221
  const shouldFailFast = this.shouldFailFastOnError(error);
11222
11222
  if (error instanceof FameTransportClose ||
11223
11223
  error instanceof FameConnectError) {
11224
- logger$12.warning('upstream_link_closed', {
11224
+ logger$11.warning('upstream_link_closed', {
11225
11225
  error: error.message,
11226
11226
  will_retry: !shouldFailFast,
11227
11227
  attempt: this.initialAttempts,
@@ -11234,13 +11234,13 @@ class UpstreamSessionManager extends TaskSpawner {
11234
11234
  else {
11235
11235
  const err = error;
11236
11236
  if (err.name === 'OAuth2PkceRedirectInitiatedError') {
11237
- logger$12.info('upstream_link_redirecting', {
11237
+ logger$11.info('upstream_link_redirecting', {
11238
11238
  error: err.message,
11239
11239
  will_retry: true,
11240
11240
  });
11241
11241
  }
11242
11242
  else {
11243
- logger$12.warning('upstream_link_closed', {
11243
+ logger$11.warning('upstream_link_closed', {
11244
11244
  error: err.message,
11245
11245
  will_retry: !shouldFailFast,
11246
11246
  attempt: this.initialAttempts,
@@ -11284,7 +11284,7 @@ class UpstreamSessionManager extends TaskSpawner {
11284
11284
  // If sleep was interrupted by visibility change (user returned to tab),
11285
11285
  // reset backoff to initial delay for immediate retry with fresh backoff
11286
11286
  if (wasWoken) {
11287
- logger$12.debug('backoff_reset_on_visibility_change', {
11287
+ logger$11.debug('backoff_reset_on_visibility_change', {
11288
11288
  previous_delay: delay,
11289
11289
  new_delay: UpstreamSessionManager.BACKOFF_INITIAL,
11290
11290
  });
@@ -11303,7 +11303,7 @@ class UpstreamSessionManager extends TaskSpawner {
11303
11303
  // Check if wake event is already set (e.g., visibility just changed)
11304
11304
  if (this.wakeEvent.isSet()) {
11305
11305
  this.wakeEvent.clear();
11306
- logger$12.debug('sleep_skipped_wake_event_pending');
11306
+ logger$11.debug('sleep_skipped_wake_event_pending');
11307
11307
  return true;
11308
11308
  }
11309
11309
  let timeout;
@@ -11320,7 +11320,7 @@ class UpstreamSessionManager extends TaskSpawner {
11320
11320
  ]);
11321
11321
  const wasWoken = this.wakeEvent.isSet();
11322
11322
  if (wasWoken) {
11323
- logger$12.debug('sleep_interrupted_by_wake_event');
11323
+ logger$11.debug('sleep_interrupted_by_wake_event');
11324
11324
  this.wakeEvent.clear();
11325
11325
  }
11326
11326
  if (timeout !== undefined) {
@@ -11383,7 +11383,7 @@ class UpstreamSessionManager extends TaskSpawner {
11383
11383
  await connector.start(this.wrappedHandler);
11384
11384
  this.connector = connector;
11385
11385
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
11386
- logger$12.debug('callback_grants_before_augmentation', {
11386
+ logger$11.debug('callback_grants_before_augmentation', {
11387
11387
  count: callbackGrants.length,
11388
11388
  types: callbackGrants.map((g) => g.type),
11389
11389
  });
@@ -11393,7 +11393,7 @@ class UpstreamSessionManager extends TaskSpawner {
11393
11393
  const broadcastCallbackGrant = shouldAddBroadcastGrant
11394
11394
  ? this.createBroadcastCallbackGrant(grant)
11395
11395
  : null;
11396
- logger$12.debug('broadcast_callback_grant_check', {
11396
+ logger$11.debug('broadcast_callback_grant_check', {
11397
11397
  should_add: shouldAddBroadcastGrant,
11398
11398
  grant_created: !!broadcastCallbackGrant,
11399
11399
  });
@@ -11412,12 +11412,12 @@ class UpstreamSessionManager extends TaskSpawner {
11412
11412
  const isDuplicate = callbackGrants.some((existing) => JSON.stringify(existing) === JSON.stringify(grant));
11413
11413
  if (!isDuplicate) {
11414
11414
  callbackGrants.push(grant);
11415
- logger$12.debug('added_connection_grant_as_callback', {
11415
+ logger$11.debug('added_connection_grant_as_callback', {
11416
11416
  type: grant.type,
11417
11417
  });
11418
11418
  }
11419
11419
  else {
11420
- logger$12.debug('skipped_duplicate_connection_grant', {
11420
+ logger$11.debug('skipped_duplicate_connection_grant', {
11421
11421
  type: grant.type,
11422
11422
  });
11423
11423
  }
@@ -11429,12 +11429,12 @@ class UpstreamSessionManager extends TaskSpawner {
11429
11429
  if (broadcastCallbackGrant &&
11430
11430
  this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
11431
11431
  callbackGrants.push(broadcastCallbackGrant);
11432
- logger$12.debug('added_broadcast_callback_grant');
11432
+ logger$11.debug('added_broadcast_callback_grant');
11433
11433
  }
11434
11434
  else if (broadcastCallbackGrant) {
11435
- logger$12.debug('skipped_duplicate_broadcast_callback_grant');
11435
+ logger$11.debug('skipped_duplicate_broadcast_callback_grant');
11436
11436
  }
11437
- logger$12.debug('callback_grants_after_augmentation', {
11437
+ logger$11.debug('callback_grants_after_augmentation', {
11438
11438
  count: callbackGrants.length,
11439
11439
  types: callbackGrants.map((g) => g.type),
11440
11440
  });
@@ -11447,7 +11447,7 @@ class UpstreamSessionManager extends TaskSpawner {
11447
11447
  targetAware.setTargetNodeId(this.targetSystemId);
11448
11448
  }
11449
11449
  catch (error) {
11450
- logger$12.warning('broadcast_channel_target_apply_failed', {
11450
+ logger$11.warning('broadcast_channel_target_apply_failed', {
11451
11451
  error: error instanceof Error ? error.message : String(error),
11452
11452
  target_node_id: this.targetSystemId,
11453
11453
  });
@@ -11469,14 +11469,14 @@ class UpstreamSessionManager extends TaskSpawner {
11469
11469
  });
11470
11470
  }
11471
11471
  else {
11472
- logger$12.warning('parent_epoch_changed', { epoch });
11472
+ logger$11.warning('parent_epoch_changed', { epoch });
11473
11473
  }
11474
11474
  }
11475
11475
  if (!this.readyEvent.isSet()) {
11476
11476
  this.readyEvent.set();
11477
11477
  }
11478
11478
  if (this.messageQueue.length > 0) {
11479
- logger$12.debug('flushing_buffered_frames', {
11479
+ logger$11.debug('flushing_buffered_frames', {
11480
11480
  queue_size: this.messageQueue.length,
11481
11481
  });
11482
11482
  this.queueEvent.set();
@@ -11493,12 +11493,12 @@ class UpstreamSessionManager extends TaskSpawner {
11493
11493
  name: `expiry-guard-${this.connectEpoch}`,
11494
11494
  });
11495
11495
  if (this.hadSuccessfulAttach) {
11496
- logger$12.debug('reconnected_to_upstream', {
11496
+ logger$11.debug('reconnected_to_upstream', {
11497
11497
  attach_expires_at: attachInfo.attachExpiresAt?.toISOString?.() ?? null,
11498
11498
  });
11499
11499
  }
11500
11500
  else {
11501
- logger$12.debug('connected_to_upstream', {
11501
+ logger$11.debug('connected_to_upstream', {
11502
11502
  attach_expires_at: attachInfo.attachExpiresAt?.toISOString?.() ?? null,
11503
11503
  });
11504
11504
  }
@@ -11516,18 +11516,18 @@ class UpstreamSessionManager extends TaskSpawner {
11516
11516
  this.currentStopSubtasks = null;
11517
11517
  await Promise.allSettled(tasks.map((task) => task.promise));
11518
11518
  if (this.connector) {
11519
- logger$12.debug('upstream_stopping_old_connector', {
11519
+ logger$11.debug('upstream_stopping_old_connector', {
11520
11520
  connect_epoch: this.connectEpoch,
11521
11521
  target_system_id: this.targetSystemId,
11522
11522
  timestamp: new Date().toISOString(),
11523
11523
  });
11524
11524
  await this.connector.stop().catch((err) => {
11525
- logger$12.warning('upstream_connector_stop_error', {
11525
+ logger$11.warning('upstream_connector_stop_error', {
11526
11526
  connect_epoch: this.connectEpoch,
11527
11527
  error: err instanceof Error ? err.message : String(err),
11528
11528
  });
11529
11529
  });
11530
- logger$12.debug('upstream_old_connector_stopped', {
11530
+ logger$11.debug('upstream_old_connector_stopped', {
11531
11531
  connect_epoch: this.connectEpoch,
11532
11532
  target_system_id: this.targetSystemId,
11533
11533
  timestamp: new Date().toISOString(),
@@ -11580,7 +11580,7 @@ class UpstreamSessionManager extends TaskSpawner {
11580
11580
  });
11581
11581
  }
11582
11582
  catch (error) {
11583
- logger$12.debug('broadcast_callback_grant_generation_failed', {
11583
+ logger$11.debug('broadcast_callback_grant_generation_failed', {
11584
11584
  error: error instanceof Error ? error.message : String(error),
11585
11585
  });
11586
11586
  return null;
@@ -11635,7 +11635,7 @@ class UpstreamSessionManager extends TaskSpawner {
11635
11635
  }
11636
11636
  }
11637
11637
  async heartbeatLoop(connector, stopEvt, signal) {
11638
- logger$12.debug('starting_heartbeat_loop');
11638
+ logger$11.debug('starting_heartbeat_loop');
11639
11639
  const intervalMs = UpstreamSessionManager.HEARTBEAT_INTERVAL * 1000;
11640
11640
  const graceMs = intervalMs * UpstreamSessionManager.HEARTBEAT_GRACE;
11641
11641
  this.lastHeartbeatAckTime = Date.now();
@@ -11671,7 +11671,7 @@ class UpstreamSessionManager extends TaskSpawner {
11671
11671
  // Skip heartbeat if connector is paused (e.g., tab is hidden)
11672
11672
  // Keep ack time current so we don't timeout immediately after resuming
11673
11673
  if (currentState === core.ConnectorState.PAUSED) {
11674
- logger$12.debug('skipping_heartbeat_connector_paused', {
11674
+ logger$11.debug('skipping_heartbeat_connector_paused', {
11675
11675
  connector_state: currentState,
11676
11676
  });
11677
11677
  this.lastHeartbeatAckTime = Date.now();
@@ -11680,14 +11680,14 @@ class UpstreamSessionManager extends TaskSpawner {
11680
11680
  // Reset ack time if just resumed from pause (prevents immediate timeout)
11681
11681
  if (previousState === core.ConnectorState.PAUSED &&
11682
11682
  currentState === core.ConnectorState.STARTED) {
11683
- logger$12.debug('connector_just_resumed_resetting_ack_time', {
11683
+ logger$11.debug('connector_just_resumed_resetting_ack_time', {
11684
11684
  previous_state: previousState,
11685
11685
  current_state: currentState,
11686
11686
  });
11687
11687
  this.lastHeartbeatAckTime = Date.now();
11688
11688
  }
11689
11689
  const envelope = await this.makeHeartbeatEnvelope();
11690
- logger$12.debug('sending_heartbeat', {
11690
+ logger$11.debug('sending_heartbeat', {
11691
11691
  hb_corr_id: envelope.corrId,
11692
11692
  hb_env_id: envelope.id,
11693
11693
  });
@@ -11713,7 +11713,7 @@ class UpstreamSessionManager extends TaskSpawner {
11713
11713
  throw new FameConnectError('missed heartbeat acknowledgement');
11714
11714
  }
11715
11715
  }
11716
- logger$12.debug('completed_heartbeat_loop');
11716
+ logger$11.debug('completed_heartbeat_loop');
11717
11717
  }
11718
11718
  async messagePumpLoop(connector, stopEvt, signal) {
11719
11719
  while (!stopEvt.isSet() && !signal?.aborted) {
@@ -11730,19 +11730,19 @@ class UpstreamSessionManager extends TaskSpawner {
11730
11730
  if (!envelope) {
11731
11731
  continue;
11732
11732
  }
11733
- logger$12.debug('upstream_pump_sending_envelope', {
11733
+ logger$11.debug('upstream_pump_sending_envelope', {
11734
11734
  envelopeId: envelope.id,
11735
11735
  type: envelope.frame?.type,
11736
11736
  });
11737
11737
  try {
11738
11738
  await connector.send(envelope);
11739
- logger$12.debug('upstream_pump_sent_envelope', {
11739
+ logger$11.debug('upstream_pump_sent_envelope', {
11740
11740
  envelopeId: envelope.id,
11741
11741
  });
11742
11742
  }
11743
11743
  catch (error) {
11744
11744
  if (error instanceof FameMessageTooLarge) {
11745
- logger$12.error('failed_to_send_message', { error: error.message });
11745
+ logger$11.error('failed_to_send_message', { error: error.message });
11746
11746
  await this.handleMessageTooLarge(envelope, error.message);
11747
11747
  }
11748
11748
  else if (error instanceof FameTransportClose) {
@@ -11804,7 +11804,7 @@ class UpstreamSessionManager extends TaskSpawner {
11804
11804
  await fabric.send(ackEnvelope);
11805
11805
  }
11806
11806
  catch (error) {
11807
- logger$12.warning('failed_to_send_nack', {
11807
+ logger$11.warning('failed_to_send_nack', {
11808
11808
  error: error.message,
11809
11809
  });
11810
11810
  }
@@ -11818,7 +11818,7 @@ class UpstreamSessionManager extends TaskSpawner {
11818
11818
  timestamps.push(info.attachExpiresAt);
11819
11819
  }
11820
11820
  if (!timestamps.length) {
11821
- logger$12.debug('no_ttl_expiry_configured');
11821
+ logger$11.debug('no_ttl_expiry_configured');
11822
11822
  await this.waitEvent(stopEvt, signal);
11823
11823
  return;
11824
11824
  }
@@ -11827,7 +11827,7 @@ class UpstreamSessionManager extends TaskSpawner {
11827
11827
  let delaySeconds = (earliest.getTime() - now.getTime()) / 1000 -
11828
11828
  UpstreamSessionManager.JWT_REFRESH_SAFETY;
11829
11829
  delaySeconds = Math.max(delaySeconds, UpstreamSessionManager.JWT_REFRESH_SAFETY);
11830
- logger$12.debug('ttl_expiry_guard_started', {
11830
+ logger$11.debug('ttl_expiry_guard_started', {
11831
11831
  welcome_expires_at: welcome.frame.expiresAt ?? null,
11832
11832
  attach_expires_at: info.attachExpiresAt?.toISOString?.() ?? null,
11833
11833
  earliest_expiry: earliest.toISOString(),
@@ -11855,7 +11855,7 @@ class UpstreamSessionManager extends TaskSpawner {
11855
11855
  }
11856
11856
  }
11857
11857
  if (!stopEvt.isSet()) {
11858
- logger$12.debug('ttl_expiry_triggered_reconnect', {
11858
+ logger$11.debug('ttl_expiry_triggered_reconnect', {
11859
11859
  expires_at: earliest.toISOString(),
11860
11860
  current_time: new Date().toISOString(),
11861
11861
  seconds_before_expiry: UpstreamSessionManager.JWT_REFRESH_SAFETY,
@@ -11900,7 +11900,7 @@ class UpstreamSessionManager extends TaskSpawner {
11900
11900
  }
11901
11901
  await this.node.dispatchEnvelopeEvent('onEnvelopeReceived', this.node, env, context);
11902
11902
  if (env.frame.type === 'NodeHeartbeatAck') {
11903
- logger$12.debug('received_heartbeat_ack', {
11903
+ logger$11.debug('received_heartbeat_ack', {
11904
11904
  hb_ack_env_id: env.id,
11905
11905
  hb_ack_corr_id: env.corrId,
11906
11906
  hb_routing_epoch: env.frame.routingEpoch,
@@ -11914,7 +11914,7 @@ class UpstreamSessionManager extends TaskSpawner {
11914
11914
  await this.onEpochChange(epoch);
11915
11915
  }
11916
11916
  else {
11917
- logger$12.warning('parent_epoch_changed', { epoch });
11917
+ logger$11.warning('parent_epoch_changed', { epoch });
11918
11918
  }
11919
11919
  }
11920
11920
  return;
@@ -11933,7 +11933,7 @@ UpstreamSessionManager.TX_QUEUE_MAX = 512;
11933
11933
  UpstreamSessionManager.BACKOFF_INITIAL = 1; // seconds
11934
11934
  UpstreamSessionManager.BACKOFF_CAP = 30; // seconds
11935
11935
 
11936
- const logger$11 = getLogger('naylence.fame.node.admission.noop_admission_client');
11936
+ const logger$10 = getLogger('naylence.fame.node.admission.noop_admission_client');
11937
11937
  class NoopAdmissionClient {
11938
11938
  constructor(options = {}) {
11939
11939
  this.hasUpstream = false;
@@ -11947,7 +11947,7 @@ class NoopAdmissionClient {
11947
11947
  const acceptedLogicals = this.autoAcceptLogicals
11948
11948
  ? [...(requestedLogicals ?? [])]
11949
11949
  : [];
11950
- logger$11.debug('noop_admission_hello', {
11950
+ logger$10.debug('noop_admission_hello', {
11951
11951
  systemId: effectiveSystemId,
11952
11952
  instanceId,
11953
11953
  requestedLogicals,
@@ -11965,7 +11965,7 @@ class NoopAdmissionClient {
11965
11965
  });
11966
11966
  }
11967
11967
  async close() {
11968
- logger$11.debug('noop_admission_close');
11968
+ logger$10.debug('noop_admission_close');
11969
11969
  }
11970
11970
  }
11971
11971
 
@@ -12171,7 +12171,7 @@ class DefaultServiceManager {
12171
12171
  }
12172
12172
 
12173
12173
  const SYSTEM_INBOX$1 = '__sys__';
12174
- const logger$10 = getLogger('naylence.fame.node.node');
12174
+ const logger$$ = getLogger('naylence.fame.node.node');
12175
12175
  function isSnakeCase(name) {
12176
12176
  return name.includes('_');
12177
12177
  }
@@ -12441,7 +12441,7 @@ class FameNode extends TaskSpawner {
12441
12441
  confirmIdentity(systemId, source) {
12442
12442
  if (this._confirmedId) {
12443
12443
  if (this._confirmedId !== systemId) {
12444
- logger$10.error('node_identity_mismatch', {
12444
+ logger$$.error('node_identity_mismatch', {
12445
12445
  current_id: this._confirmedId,
12446
12446
  new_id: systemId,
12447
12447
  source,
@@ -12453,14 +12453,14 @@ class FameNode extends TaskSpawner {
12453
12453
  const isReassignment = this._provisionalId !== systemId;
12454
12454
  this._confirmedId = systemId;
12455
12455
  if (isReassignment) {
12456
- logger$10.debug('node_identity_reassigned', {
12456
+ logger$$.debug('node_identity_reassigned', {
12457
12457
  system_id: systemId,
12458
12458
  previous_id: this._provisionalId,
12459
12459
  source,
12460
12460
  });
12461
12461
  }
12462
12462
  else {
12463
- logger$10.debug('node_identity_confirmed', {
12463
+ logger$$.debug('node_identity_confirmed', {
12464
12464
  system_id: systemId,
12465
12465
  source,
12466
12466
  });
@@ -12528,7 +12528,7 @@ class FameNode extends TaskSpawner {
12528
12528
  return;
12529
12529
  }
12530
12530
  if (frameType === 'NodeHeartbeat') {
12531
- logger$10.debug('received_heartbeat_frame', {
12531
+ logger$$.debug('received_heartbeat_frame', {
12532
12532
  envelopeId: envelope.id,
12533
12533
  corrId: envelope.corrId ?? null,
12534
12534
  });
@@ -12540,7 +12540,7 @@ class FameNode extends TaskSpawner {
12540
12540
  await this.handleDeliveryAck(envelope, context);
12541
12541
  return;
12542
12542
  }
12543
- logger$10.debug('unhandled_system_frame', {
12543
+ logger$$.debug('unhandled_system_frame', {
12544
12544
  envelopeId: envelope.id,
12545
12545
  frameType,
12546
12546
  });
@@ -12552,13 +12552,13 @@ class FameNode extends TaskSpawner {
12552
12552
  }
12553
12553
  await this._deliveryTracker.onEnvelopeDelivered(SYSTEM_INBOX$1, envelope, context);
12554
12554
  if (frame.ok !== false) {
12555
- logger$10.debug('delivery_ack_received', {
12555
+ logger$$.debug('delivery_ack_received', {
12556
12556
  envelopeId: envelope.id,
12557
12557
  corrId: envelope.corrId ?? null,
12558
12558
  });
12559
12559
  return;
12560
12560
  }
12561
- logger$10.warning('delivery_nack_received', {
12561
+ logger$$.warning('delivery_nack_received', {
12562
12562
  envelopeId: envelope.id,
12563
12563
  corrId: envelope.corrId ?? null,
12564
12564
  code: frame.code ?? null,
@@ -12568,7 +12568,7 @@ class FameNode extends TaskSpawner {
12568
12568
  await this.onDeliveryNack(frame, envelope, context);
12569
12569
  }
12570
12570
  async onDeliveryNack(frame, envelope, _context) {
12571
- logger$10.debug('delivery_nack_processed', {
12571
+ logger$$.debug('delivery_nack_processed', {
12572
12572
  envelopeId: envelope.id,
12573
12573
  code: frame.code ?? null,
12574
12574
  reason: frame.reason ?? null,
@@ -12683,7 +12683,7 @@ class FameNode extends TaskSpawner {
12683
12683
  await this._bindingManager.restore();
12684
12684
  await this._envelopeListenerManager.start();
12685
12685
  this._isStarted = true;
12686
- logger$10.debug('node_started', {
12686
+ logger$$.debug('node_started', {
12687
12687
  node_id: this.id,
12688
12688
  sid: this.sid,
12689
12689
  path: this.physicalPath,
@@ -12715,7 +12715,7 @@ class FameNode extends TaskSpawner {
12715
12715
  await this._serviceManager.stop();
12716
12716
  await this.dispatchEvent('onNodeStopped', this);
12717
12717
  this._isStarted = false;
12718
- logger$10.debug('node_stopped', {
12718
+ logger$$.debug('node_stopped', {
12719
12719
  node_id: this.id,
12720
12720
  });
12721
12721
  }
@@ -12905,20 +12905,20 @@ class FameNode extends TaskSpawner {
12905
12905
  await this.forwardUpstream(processedEnvelope, context);
12906
12906
  }
12907
12907
  else {
12908
- logger$10.error('attempted_upstream_loop', {
12908
+ logger$$.error('attempted_upstream_loop', {
12909
12909
  envelopeId: processedEnvelope.id,
12910
12910
  });
12911
12911
  }
12912
12912
  return;
12913
12913
  }
12914
12914
  if (!processedEnvelope.to) {
12915
- logger$10.error('dropping_envelope_without_destination', {
12915
+ logger$$.error('dropping_envelope_without_destination', {
12916
12916
  envelopeId: processedEnvelope.id,
12917
12917
  capabilities: processedEnvelope.capabilities ?? [],
12918
12918
  });
12919
12919
  return;
12920
12920
  }
12921
- logger$10.warning('no_local_handler_for_address', {
12921
+ logger$$.warning('no_local_handler_for_address', {
12922
12922
  address: processedEnvelope.to.toString?.() ?? String(processedEnvelope.to),
12923
12923
  originType: context?.originType ?? null,
12924
12924
  });
@@ -13042,7 +13042,7 @@ class FameNode extends TaskSpawner {
13042
13042
  }
13043
13043
  }
13044
13044
  catch (error) {
13045
- logger$10.warning('callback_grant_collection_failed', {
13045
+ logger$$.warning('callback_grant_collection_failed', {
13046
13046
  error: error instanceof Error ? error.message : String(error),
13047
13047
  });
13048
13048
  }
@@ -13105,7 +13105,7 @@ class FameNode extends TaskSpawner {
13105
13105
  await store.set('self', record);
13106
13106
  }
13107
13107
  catch (error) {
13108
- logger$10.warning('node_meta_persist_failed', {
13108
+ logger$$.warning('node_meta_persist_failed', {
13109
13109
  error: error instanceof Error ? error.message : String(error),
13110
13110
  });
13111
13111
  }
@@ -13243,44 +13243,12 @@ class ConnectionRetryPolicyFactory extends factory.AbstractResourceFactory {
13243
13243
  }
13244
13244
  }
13245
13245
 
13246
- const TOKEN_PROVIDER_FACTORY_BASE_TYPE = 'TokenProviderFactory';
13247
- class TokenProviderFactory extends factory.AbstractResourceFactory {
13248
- static async createTokenProvider(config, options = {}) {
13249
- if (config) {
13250
- const provider = await factory.createResource(TOKEN_PROVIDER_FACTORY_BASE_TYPE, config, options);
13251
- if (!provider) {
13252
- throw new Error('Failed to create token provider from configuration');
13253
- }
13254
- return provider;
13255
- }
13256
- let provider = null;
13257
- try {
13258
- provider = await factory.createDefaultResource(TOKEN_PROVIDER_FACTORY_BASE_TYPE, null, options);
13259
- }
13260
- catch (error) {
13261
- const message = 'Failed to create default token provider' +
13262
- (error instanceof Error && error.message ? `: ${error.message}` : '');
13263
- throw new Error(message);
13264
- }
13265
- if (!provider) {
13266
- throw new Error('Failed to create default token provider');
13267
- }
13268
- return provider;
13269
- }
13270
- }
13271
-
13272
- function isTokenProvider(candidate) {
13273
- return (typeof candidate === 'object' &&
13274
- candidate !== null &&
13275
- typeof candidate.getToken === 'function');
13276
- }
13277
- function isIdentityExposingTokenProvider(candidate) {
13278
- return (isTokenProvider(candidate) &&
13279
- typeof candidate.getIdentity ===
13280
- 'function');
13281
- }
13282
-
13283
- const logger$$ = getLogger('naylence.fame.node.default_node_identity_policy');
13246
+ /**
13247
+ * Default node identity policy that preserves the current node ID.
13248
+ *
13249
+ * This policy does NOT derive identity from tokens or grants.
13250
+ * For token-subject-based identity, use TokenSubjectNodeIdentityPolicy.
13251
+ */
13284
13252
  class DefaultNodeIdentityPolicy {
13285
13253
  async resolveInitialNodeId(context) {
13286
13254
  if (context.configuredId) {
@@ -13292,44 +13260,10 @@ class DefaultNodeIdentityPolicy {
13292
13260
  return await core.generateIdAsync({ mode: 'fingerprint' });
13293
13261
  }
13294
13262
  async resolveAdmissionNodeId(context) {
13295
- // Try to extract identity from grants first
13296
- if (context.grants && context.grants.length > 0) {
13297
- for (const grant of context.grants) {
13298
- try {
13299
- const auth = grant.auth;
13300
- if (!auth) {
13301
- continue;
13302
- }
13303
- const tokenProviderConfig = (auth.tokenProvider ??
13304
- auth.token_provider);
13305
- if (!tokenProviderConfig ||
13306
- typeof tokenProviderConfig.type !== 'string') {
13307
- continue;
13308
- }
13309
- const provider = await TokenProviderFactory.createTokenProvider(tokenProviderConfig);
13310
- if (isIdentityExposingTokenProvider(provider)) {
13311
- const identity = await provider.getIdentity();
13312
- if (identity && identity.subject) {
13313
- logger$$.debug('identity_extracted_from_grant', {
13314
- identity_id: identity.subject,
13315
- grant_type: grant.type,
13316
- });
13317
- return identity.subject;
13318
- }
13319
- }
13320
- }
13321
- catch (error) {
13322
- logger$$.warning('identity_extraction_failed', {
13323
- error: error instanceof Error ? error.message : String(error),
13324
- grant_type: grant.type,
13325
- });
13326
- }
13327
- }
13263
+ if (context.currentNodeId) {
13264
+ return context.currentNodeId;
13328
13265
  }
13329
- if (!context.currentNodeId) {
13330
- return await core.generateIdAsync({ mode: 'fingerprint' });
13331
- }
13332
- return context.currentNodeId;
13266
+ return await core.generateIdAsync({ mode: 'fingerprint' });
13333
13267
  }
13334
13268
  }
13335
13269
 
@@ -13684,6 +13618,11 @@ class TransportListenerFactory extends factory.AbstractResourceFactory {
13684
13618
  static async createTransportListeners(configs, eventListeners, options = {}) {
13685
13619
  const listeners = [];
13686
13620
  for (const config of configs) {
13621
+ // Skip disabled listeners (enabled defaults to true if not specified)
13622
+ const configRecord = config;
13623
+ if (configRecord && configRecord.enabled === false) {
13624
+ continue;
13625
+ }
13687
13626
  const listener = await this.createTransportListener(config ?? undefined, eventListeners, options);
13688
13627
  if (listener) {
13689
13628
  listeners.push(listener);
@@ -16087,6 +16026,43 @@ var defaultNodeIdentityPolicyFactory = /*#__PURE__*/Object.freeze({
16087
16026
  default: DefaultNodeIdentityPolicyFactory
16088
16027
  });
16089
16028
 
16029
+ const TOKEN_PROVIDER_FACTORY_BASE_TYPE = 'TokenProviderFactory';
16030
+ class TokenProviderFactory extends factory.AbstractResourceFactory {
16031
+ static async createTokenProvider(config, options = {}) {
16032
+ if (config) {
16033
+ const provider = await factory.createResource(TOKEN_PROVIDER_FACTORY_BASE_TYPE, config, options);
16034
+ if (!provider) {
16035
+ throw new Error('Failed to create token provider from configuration');
16036
+ }
16037
+ return provider;
16038
+ }
16039
+ let provider = null;
16040
+ try {
16041
+ provider = await factory.createDefaultResource(TOKEN_PROVIDER_FACTORY_BASE_TYPE, null, options);
16042
+ }
16043
+ catch (error) {
16044
+ const message = 'Failed to create default token provider' +
16045
+ (error instanceof Error && error.message ? `: ${error.message}` : '');
16046
+ throw new Error(message);
16047
+ }
16048
+ if (!provider) {
16049
+ throw new Error('Failed to create default token provider');
16050
+ }
16051
+ return provider;
16052
+ }
16053
+ }
16054
+
16055
+ function isTokenProvider(candidate) {
16056
+ return (typeof candidate === 'object' &&
16057
+ candidate !== null &&
16058
+ typeof candidate.getToken === 'function');
16059
+ }
16060
+ function isIdentityExposingTokenProvider(candidate) {
16061
+ return (isTokenProvider(candidate) &&
16062
+ typeof candidate.getIdentity ===
16063
+ 'function');
16064
+ }
16065
+
16090
16066
  const logger$W = getLogger('naylence.fame.node.token_subject_node_identity_policy');
16091
16067
  class TokenSubjectNodeIdentityPolicy {
16092
16068
  async resolveInitialNodeId(context) {