@naylence/runtime 0.4.1 → 0.4.2

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.
@@ -523,12 +523,12 @@ async function ensureRuntimeFactoriesRegistered(registry = Registry) {
523
523
  }
524
524
 
525
525
  // This file is auto-generated during build - do not edit manually
526
- // Generated from package.json version: 0.4.1
526
+ // Generated from package.json version: 0.4.2
527
527
  /**
528
528
  * The package version, injected at build time.
529
529
  * @internal
530
530
  */
531
- const VERSION = '0.4.1';
531
+ const VERSION = '0.4.2';
532
532
 
533
533
  let initialized = false;
534
534
  const runtimePlugin = {
@@ -1373,7 +1373,7 @@ class TaskCancelledError extends Error {
1373
1373
  * Provides functionality similar to Python's asyncio TaskSpawner with proper
1374
1374
  * error handling, cancellation, and graceful shutdown capabilities.
1375
1375
  */
1376
- const logger$1l = getLogger('naylence.fame.util.task_spawner');
1376
+ const logger$1k = getLogger('naylence.fame.util.task_spawner');
1377
1377
  function firstDefined(source, keys) {
1378
1378
  for (const key of keys) {
1379
1379
  if (Object.prototype.hasOwnProperty.call(source, key)) {
@@ -1534,7 +1534,7 @@ class TaskSpawner {
1534
1534
  const taskId = `task-${++this._taskCounter}`;
1535
1535
  const taskName = normalizedOptions.name || `unnamed-${taskId}`;
1536
1536
  const timeout = normalizedOptions.timeout ?? this._config.defaultTimeout;
1537
- logger$1l.debug('starting_background_task', {
1537
+ logger$1k.debug('starting_background_task', {
1538
1538
  task_name: taskName,
1539
1539
  task_id: taskId,
1540
1540
  });
@@ -1551,7 +1551,7 @@ class TaskSpawner {
1551
1551
  task.promise
1552
1552
  .then(() => {
1553
1553
  if (!this._suppressCompletionLogging) {
1554
- logger$1l.debug('task_completed_successfully', {
1554
+ logger$1k.debug('task_completed_successfully', {
1555
1555
  task_name: taskName,
1556
1556
  task_id: taskId,
1557
1557
  duration_ms: Date.now() - task.startTime,
@@ -1605,7 +1605,7 @@ class TaskSpawner {
1605
1605
  error.name === 'AbortError' ||
1606
1606
  error.message === 'Task cancelled' ||
1607
1607
  error.message === 'Aborted') {
1608
- logger$1l.debug('task_cancelled', {
1608
+ logger$1k.debug('task_cancelled', {
1609
1609
  task_name: taskName,
1610
1610
  note: 'Task cancelled as requested',
1611
1611
  });
@@ -1613,7 +1613,7 @@ class TaskSpawner {
1613
1613
  }
1614
1614
  // Handle timeout
1615
1615
  if (error instanceof TaskTimeoutError) {
1616
- logger$1l.warning('task_timed_out', {
1616
+ logger$1k.warning('task_timed_out', {
1617
1617
  task_name: taskName,
1618
1618
  error: error.message,
1619
1619
  });
@@ -1625,7 +1625,7 @@ class TaskSpawner {
1625
1625
  // Handle known WebSocket shutdown race condition (similar to Python version)
1626
1626
  if (error.message.includes("await wasn't used with future") ||
1627
1627
  error.message.includes('WebSocket closed during receive')) {
1628
- logger$1l.debug('task_shutdown_race_condition_handled', {
1628
+ logger$1k.debug('task_shutdown_race_condition_handled', {
1629
1629
  task_name: taskName,
1630
1630
  note: 'Normal WebSocket close timing during shutdown - not an error',
1631
1631
  });
@@ -1635,7 +1635,7 @@ class TaskSpawner {
1635
1635
  if (error.name === 'FameTransportClose' ||
1636
1636
  error.message.includes('normal closure') ||
1637
1637
  error.message.includes('Connection closed')) {
1638
- logger$1l.debug('task_shutdown_completed_normally', {
1638
+ logger$1k.debug('task_shutdown_completed_normally', {
1639
1639
  task_name: taskName,
1640
1640
  note: 'Task closed normally during shutdown',
1641
1641
  });
@@ -1643,7 +1643,7 @@ class TaskSpawner {
1643
1643
  }
1644
1644
  // Handle PKCE redirect "errors" as info
1645
1645
  if (error.name === 'OAuth2PkceRedirectInitiatedError') {
1646
- logger$1l.debug('background_task_redirecting', {
1646
+ logger$1k.debug('background_task_redirecting', {
1647
1647
  task_name: taskName,
1648
1648
  note: 'Task interrupted for PKCE redirect',
1649
1649
  });
@@ -1656,14 +1656,14 @@ class TaskSpawner {
1656
1656
  // Log retriable errors as warnings (they'll be retried by upstream logic)
1657
1657
  // Log non-retriable errors as errors (fatal failures)
1658
1658
  if (isRetriableError) {
1659
- logger$1l.warning('background_task_failed', {
1659
+ logger$1k.warning('background_task_failed', {
1660
1660
  task_name: taskName,
1661
1661
  error: error.message,
1662
1662
  retriable: true,
1663
1663
  });
1664
1664
  }
1665
1665
  else {
1666
- logger$1l.error('background_task_failed', {
1666
+ logger$1k.error('background_task_failed', {
1667
1667
  task_name: taskName,
1668
1668
  error: error.message,
1669
1669
  stack: error.stack,
@@ -1682,11 +1682,11 @@ class TaskSpawner {
1682
1682
  async shutdownTasks(options = {}) {
1683
1683
  const { gracePeriod, cancelHanging, joinTimeout } = normalizeShutdownOptions(options);
1684
1684
  if (this._tasks.size === 0) {
1685
- logger$1l.debug('shutdown_tasks_no_tasks_to_shutdown');
1685
+ logger$1k.debug('shutdown_tasks_no_tasks_to_shutdown');
1686
1686
  return;
1687
1687
  }
1688
1688
  this._suppressCompletionLogging = true;
1689
- logger$1l.debug('shutting_down_tasks', {
1689
+ logger$1k.debug('shutting_down_tasks', {
1690
1690
  task_count: this._tasks.size,
1691
1691
  task_names: Array.from(this._tasks.values()).map((t) => t.name),
1692
1692
  grace_period_ms: gracePeriod,
@@ -1701,7 +1701,7 @@ class TaskSpawner {
1701
1701
  if (cancelHanging) {
1702
1702
  const stillRunning = tasks.filter((task) => task.getState() === TaskState.RUNNING && !completed.has(task));
1703
1703
  if (stillRunning.length > 0) {
1704
- logger$1l.debug('tasks_did_not_complete_within_grace_period', {
1704
+ logger$1k.debug('tasks_did_not_complete_within_grace_period', {
1705
1705
  hanging_count: stillRunning.length,
1706
1706
  });
1707
1707
  // Wait for them to finish with individual timeouts
@@ -1711,7 +1711,7 @@ class TaskSpawner {
1711
1711
  }
1712
1712
  catch (error) {
1713
1713
  if (error instanceof TaskTimeoutError) {
1714
- logger$1l.warning('task_did_not_shutdown', {
1714
+ logger$1k.warning('task_did_not_shutdown', {
1715
1715
  task_name: task.name || task.id,
1716
1716
  join_timeout_ms: joinTimeout,
1717
1717
  });
@@ -1722,7 +1722,7 @@ class TaskSpawner {
1722
1722
  }
1723
1723
  else if (!(error instanceof TaskCancelledError)) {
1724
1724
  /* istanbul ignore next - unreachable defensive branch */
1725
- logger$1l.error('task_raised_during_cancellation', {
1725
+ logger$1k.error('task_raised_during_cancellation', {
1726
1726
  task_name: task.name || task.id,
1727
1727
  error: error instanceof Error ? error.message : String(error),
1728
1728
  });
@@ -2859,7 +2859,7 @@ async function safeImport(loader, dependencyNameOrOptions, maybeOptions) {
2859
2859
  * condition/promise and ensure at most one notifier coroutine exists for a
2860
2860
  * flow at any time.
2861
2861
  */
2862
- const logger$1k = getLogger('naylence.fame.flow.flow_controller');
2862
+ const logger$1j = getLogger('naylence.fame.flow.flow_controller');
2863
2863
  /**
2864
2864
  * Simple condition variable implementation for TypeScript/Node.js
2865
2865
  * Similar to Python's asyncio.Condition
@@ -2993,7 +2993,7 @@ class FlowController {
2993
2993
  const newBalance = Math.max(0, Math.min(this.initialWindow, prev + delta));
2994
2994
  this.credits.set(flowId, newBalance);
2995
2995
  const crossedZero = prev <= 0 && newBalance > 0;
2996
- logger$1k.debug('flow_controller_add_credits', {
2996
+ logger$1j.debug('flow_controller_add_credits', {
2997
2997
  flow_id: flowId,
2998
2998
  delta,
2999
2999
  prev_balance: prev,
@@ -3013,12 +3013,12 @@ class FlowController {
3013
3013
  async acquire(flowId) {
3014
3014
  this.ensureFlow(flowId);
3015
3015
  const condition = this.conditions.get(flowId);
3016
- logger$1k.debug('flow_controller_acquire_attempt', {
3016
+ logger$1j.debug('flow_controller_acquire_attempt', {
3017
3017
  flow_id: flowId,
3018
3018
  current_balance: this.credits.get(flowId),
3019
3019
  });
3020
3020
  while (this.credits.get(flowId) <= 0) {
3021
- logger$1k.debug('flow_controller_waiting_for_credits', {
3021
+ logger$1j.debug('flow_controller_waiting_for_credits', {
3022
3022
  flow_id: flowId,
3023
3023
  current_balance: this.credits.get(flowId),
3024
3024
  });
@@ -3026,12 +3026,12 @@ class FlowController {
3026
3026
  }
3027
3027
  const newBalance = this.credits.get(flowId) - 1;
3028
3028
  this.credits.set(flowId, newBalance);
3029
- logger$1k.debug('flow_controller_acquire_success', {
3029
+ logger$1j.debug('flow_controller_acquire_success', {
3030
3030
  flow_id: flowId,
3031
3031
  new_balance: newBalance,
3032
3032
  });
3033
3033
  if (newBalance <= this.lowWatermark) {
3034
- logger$1k.debug('flow_controller_acquire_below_low_watermark', {
3034
+ logger$1j.debug('flow_controller_acquire_below_low_watermark', {
3035
3035
  flow_id: flowId,
3036
3036
  low_watermark: this.lowWatermark,
3037
3037
  });
@@ -3055,7 +3055,7 @@ class FlowController {
3055
3055
  const current = this.credits.get(flowId);
3056
3056
  const remaining = Math.max(current - credits, 0);
3057
3057
  this.credits.set(flowId, remaining);
3058
- logger$1k.debug('flow_controller_consume', {
3058
+ logger$1j.debug('flow_controller_consume', {
3059
3059
  flow_id: flowId,
3060
3060
  requested: credits,
3061
3061
  prev_balance: current,
@@ -3081,7 +3081,7 @@ class FlowController {
3081
3081
  this.windowIds.delete(flowId);
3082
3082
  this.credits.set(flowId, this.initialWindow);
3083
3083
  this.wakeWaiters(flowId);
3084
- logger$1k.debug('flow_controller_flow_reset', {
3084
+ logger$1j.debug('flow_controller_flow_reset', {
3085
3085
  flow_id: flowId,
3086
3086
  reset_balance: this.initialWindow,
3087
3087
  });
@@ -3369,7 +3369,7 @@ class InMemoryBinding {
3369
3369
  * TypeScript port of Python's InMemoryFanoutBroker that extends TaskSpawner
3370
3370
  * to manage multiple WriteChannel subscribers with concurrent message distribution.
3371
3371
  */
3372
- const logger$1j = getLogger('naylence.fame.channel.in_memory.in_memory_fanout_broker');
3372
+ const logger$1i = getLogger('naylence.fame.channel.in_memory.in_memory_fanout_broker');
3373
3373
  // Sentinel object for shutdown signaling
3374
3374
  const SENTINEL = Symbol('fanout-broker-sentinel');
3375
3375
  function isCloseable(obj) {
@@ -3422,7 +3422,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3422
3422
  }
3423
3423
  catch (error) {
3424
3424
  // Ignore errors when sending sentinel (sink might be closed)
3425
- logger$1j.debug('error_sending_sentinel', {
3425
+ logger$1i.debug('error_sending_sentinel', {
3426
3426
  error: error.message,
3427
3427
  });
3428
3428
  }
@@ -3436,7 +3436,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3436
3436
  await sub.close();
3437
3437
  }
3438
3438
  catch (error) {
3439
- logger$1j.error('error_closing_subscriber', {
3439
+ logger$1i.error('error_closing_subscriber', {
3440
3440
  subscriber: sub.toString(),
3441
3441
  error: error.message,
3442
3442
  });
@@ -3476,7 +3476,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3476
3476
  [envelope, context] = extractEnvelopeAndContext(msg);
3477
3477
  }
3478
3478
  catch (error) {
3479
- logger$1j.debug('failed_to_extract_envelope', {
3479
+ logger$1i.debug('failed_to_extract_envelope', {
3480
3480
  error: error.message,
3481
3481
  });
3482
3482
  continue;
@@ -3498,7 +3498,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3498
3498
  await sub.send(messageToSend);
3499
3499
  }
3500
3500
  catch (error) {
3501
- logger$1j.error('error_sending_to_subscriber', {
3501
+ logger$1i.error('error_sending_to_subscriber', {
3502
3502
  subscriber: sub.toString(),
3503
3503
  error: error.message,
3504
3504
  action: 'unsubscribing',
@@ -3514,7 +3514,7 @@ class InMemoryFanoutBroker extends TaskSpawner {
3514
3514
  }
3515
3515
  catch (error) {
3516
3516
  // Critical broker-level error: log and back off, but keep the loop running
3517
- logger$1j.critical('receive_loop_failed_unexpectedly', {
3517
+ logger$1i.critical('receive_loop_failed_unexpectedly', {
3518
3518
  error: error.message,
3519
3519
  stack: error.stack,
3520
3520
  });
@@ -5190,7 +5190,7 @@ function normalizeResponseType(value) {
5190
5190
  return value;
5191
5191
  }
5192
5192
 
5193
- const logger$1i = getLogger('naylence.fame.node.binding_manager');
5193
+ const logger$1h = getLogger('naylence.fame.node.binding_manager');
5194
5194
  const SYSTEM_INBOX$3 = '__sys__';
5195
5195
  const DEFAULT_ACK_TIMEOUT_MS = 20000;
5196
5196
  class BindingStoreEntryRecord {
@@ -5276,7 +5276,7 @@ class BindingManager {
5276
5276
  if (!this.bindings.has(key)) {
5277
5277
  const binding = this.bindingFactory(new FameAddress(key));
5278
5278
  this.bindings.set(key, binding);
5279
- logger$1i.debug('restored_binding', { address: key });
5279
+ logger$1h.debug('restored_binding', { address: key });
5280
5280
  }
5281
5281
  }
5282
5282
  if (!this.hasUpstream) {
@@ -5286,13 +5286,13 @@ class BindingManager {
5286
5286
  await this.readvertiseCapabilitiesUpstream();
5287
5287
  }
5288
5288
  async bind(participant, capabilities) {
5289
- logger$1i.debug('binding_participant', { participant });
5289
+ logger$1h.debug('binding_participant', { participant });
5290
5290
  const { prefixAddress, addresses, propagateAddress, capabilityAddress } = this.computeBindingAddresses(participant);
5291
5291
  for (const address of addresses) {
5292
5292
  if (!this.bindings.has(address)) {
5293
5293
  const binding = this.bindingFactory(new FameAddress(address));
5294
5294
  this.bindings.set(address, binding);
5295
- logger$1i.debug('bound_address', { address, participant });
5295
+ logger$1h.debug('bound_address', { address, participant });
5296
5296
  }
5297
5297
  }
5298
5298
  let propagatedAddress = null;
@@ -5321,7 +5321,7 @@ class BindingManager {
5321
5321
  await this.unbindAddressUpstream(propagatedAddress);
5322
5322
  }
5323
5323
  catch (rollbackError) {
5324
- logger$1i.error('bind_rollback_failed', {
5324
+ logger$1h.error('bind_rollback_failed', {
5325
5325
  address: propagatedAddress.toString(),
5326
5326
  error: rollbackError.message,
5327
5327
  });
@@ -5340,7 +5340,7 @@ class BindingManager {
5340
5340
  physicalPath: null,
5341
5341
  });
5342
5342
  }
5343
- logger$1i.debug('bind_success', {
5343
+ logger$1h.debug('bind_success', {
5344
5344
  participant,
5345
5345
  address: prefixAddress.toString(),
5346
5346
  capabilities,
@@ -5376,7 +5376,7 @@ class BindingManager {
5376
5376
  await this.bindingStore.delete(address);
5377
5377
  }
5378
5378
  }
5379
- logger$1i.debug('unbind_success', {
5379
+ logger$1h.debug('unbind_success', {
5380
5380
  participant,
5381
5381
  address: prefixAddress.toString(),
5382
5382
  totalBindings: this.bindings.size,
@@ -5406,7 +5406,7 @@ class BindingManager {
5406
5406
  await this.bindAddressUpstream(new FameAddress(address));
5407
5407
  }
5408
5408
  catch (error) {
5409
- logger$1i.error('rebind_failed', {
5409
+ logger$1h.error('rebind_failed', {
5410
5410
  address,
5411
5411
  error: error.message,
5412
5412
  });
@@ -5425,7 +5425,7 @@ class BindingManager {
5425
5425
  await this.advertiseCapabilities(new FameAddress(address), Array.from(capabilities));
5426
5426
  }
5427
5427
  catch (error) {
5428
- logger$1i.error('capability_replay_failed', {
5428
+ logger$1h.error('capability_replay_failed', {
5429
5429
  address,
5430
5430
  error: error.message,
5431
5431
  });
@@ -5692,7 +5692,7 @@ class BindingManager {
5692
5692
  }
5693
5693
  }
5694
5694
 
5695
- const logger$1h = getLogger('naylence.fame.node.response_context_manager');
5695
+ const logger$1g = getLogger('naylence.fame.node.response_context_manager');
5696
5696
  function cloneSecurityContext(source) {
5697
5697
  if (!source) {
5698
5698
  return undefined;
@@ -5720,7 +5720,7 @@ class ResponseContextManager {
5720
5720
  security: responseSecurity,
5721
5721
  expectedResponseType: FameResponseType.NONE,
5722
5722
  };
5723
- logger$1h.debug('created_response_context', {
5723
+ logger$1g.debug('created_response_context', {
5724
5724
  request_id: requestEnvelope.id,
5725
5725
  inherited_crypto_level: responseSecurity?.inboundCryptoLevel ?? null,
5726
5726
  channel_id: responseSecurity?.cryptoChannelId ?? null,
@@ -5740,14 +5740,14 @@ class ResponseContextManager {
5740
5740
  responseContext.fromSystemId = this.getId();
5741
5741
  }
5742
5742
  // Envelope-level metadata is intentionally omitted to defer to context usage.
5743
- logger$1h.debug('ensured_response_metadata', {
5743
+ logger$1g.debug('ensured_response_metadata', {
5744
5744
  response_id: responseEnvelope.id,
5745
5745
  request_id: requestEnvelope.id,
5746
5746
  });
5747
5747
  }
5748
5748
  }
5749
5749
 
5750
- const logger$1g = getLogger('naylence.fame.node.streaming_response_handler');
5750
+ const logger$1f = getLogger('naylence.fame.node.streaming_response_handler');
5751
5751
  function isObject(value) {
5752
5752
  return typeof value === 'object' && value !== null;
5753
5753
  }
@@ -5866,12 +5866,12 @@ class StreamingResponseHandler {
5866
5866
  }
5867
5867
  async handleStreamingFameMessageResponses(responses, requestEnvelope, requestContext) {
5868
5868
  const asyncResponses = toAsyncIterable(responses);
5869
- logger$1g.debug('handling_streaming_fame_message_responses', {
5869
+ logger$1f.debug('handling_streaming_fame_message_responses', {
5870
5870
  request_id: requestEnvelope.id,
5871
5871
  });
5872
5872
  for await (const response of asyncResponses) {
5873
5873
  if (!response?.envelope) {
5874
- logger$1g.warning('invalid_streaming_response_type', {
5874
+ logger$1f.warning('invalid_streaming_response_type', {
5875
5875
  request_id: requestEnvelope.id,
5876
5876
  actual_type: typeof response,
5877
5877
  });
@@ -5885,7 +5885,7 @@ class StreamingResponseHandler {
5885
5885
  }
5886
5886
  async handleStreamingResponse(result, requestEnvelope, requestContext, replyTo, requestId) {
5887
5887
  const iterable = toAsyncIterable(result);
5888
- logger$1g.debug('handling_streaming_response', {
5888
+ logger$1f.debug('handling_streaming_response', {
5889
5889
  request_id: requestId,
5890
5890
  reply_to: replyTo,
5891
5891
  });
@@ -5896,7 +5896,7 @@ class StreamingResponseHandler {
5896
5896
  await this.sendRpcResponse(null, requestEnvelope, requestContext, replyTo, requestId);
5897
5897
  }
5898
5898
  catch (error) {
5899
- logger$1g.error('streaming_response_handler_error', {
5899
+ logger$1f.error('streaming_response_handler_error', {
5900
5900
  request_id: requestId,
5901
5901
  error: error instanceof Error ? error.message : String(error),
5902
5902
  });
@@ -5923,7 +5923,7 @@ class StreamingResponseHandler {
5923
5923
  });
5924
5924
  const responseContext = this.responseContextManager.createResponseContext(requestEnvelope, requestContext);
5925
5925
  this.responseContextManager.ensureResponseMetadata(responseEnvelope, requestEnvelope, responseContext);
5926
- logger$1g.debug('sending_streaming_rpc_response', {
5926
+ logger$1f.debug('sending_streaming_rpc_response', {
5927
5927
  request_id: requestId,
5928
5928
  response_envelope_id: responseEnvelope.id,
5929
5929
  reply_to: replyTo,
@@ -5936,7 +5936,7 @@ class StreamingResponseHandler {
5936
5936
  }
5937
5937
  }
5938
5938
 
5939
- const logger$1f = getLogger('naylence.fame.node.channel_polling_manager');
5939
+ const logger$1e = getLogger('naylence.fame.node.channel_polling_manager');
5940
5940
  class ChannelPollingManager {
5941
5941
  constructor(deliverWrapper, responseContextManager, streamingResponseHandler) {
5942
5942
  this.deliverWrapper = deliverWrapper;
@@ -5944,7 +5944,7 @@ class ChannelPollingManager {
5944
5944
  this.streamingResponseHandler = streamingResponseHandler;
5945
5945
  }
5946
5946
  async startPollingLoop(serviceName, channel, handler, stopState, pollTimeoutMs = DEFAULT_POLLING_TIMEOUT_MS) {
5947
- logger$1f.debug('poll_loop_started', {
5947
+ logger$1e.debug('poll_loop_started', {
5948
5948
  recipient: serviceName,
5949
5949
  });
5950
5950
  try {
@@ -5952,7 +5952,7 @@ class ChannelPollingManager {
5952
5952
  while (true) {
5953
5953
  if (this.isStopRequested(stopState) && !draining) {
5954
5954
  draining = true;
5955
- logger$1f.debug('poll_loop_draining_pending_messages', {
5955
+ logger$1e.debug('poll_loop_draining_pending_messages', {
5956
5956
  recipient: serviceName,
5957
5957
  });
5958
5958
  }
@@ -5962,7 +5962,7 @@ class ChannelPollingManager {
5962
5962
  }
5963
5963
  catch (error) {
5964
5964
  if (error instanceof FameTransportClose) {
5965
- logger$1f.debug('channel_closed', {
5965
+ logger$1e.debug('channel_closed', {
5966
5966
  recipient: serviceName,
5967
5967
  message: error.message,
5968
5968
  });
@@ -5975,7 +5975,7 @@ class ChannelPollingManager {
5975
5975
  continue;
5976
5976
  }
5977
5977
  if (error instanceof Error && error.name === 'AbortError') {
5978
- logger$1f.debug('listener_cancelled', {
5978
+ logger$1e.debug('listener_cancelled', {
5979
5979
  recipient: serviceName,
5980
5980
  });
5981
5981
  throw error;
@@ -5987,13 +5987,13 @@ class ChannelPollingManager {
5987
5987
  continue;
5988
5988
  }
5989
5989
  if (error instanceof Error && error.message === 'Channel is closed') {
5990
- logger$1f.debug('channel_closed', {
5990
+ logger$1e.debug('channel_closed', {
5991
5991
  recipient: serviceName,
5992
5992
  });
5993
5993
  break;
5994
5994
  }
5995
5995
  if (error instanceof Error && error.name === 'TaskCancelledError') {
5996
- logger$1f.debug('listener_cancelled', {
5996
+ logger$1e.debug('listener_cancelled', {
5997
5997
  recipient: serviceName,
5998
5998
  });
5999
5999
  throw error;
@@ -6005,12 +6005,12 @@ class ChannelPollingManager {
6005
6005
  continue;
6006
6006
  }
6007
6007
  if (error instanceof Error && error.message.includes('closed')) {
6008
- logger$1f.debug('channel_closed', {
6008
+ logger$1e.debug('channel_closed', {
6009
6009
  recipient: serviceName,
6010
6010
  });
6011
6011
  break;
6012
6012
  }
6013
- logger$1f.error('transport_error', {
6013
+ logger$1e.error('transport_error', {
6014
6014
  recipient: serviceName,
6015
6015
  error: error instanceof Error ? error.message : String(error),
6016
6016
  });
@@ -6026,7 +6026,7 @@ class ChannelPollingManager {
6026
6026
  }
6027
6027
  }
6028
6028
  finally {
6029
- logger$1f.debug('poll_loop_exiting', {
6029
+ logger$1e.debug('poll_loop_exiting', {
6030
6030
  recipient: serviceName,
6031
6031
  });
6032
6032
  }
@@ -6039,7 +6039,7 @@ class ChannelPollingManager {
6039
6039
  await this.processHandlerResult(result, envelope, deliveryContext, serviceName);
6040
6040
  }
6041
6041
  catch (error) {
6042
- logger$1f.error('handler_crashed', {
6042
+ logger$1e.error('handler_crashed', {
6043
6043
  recipient: serviceName,
6044
6044
  error: error instanceof Error ? error.message : String(error),
6045
6045
  });
@@ -6053,7 +6053,7 @@ class ChannelPollingManager {
6053
6053
  return;
6054
6054
  }
6055
6055
  if (this.streamingResponseHandler.isStreamingFameMessageResponse(result)) {
6056
- logger$1f.debug('handling_streaming_fame_message_responses', {
6056
+ logger$1e.debug('handling_streaming_fame_message_responses', {
6057
6057
  service_name: serviceName,
6058
6058
  envelope_id: envelope.id,
6059
6059
  });
@@ -6061,7 +6061,7 @@ class ChannelPollingManager {
6061
6061
  }
6062
6062
  }
6063
6063
  async handleMessageResponse(response, requestEnvelope, requestContext, serviceName) {
6064
- logger$1f.debug('delivering_envelope_response_message', {
6064
+ logger$1e.debug('delivering_envelope_response_message', {
6065
6065
  service_name: serviceName,
6066
6066
  response_envelope_id: response.envelope.id,
6067
6067
  });
@@ -6081,7 +6081,7 @@ class ChannelPollingManager {
6081
6081
  }
6082
6082
  }
6083
6083
 
6084
- const logger$1e = getLogger('naylence.fame.node.rpc_server_handler');
6084
+ const logger$1d = getLogger('naylence.fame.node.rpc_server_handler');
6085
6085
  function isPlainRecord$6(value) {
6086
6086
  if (typeof value !== 'object' || value === null) {
6087
6087
  return false;
@@ -6125,13 +6125,13 @@ class RPCServerHandler {
6125
6125
  }
6126
6126
  async handleRpcRequest(envelope, handlerContext, handler, serviceName) {
6127
6127
  if (!this.isDataFrame(envelope.frame)) {
6128
- logger$1e.warning('rpc_request_missing_data_frame', {
6128
+ logger$1d.warning('rpc_request_missing_data_frame', {
6129
6129
  service_name: serviceName,
6130
6130
  envelope_id: envelope.id,
6131
6131
  });
6132
6132
  return;
6133
6133
  }
6134
- logger$1e.debug('rpc_request_received', {
6134
+ logger$1d.debug('rpc_request_received', {
6135
6135
  service_name: serviceName,
6136
6136
  envelope_id: envelope.id,
6137
6137
  trace_id: envelope.traceId,
@@ -6143,7 +6143,7 @@ class RPCServerHandler {
6143
6143
  request = parseRequest(envelope.frame.payload);
6144
6144
  params = cloneParams(request.params);
6145
6145
  const paramKeys = Object.keys(params);
6146
- logger$1e.debug('parsed_rpc_request', {
6146
+ logger$1d.debug('parsed_rpc_request', {
6147
6147
  service_name: serviceName,
6148
6148
  method: request.method,
6149
6149
  request_id: request.id,
@@ -6152,7 +6152,7 @@ class RPCServerHandler {
6152
6152
  });
6153
6153
  }
6154
6154
  catch (error) {
6155
- logger$1e.warning('request_decode_error', {
6155
+ logger$1d.warning('request_decode_error', {
6156
6156
  service_name: serviceName,
6157
6157
  envelope_id: envelope.id,
6158
6158
  error: error instanceof Error ? error.message : String(error),
@@ -6160,7 +6160,7 @@ class RPCServerHandler {
6160
6160
  return;
6161
6161
  }
6162
6162
  if (request.id == null) {
6163
- logger$1e.warning('request_missing_id', {
6163
+ logger$1d.warning('request_missing_id', {
6164
6164
  service_name: serviceName,
6165
6165
  envelope_id: envelope.id,
6166
6166
  });
@@ -6168,7 +6168,7 @@ class RPCServerHandler {
6168
6168
  }
6169
6169
  const replyTo = this.resolveReplyTo(envelope, params);
6170
6170
  if (!replyTo) {
6171
- logger$1e.warning('missing_reply_to', {
6171
+ logger$1d.warning('missing_reply_to', {
6172
6172
  service_name: serviceName,
6173
6173
  envelope_id: envelope.id,
6174
6174
  request_id: request.id,
@@ -6177,13 +6177,13 @@ class RPCServerHandler {
6177
6177
  }
6178
6178
  let handlerResult;
6179
6179
  try {
6180
- logger$1e.debug('calling_rpc_handler', {
6180
+ logger$1d.debug('calling_rpc_handler', {
6181
6181
  service_name: serviceName,
6182
6182
  method: request.method,
6183
6183
  request_id: request.id,
6184
6184
  });
6185
6185
  handlerResult = await handler(request.method, params);
6186
- logger$1e.debug('rpc_handler_returned', {
6186
+ logger$1d.debug('rpc_handler_returned', {
6187
6187
  service_name: serviceName,
6188
6188
  method: request.method,
6189
6189
  request_id: request.id,
@@ -6192,7 +6192,7 @@ class RPCServerHandler {
6192
6192
  });
6193
6193
  }
6194
6194
  catch (error) {
6195
- logger$1e.error('rpc_handler_error', {
6195
+ logger$1d.error('rpc_handler_error', {
6196
6196
  service_name: serviceName,
6197
6197
  request_id: request.id,
6198
6198
  envelope_id: envelope.id,
@@ -6202,7 +6202,7 @@ class RPCServerHandler {
6202
6202
  return this.createTraditionalResponse(response, request.id, envelope, replyTo, handlerContext, serviceName);
6203
6203
  }
6204
6204
  if (isFameMessageResponse(handlerResult)) {
6205
- logger$1e.debug('returning_response_message', {
6205
+ logger$1d.debug('returning_response_message', {
6206
6206
  service_name: serviceName,
6207
6207
  request_id: request.id,
6208
6208
  response_envelope_id: handlerResult.envelope.id,
@@ -6210,7 +6210,7 @@ class RPCServerHandler {
6210
6210
  return handlerResult;
6211
6211
  }
6212
6212
  if (this.streamingResponseHandler.isStreamingResult(handlerResult)) {
6213
- logger$1e.debug('handling_streaming_response', {
6213
+ logger$1d.debug('handling_streaming_response', {
6214
6214
  service_name: serviceName,
6215
6215
  request_id: request.id,
6216
6216
  envelope_id: envelope.id,
@@ -6239,7 +6239,7 @@ class RPCServerHandler {
6239
6239
  return null;
6240
6240
  }
6241
6241
  async createTraditionalResponse(payload, requestId, requestEnvelope, replyTo, handlerContext, serviceName) {
6242
- logger$1e.debug('creating_traditional_response_envelope', {
6242
+ logger$1d.debug('creating_traditional_response_envelope', {
6243
6243
  service_name: serviceName,
6244
6244
  request_id: requestId,
6245
6245
  envelope_id: requestEnvelope.id,
@@ -6263,7 +6263,7 @@ class RPCServerHandler {
6263
6263
  if (requestEnvelope.id) {
6264
6264
  responseContext.meta['response-to-id'] = requestEnvelope.id;
6265
6265
  }
6266
- logger$1e.debug('returning_traditional_response', {
6266
+ logger$1d.debug('returning_traditional_response', {
6267
6267
  service_name: serviceName,
6268
6268
  request_id: requestId,
6269
6269
  envelope_id: requestEnvelope.id,
@@ -6328,7 +6328,7 @@ function normalizeErrorCode(code) {
6328
6328
  return code;
6329
6329
  }
6330
6330
 
6331
- const logger$1d = getLogger('naylence.fame.node.rpc_client_manager');
6331
+ const logger$1c = getLogger('naylence.fame.node.rpc_client_manager');
6332
6332
  function isPlainRecord$5(value) {
6333
6333
  if (typeof value !== 'object' || value === null) {
6334
6334
  return false;
@@ -6545,7 +6545,7 @@ class RPCClientManager {
6545
6545
  const metaReason = tracked.meta?.['nack_reason'];
6546
6546
  const formattedMessage = formatDeliveryErrorMessage(typeof metaCode === 'string' ? metaCode : 'DELIVERY_ERROR', reason ??
6547
6547
  (typeof metaReason === 'string' ? metaReason : undefined));
6548
- logger$1d.debug('pending_request_rejected_by_delivery_nack', {
6548
+ logger$1c.debug('pending_request_rejected_by_delivery_nack', {
6549
6549
  envelope_id: envelopeId,
6550
6550
  request_id: requestId,
6551
6551
  code: typeof metaCode === 'string' ? metaCode : 'DELIVERY_ERROR',
@@ -6568,7 +6568,7 @@ class RPCClientManager {
6568
6568
  this.trackerWithEvents.removeEventHandler?.(this.trackerEventHandler);
6569
6569
  }
6570
6570
  catch (error) {
6571
- logger$1d.debug('rpc_tracker_handler_remove_failed', {
6571
+ logger$1c.debug('rpc_tracker_handler_remove_failed', {
6572
6572
  error: error instanceof Error ? error.message : String(error),
6573
6573
  });
6574
6574
  }
@@ -6611,7 +6611,7 @@ class RPCClientManager {
6611
6611
  this.rpcListenerAddress = await this.listenCallback(recipient, handler);
6612
6612
  this.rpcBound = true;
6613
6613
  this.boundPhysicalPath = currentPhysicalPath;
6614
- logger$1d.debug('rpc_reply_listener_bound', {
6614
+ logger$1c.debug('rpc_reply_listener_bound', {
6615
6615
  reply_recipient: recipient,
6616
6616
  reply_address: this.rpcReplyAddress?.toString(),
6617
6617
  listener_address: this.rpcListenerAddress?.toString(),
@@ -6705,7 +6705,7 @@ class RPCClientManager {
6705
6705
  const finalizePromise = this.notifyStreamClosed(envelopeId);
6706
6706
  if (finalizePromise) {
6707
6707
  finalizePromise.catch((notifyError) => {
6708
- logger$1d.debug('stream_tracker_finalize_failed', {
6708
+ logger$1c.debug('stream_tracker_finalize_failed', {
6709
6709
  request_id: requestId,
6710
6710
  envelope_id: envelopeId,
6711
6711
  error: notifyError instanceof Error
@@ -6766,7 +6766,7 @@ class RPCClientManager {
6766
6766
  return iterator;
6767
6767
  }
6768
6768
  async sendRpcRequest(requestId, envelope, expectedResponseType, timeoutMs) {
6769
- logger$1d.debug('sending_rpc_request', {
6769
+ logger$1c.debug('sending_rpc_request', {
6770
6770
  envp_id: envelope.id,
6771
6771
  corr_id: envelope.corrId,
6772
6772
  request_id: requestId,
@@ -6782,7 +6782,7 @@ class RPCClientManager {
6782
6782
  }
6783
6783
  }
6784
6784
  catch (error) {
6785
- logger$1d.warning('delivery_tracker_track_failed', {
6785
+ logger$1c.warning('delivery_tracker_track_failed', {
6786
6786
  request_id: requestId,
6787
6787
  error: error instanceof Error ? error.message : String(error),
6788
6788
  });
@@ -6795,14 +6795,14 @@ class RPCClientManager {
6795
6795
  await this.deliverWrapper()(envelope, context);
6796
6796
  }
6797
6797
  async handleReplyEnvelope(envelope) {
6798
- logger$1d.debug('handle_reply_envelope_received', {
6798
+ logger$1c.debug('handle_reply_envelope_received', {
6799
6799
  envelope_id: envelope.id,
6800
6800
  corr_id: envelope.corrId,
6801
6801
  frame_type: envelope.frame?.['type'],
6802
6802
  });
6803
6803
  let requestId = envelope.corrId ?? envelope.id;
6804
6804
  if (!requestId) {
6805
- logger$1d.warning('reply_envelope_missing_corr_id', {
6805
+ logger$1c.warning('reply_envelope_missing_corr_id', {
6806
6806
  envelope_id: envelope.id,
6807
6807
  });
6808
6808
  return;
@@ -6820,12 +6820,12 @@ class RPCClientManager {
6820
6820
  }
6821
6821
  }
6822
6822
  if (!entry) {
6823
- logger$1d.debug('no_pending_request_for_reply', {
6823
+ logger$1c.debug('no_pending_request_for_reply', {
6824
6824
  request_id: requestId,
6825
6825
  });
6826
6826
  return;
6827
6827
  }
6828
- logger$1d.debug('handle_reply_envelope', {
6828
+ logger$1c.debug('handle_reply_envelope', {
6829
6829
  envelope_id: envelope.id,
6830
6830
  request_id: requestId,
6831
6831
  corr_id: envelope.corrId,
@@ -6838,7 +6838,7 @@ class RPCClientManager {
6838
6838
  const ackIndicatesSuccess = frame.ok === true ||
6839
6839
  (frame.ok === undefined && !frame.code && !frame.reason);
6840
6840
  if (ackIndicatesSuccess) {
6841
- logger$1d.debug('pending_request_delivery_acknowledged', {
6841
+ logger$1c.debug('pending_request_delivery_acknowledged', {
6842
6842
  request_id: requestId,
6843
6843
  envelope_id: envelope.id,
6844
6844
  ref_id: frame.refId ?? null,
@@ -6866,7 +6866,7 @@ class RPCClientManager {
6866
6866
  entry.timer = null;
6867
6867
  }
6868
6868
  if (!this.isDataFrame(envelope.frame)) {
6869
- logger$1d.warning('unexpected_reply_frame_type', {
6869
+ logger$1c.warning('unexpected_reply_frame_type', {
6870
6870
  request_id: requestId,
6871
6871
  frame_type: envelope.frame?.['type'],
6872
6872
  });
@@ -6932,7 +6932,7 @@ class RPCClientManager {
6932
6932
  return;
6933
6933
  }
6934
6934
  Promise.resolve(this.deliveryTracker.onStreamItem(envelopeId, envelope)).catch((error) => {
6935
- logger$1d.debug('stream_tracker_push_failed', {
6935
+ logger$1c.debug('stream_tracker_push_failed', {
6936
6936
  envelope_id: envelopeId,
6937
6937
  error: error instanceof Error ? error.message : String(error),
6938
6938
  });
@@ -7047,7 +7047,7 @@ function normalizeMailbox(mailbox) {
7047
7047
  return mailbox;
7048
7048
  }
7049
7049
 
7050
- const logger$1c = getLogger('naylence.fame.node.envelope_listener_manager');
7050
+ const logger$1b = getLogger('naylence.fame.node.envelope_listener_manager');
7051
7051
  const SYSTEM_INBOX$2 = '__sys__';
7052
7052
  class EnvelopeListener {
7053
7053
  constructor(stopFn, task) {
@@ -7055,7 +7055,7 @@ class EnvelopeListener {
7055
7055
  this.task = task;
7056
7056
  }
7057
7057
  stop() {
7058
- logger$1c.debug('stopping_listener', {
7058
+ logger$1b.debug('stopping_listener', {
7059
7059
  task_name: this.task.name,
7060
7060
  });
7061
7061
  try {
@@ -7063,7 +7063,7 @@ class EnvelopeListener {
7063
7063
  if (maybeCleanup &&
7064
7064
  typeof maybeCleanup.then === 'function') {
7065
7065
  void maybeCleanup.catch((error) => {
7066
- logger$1c.debug('listener_stop_cleanup_failed', {
7066
+ logger$1b.debug('listener_stop_cleanup_failed', {
7067
7067
  task_name: this.task.name,
7068
7068
  error: error instanceof Error ? error.message : String(error),
7069
7069
  });
@@ -7071,7 +7071,7 @@ class EnvelopeListener {
7071
7071
  }
7072
7072
  }
7073
7073
  catch (error) {
7074
- logger$1c.debug('listener_stop_cleanup_failed', {
7074
+ logger$1b.debug('listener_stop_cleanup_failed', {
7075
7075
  task_name: this.task.name,
7076
7076
  error: error instanceof Error ? error.message : String(error),
7077
7077
  });
@@ -7101,7 +7101,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7101
7101
  envelope.replyTo = formatAddress(SYSTEM_INBOX$2, this.nodeLike.physicalPath);
7102
7102
  }
7103
7103
  catch (error) {
7104
- logger$1c.warning('default_reply_to_assignment_failed', {
7104
+ logger$1b.warning('default_reply_to_assignment_failed', {
7105
7105
  envelope_id: envelope.id,
7106
7106
  service_name: envelope.capabilities?.[0] ?? null,
7107
7107
  error: error instanceof Error ? error.message : String(error),
@@ -7126,7 +7126,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7126
7126
  if (serviceName === SYSTEM_INBOX$2) {
7127
7127
  continue;
7128
7128
  }
7129
- logger$1c.debug('stopping_listener_for_service', {
7129
+ logger$1b.debug('stopping_listener_for_service', {
7130
7130
  service_name: serviceName,
7131
7131
  });
7132
7132
  entry.listener.stop();
@@ -7136,7 +7136,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7136
7136
  catch (error) {
7137
7137
  if (!(error instanceof Error) ||
7138
7138
  error.name !== 'TaskCancelledError') {
7139
- logger$1c.debug('listener_task_stopped', {
7139
+ logger$1b.debug('listener_task_stopped', {
7140
7140
  service_name: serviceName,
7141
7141
  error: error instanceof Error ? error.message : String(error),
7142
7142
  });
@@ -7144,7 +7144,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7144
7144
  }
7145
7145
  }
7146
7146
  if (systemEntry) {
7147
- logger$1c.debug('stopping_listener_for_service', {
7147
+ logger$1b.debug('stopping_listener_for_service', {
7148
7148
  service_name: SYSTEM_INBOX$2,
7149
7149
  });
7150
7150
  systemEntry.listener.stop();
@@ -7154,7 +7154,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7154
7154
  catch (error) {
7155
7155
  if (!(error instanceof Error) ||
7156
7156
  error.name !== 'TaskCancelledError') {
7157
- logger$1c.debug('listener_task_stopped', {
7157
+ logger$1b.debug('listener_task_stopped', {
7158
7158
  service_name: SYSTEM_INBOX$2,
7159
7159
  error: error instanceof Error ? error.message : String(error),
7160
7160
  });
@@ -7171,13 +7171,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7171
7171
  }
7172
7172
  async recoverUnhandledInboundEnvelopes() {
7173
7173
  if (typeof this.deliveryTracker.listInbound !== 'function') {
7174
- logger$1c.debug('delivery_tracker_missing_inbound_listing');
7174
+ logger$1b.debug('delivery_tracker_missing_inbound_listing');
7175
7175
  return;
7176
7176
  }
7177
7177
  const failedInbound = await this.deliveryTracker.listInbound((env) => env.status === EnvelopeStatus.RECEIVED ||
7178
7178
  env.status === EnvelopeStatus.FAILED_TO_HANDLE);
7179
7179
  if (!failedInbound.length) {
7180
- logger$1c.debug('no_failed_inbound_envelopes_to_recover');
7180
+ logger$1b.debug('no_failed_inbound_envelopes_to_recover');
7181
7181
  return;
7182
7182
  }
7183
7183
  const grouped = new Map();
@@ -7194,7 +7194,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7194
7194
  this.pendingRecoveryEnvelopes.set(serviceName, envelopes);
7195
7195
  }
7196
7196
  });
7197
- logger$1c.debug('discovered_failed_inbound_envelopes', {
7197
+ logger$1b.debug('discovered_failed_inbound_envelopes', {
7198
7198
  total: failedInbound.length,
7199
7199
  services: Array.from(grouped.keys()),
7200
7200
  });
@@ -7204,7 +7204,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7204
7204
  const pollTimeoutMs = options.pollTimeoutMs ??
7205
7205
  options.poll_timeout_ms ??
7206
7206
  DEFAULT_POLLING_TIMEOUT_MS;
7207
- logger$1c.debug('listen_start', {
7207
+ logger$1b.debug('listen_start', {
7208
7208
  recipient: serviceName,
7209
7209
  poll_timeout_ms: pollTimeoutMs ?? DEFAULT_POLLING_TIMEOUT_MS,
7210
7210
  });
@@ -7235,7 +7235,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7235
7235
  tracked?.mailboxType === MailboxType.OUTBOX ||
7236
7236
  envelope.frame?.['type'] === 'DeliveryAck';
7237
7237
  if (!shouldInvoke) {
7238
- logger$1c.debug('skipping_listener_handler', {
7238
+ logger$1b.debug('skipping_listener_handler', {
7239
7239
  recipient: serviceName,
7240
7240
  envelope_id: envelope.id,
7241
7241
  tracked_status: tracked?.status,
@@ -7249,13 +7249,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7249
7249
  ? undefined
7250
7250
  : (tracked ?? undefined);
7251
7251
  if (trackedForHandler && trackedForHandler.attempt > 0) {
7252
- logger$1c.info('resuming_handler_retry_after_restart', {
7252
+ logger$1b.info('resuming_handler_retry_after_restart', {
7253
7253
  envelope_id: envelope.id,
7254
7254
  current_attempts: trackedForHandler.attempt,
7255
7255
  service_name: serviceName,
7256
7256
  });
7257
7257
  }
7258
- logger$1c.debug('forwarding_to_listener_handler', {
7258
+ logger$1b.debug('forwarding_to_listener_handler', {
7259
7259
  recipient: serviceName,
7260
7260
  envelope_id: envelope.id,
7261
7261
  frame_type: envelope.frame?.['type'],
@@ -7274,7 +7274,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7274
7274
  await channel.send(null);
7275
7275
  }
7276
7276
  catch (error) {
7277
- logger$1c.debug('listener_stop_signal_failed', {
7277
+ logger$1b.debug('listener_stop_signal_failed', {
7278
7278
  service_name: serviceName,
7279
7279
  error: error instanceof Error ? error.message : String(error),
7280
7280
  });
@@ -7283,7 +7283,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7283
7283
  await this.listenersLock.runExclusive(async () => {
7284
7284
  const existing = this.listeners.get(serviceName);
7285
7285
  if (existing) {
7286
- logger$1c.debug('replacing_envelope_listener', { recipient: serviceName });
7286
+ logger$1b.debug('replacing_envelope_listener', { recipient: serviceName });
7287
7287
  existing.listener.stop();
7288
7288
  try {
7289
7289
  await existing.listener.task.promise;
@@ -7301,13 +7301,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7301
7301
  return binding.address;
7302
7302
  }
7303
7303
  async listenRpc(serviceName, handler, options = {}) {
7304
- logger$1c.debug('rpc_listen_start', { service_name: serviceName });
7304
+ logger$1b.debug('rpc_listen_start', { service_name: serviceName });
7305
7305
  const rpcHandler = async (envelope, context) => {
7306
7306
  const result = await this.rpcServerHandler.handleRpcRequest(envelope, context, handler, serviceName);
7307
7307
  return result ?? null;
7308
7308
  };
7309
7309
  const address = await this.listen(serviceName, rpcHandler, options);
7310
- logger$1c.debug('rpc_listen_bound', {
7310
+ logger$1b.debug('rpc_listen_bound', {
7311
7311
  service_name: serviceName,
7312
7312
  address: address.toString(),
7313
7313
  });
@@ -7376,12 +7376,12 @@ class EnvelopeListenerManager extends TaskSpawner {
7376
7376
  return cached;
7377
7377
  });
7378
7378
  if (!envelopes.length) {
7379
- logger$1c.debug('no_cached_recovery_for_service', {
7379
+ logger$1b.debug('no_cached_recovery_for_service', {
7380
7380
  service_name: serviceName,
7381
7381
  });
7382
7382
  return;
7383
7383
  }
7384
- logger$1c.debug('recovering_unhandled_envelopes_on_listen', {
7384
+ logger$1b.debug('recovering_unhandled_envelopes_on_listen', {
7385
7385
  service_name: serviceName,
7386
7386
  count: envelopes.length,
7387
7387
  envelope_ids: envelopes.map((trackedEnvelope) => trackedEnvelope.envelopeId),
@@ -7392,7 +7392,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7392
7392
  async recoverServiceEnvelopes(serviceName, envelopes, handler) {
7393
7393
  for (const tracked of envelopes) {
7394
7394
  try {
7395
- logger$1c.warning('recovering_unhandled_envelope', {
7395
+ logger$1b.warning('recovering_unhandled_envelope', {
7396
7396
  envelope_id: tracked.envelopeId,
7397
7397
  service_name: serviceName,
7398
7398
  current_attempts: tracked.attempt,
@@ -7401,13 +7401,13 @@ class EnvelopeListenerManager extends TaskSpawner {
7401
7401
  const originalEnvelope = tracked.originalEnvelope;
7402
7402
  const receiverPolicy = this.nodeLike.deliveryPolicy?.receiverRetryPolicy ?? undefined;
7403
7403
  await this.executeHandlerWithRetries(handler, originalEnvelope, undefined, receiverPolicy, tracked, serviceName);
7404
- logger$1c.debug('envelope_recovery_completed', {
7404
+ logger$1b.debug('envelope_recovery_completed', {
7405
7405
  envelope_id: tracked.envelopeId,
7406
7406
  service_name: serviceName,
7407
7407
  });
7408
7408
  }
7409
7409
  catch (error) {
7410
- logger$1c.error('envelope_recovery_failed', {
7410
+ logger$1b.error('envelope_recovery_failed', {
7411
7411
  envelope_id: tracked.envelopeId,
7412
7412
  service_name: serviceName,
7413
7413
  error: error instanceof Error ? error.message : String(error),
@@ -7453,7 +7453,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7453
7453
  await this.deliveryTracker.onEnvelopeHandled(trackedEnvelope);
7454
7454
  }
7455
7455
  if (currentAttempt > 0) {
7456
- logger$1c.info('handler_retry_succeeded', {
7456
+ logger$1b.info('handler_retry_succeeded', {
7457
7457
  envelope_id: envelope.id,
7458
7458
  attempt: currentAttempt + 1,
7459
7459
  total_attempts: currentAttempt + 1,
@@ -7469,7 +7469,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7469
7469
  await this.deliveryTracker.onEnvelopeHandleFailed(inboxName, trackedEnvelope, context, error instanceof Error ? error : new Error(String(error)), isFinalAttempt);
7470
7470
  }
7471
7471
  if (isFinalAttempt) {
7472
- logger$1c.error('handler_execution_failed_exhausted_retries', {
7472
+ logger$1b.error('handler_execution_failed_exhausted_retries', {
7473
7473
  envelope_id: envelope.id,
7474
7474
  total_attempts: attemptNumber,
7475
7475
  max_retries: retryPolicy?.maxRetries ?? 0,
@@ -7478,7 +7478,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7478
7478
  break;
7479
7479
  }
7480
7480
  const delayMs = retryPolicy?.nextDelayMs(attemptNumber) ?? 0;
7481
- logger$1c.warning('handler_execution_failed_will_retry', {
7481
+ logger$1b.warning('handler_execution_failed_will_retry', {
7482
7482
  envelope_id: envelope.id,
7483
7483
  attempt: attemptNumber,
7484
7484
  max_retries: retryPolicy?.maxRetries ?? 0,
@@ -7508,7 +7508,7 @@ class EnvelopeListenerManager extends TaskSpawner {
7508
7508
  }
7509
7509
  }
7510
7510
 
7511
- const logger$1b = getLogger('naylence.fame.delivery.default_delivery_tracker');
7511
+ const logger$1a = getLogger('naylence.fame.delivery.default_delivery_tracker');
7512
7512
  const STREAM_END = Symbol('stream-end');
7513
7513
  const SWEEPER_TICK = Symbol('tracker-sweeper-tick');
7514
7514
  function createDeferred$2() {
@@ -7727,7 +7727,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7727
7727
  const expectedResponseType = options.expectedResponseType;
7728
7728
  const tracked = await this.lock.runExclusive(async () => {
7729
7729
  if (this.ackFutures.has(envelope.id)) {
7730
- logger$1b.debug('tracker_envelope_already_tracked', {
7730
+ logger$1a.debug('tracker_envelope_already_tracked', {
7731
7731
  envp_id: envelope.id,
7732
7732
  });
7733
7733
  return null;
@@ -7737,7 +7737,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7737
7737
  if (expectedResponseType & FameResponseType.REPLY ||
7738
7738
  expectedResponseType & FameResponseType.STREAM) {
7739
7739
  if (existingEnvId && existingEnvId !== envelope.id) {
7740
- logger$1b.debug('envelope_already_tracked_for_replies', {
7740
+ logger$1a.debug('envelope_already_tracked_for_replies', {
7741
7741
  envp_id: envelope.id,
7742
7742
  corr_id: corrId,
7743
7743
  expected_response_type: expectedResponseType,
@@ -7786,7 +7786,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7786
7786
  return null;
7787
7787
  }
7788
7788
  await this.scheduleTimer(tracked, options.retryPolicy ?? null, options.retryHandler ?? null);
7789
- logger$1b.debug('tracker_registered_envelope', {
7789
+ logger$1a.debug('tracker_registered_envelope', {
7790
7790
  envp_id: envelope.id,
7791
7791
  corr_id: tracked.originalEnvelope.corrId,
7792
7792
  expected_response: tracked.expectedResponseType,
@@ -7810,21 +7810,21 @@ class DefaultDeliveryTracker extends TaskSpawner {
7810
7810
  return this.awaitEnvelopeFuture(envelopeId, FameResponseType.REPLY | FameResponseType.STREAM, future, timeoutMs);
7811
7811
  }
7812
7812
  async onEnvelopeDelivered(inboxName, envelope, context) {
7813
- logger$1b.debug('envelope_delivered', {
7813
+ logger$1a.debug('envelope_delivered', {
7814
7814
  envp_id: envelope.id,
7815
7815
  corr_id: envelope.corrId,
7816
7816
  rtype: envelope.rtype ?? FameResponseType.NONE,
7817
7817
  frame_type: envelope.frame?.type ?? 'unknown',
7818
7818
  });
7819
7819
  if (!envelope.corrId) {
7820
- logger$1b.debug('envelope_delivered_no_corr_id', {
7820
+ logger$1a.debug('envelope_delivered_no_corr_id', {
7821
7821
  envelope_id: envelope.id,
7822
7822
  });
7823
7823
  return null;
7824
7824
  }
7825
7825
  if (this.isDeliveryAckFrame(envelope.frame)) {
7826
7826
  if (!envelope.frame.refId) {
7827
- logger$1b.debug('envelope_delivered_no_ref_id', {
7827
+ logger$1a.debug('envelope_delivered_no_ref_id', {
7828
7828
  envelope_id: envelope.id,
7829
7829
  });
7830
7830
  return null;
@@ -7861,7 +7861,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7861
7861
  await inbox.set(envelope.id, tracked);
7862
7862
  }
7863
7863
  else {
7864
- logger$1b.debug('tracker_duplicate_envelope_already_handled', {
7864
+ logger$1a.debug('tracker_duplicate_envelope_already_handled', {
7865
7865
  envp_id: envelope.id,
7866
7866
  status: tracked.status,
7867
7867
  });
@@ -7903,7 +7903,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7903
7903
  }
7904
7904
  if (isFinalFailure) {
7905
7905
  envelope.status = EnvelopeStatus.FAILED_TO_HANDLE;
7906
- logger$1b.error('envelope_handle_failed_final', {
7906
+ logger$1a.error('envelope_handle_failed_final', {
7907
7907
  inbox_name: inboxName,
7908
7908
  envp_id: envelope.originalEnvelope.id,
7909
7909
  error: error?.message ?? 'unknown',
@@ -7914,7 +7914,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7914
7914
  await inbox.delete(envelope.originalEnvelope.id);
7915
7915
  return;
7916
7916
  }
7917
- logger$1b.warning('envelope_handle_failed_retry', {
7917
+ logger$1a.warning('envelope_handle_failed_retry', {
7918
7918
  inbox_name: inboxName,
7919
7919
  envp_id: envelope.originalEnvelope.id,
7920
7920
  error: error?.message ?? 'unknown',
@@ -7959,14 +7959,14 @@ class DefaultDeliveryTracker extends TaskSpawner {
7959
7959
  if (handledViaFuture) {
7960
7960
  await this.markDoneSince(this.ackFutures, refId, this.ackDoneSince);
7961
7961
  await this.clearTimer(refId);
7962
- logger$1b.debug('tracker_ack_resolved_without_tracked_envelope', {
7962
+ logger$1a.debug('tracker_ack_resolved_without_tracked_envelope', {
7963
7963
  envp_id: envelope.id,
7964
7964
  ref_id: refId,
7965
7965
  corr_id: envelope.corrId,
7966
7966
  });
7967
7967
  return;
7968
7968
  }
7969
- logger$1b.debug('tracker_ack_for_unknown_envelope', {
7969
+ logger$1a.debug('tracker_ack_for_unknown_envelope', {
7970
7970
  envp_id: envelope.id,
7971
7971
  ref_id: refId,
7972
7972
  corr_id: envelope.corrId,
@@ -7974,7 +7974,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7974
7974
  return;
7975
7975
  }
7976
7976
  if (tracked.originalEnvelope.corrId !== envelope.corrId) {
7977
- logger$1b.debug('tracker_ack_corr_id_mismatch', {
7977
+ logger$1a.debug('tracker_ack_corr_id_mismatch', {
7978
7978
  envp_id: envelope.id,
7979
7979
  expected_corr_id: tracked.originalEnvelope.corrId,
7980
7980
  actual_corr_id: envelope.corrId,
@@ -7999,7 +7999,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
7999
7999
  for (const handler of this.eventHandlers) {
8000
8000
  await handler.onEnvelopeAcked?.(tracked);
8001
8001
  }
8002
- logger$1b.debug('tracker_envelope_acked', {
8002
+ logger$1a.debug('tracker_envelope_acked', {
8003
8003
  envp_id: tracked.originalEnvelope.id,
8004
8004
  });
8005
8005
  }
@@ -8016,13 +8016,13 @@ class DefaultDeliveryTracker extends TaskSpawner {
8016
8016
  const outbox = this.ensureOutbox();
8017
8017
  const tracked = await outbox.get(envelope.frame.refId);
8018
8018
  if (!tracked) {
8019
- logger$1b.debug('tracker_nack_for_unknown_envelope', {
8019
+ logger$1a.debug('tracker_nack_for_unknown_envelope', {
8020
8020
  envp_id: envelope.id,
8021
8021
  });
8022
8022
  return;
8023
8023
  }
8024
8024
  if (tracked.originalEnvelope.corrId !== envelope.corrId) {
8025
- logger$1b.debug('tracker_nack_corr_id_mismatch', {
8025
+ logger$1a.debug('tracker_nack_corr_id_mismatch', {
8026
8026
  envp_id: envelope.id,
8027
8027
  expected_corr_id: tracked.originalEnvelope.corrId,
8028
8028
  actual_corr_id: envelope.corrId,
@@ -8064,7 +8064,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8064
8064
  for (const handler of this.eventHandlers) {
8065
8065
  await handler.onEnvelopeNacked?.(tracked, ackFrame.reason ?? null);
8066
8066
  }
8067
- logger$1b.debug('tracker_envelope_nacked', {
8067
+ logger$1a.debug('tracker_envelope_nacked', {
8068
8068
  envp_id: tracked.originalEnvelope.id,
8069
8069
  reason: ackFrame.reason,
8070
8070
  });
@@ -8111,7 +8111,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8111
8111
  for (const handler of this.eventHandlers) {
8112
8112
  await handler.onEnvelopeReplied?.(trackedEnvelope, envelope);
8113
8113
  }
8114
- logger$1b.debug('tracked_envelope_replied', {
8114
+ logger$1a.debug('tracked_envelope_replied', {
8115
8115
  envp_id: trackedEnvelope.originalEnvelope.id,
8116
8116
  corr_id: envelope.corrId,
8117
8117
  });
@@ -8185,7 +8185,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8185
8185
  async addToInboxDlq(trackedEnvelope, reason = null) {
8186
8186
  const dlq = this.inboxDlq;
8187
8187
  if (!dlq) {
8188
- logger$1b.error('dlq_not_initialized', {
8188
+ logger$1a.error('dlq_not_initialized', {
8189
8189
  envp_id: trackedEnvelope.originalEnvelope.id,
8190
8190
  });
8191
8191
  return;
@@ -8200,7 +8200,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8200
8200
  const deadLetteredAt = Date.now();
8201
8201
  setMetaWithLegacy(trackedEnvelope.meta, 'deadLetteredAtMs', 'dead_lettered_at_ms', deadLetteredAt);
8202
8202
  await dlq.set(trackedEnvelope.originalEnvelope.id, trackedEnvelope);
8203
- logger$1b.warning('envelope_moved_to_dlq', {
8203
+ logger$1a.warning('envelope_moved_to_dlq', {
8204
8204
  envp_id: trackedEnvelope.originalEnvelope.id,
8205
8205
  service_name: trackedEnvelope.serviceName,
8206
8206
  });
@@ -8229,7 +8229,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8229
8229
  const toDelete = Object.entries(items).filter(([, value]) => predicate ? predicate(value) : true);
8230
8230
  await Promise.all(toDelete.map(([key]) => dlq.delete(key)));
8231
8231
  if (toDelete.length) {
8232
- logger$1b.debug('dlq_purged', { count: toDelete.length });
8232
+ logger$1a.debug('dlq_purged', { count: toDelete.length });
8233
8233
  }
8234
8234
  return toDelete.length;
8235
8235
  }
@@ -8282,11 +8282,11 @@ class DefaultDeliveryTracker extends TaskSpawner {
8282
8282
  }
8283
8283
  this.futuresSweeper = null;
8284
8284
  }
8285
- logger$1b.debug('tracker_cleanup_completed');
8285
+ logger$1a.debug('tracker_cleanup_completed');
8286
8286
  }
8287
8287
  async recoverPending() {
8288
8288
  const pending = await this.listPending();
8289
- logger$1b.debug('tracker_recovering_pending', { count: pending.length });
8289
+ logger$1a.debug('tracker_recovering_pending', { count: pending.length });
8290
8290
  await this.lock.runExclusive(async () => {
8291
8291
  for (const tracked of pending) {
8292
8292
  if (tracked.expectedResponseType & FameResponseType.ACK) {
@@ -8312,7 +8312,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8312
8312
  for (const tracked of pending) {
8313
8313
  await this.scheduleTimer(tracked, null, null);
8314
8314
  }
8315
- logger$1b.debug('tracker_recovery_completed', { count: pending.length });
8315
+ logger$1a.debug('tracker_recovery_completed', { count: pending.length });
8316
8316
  }
8317
8317
  ensureOutbox() {
8318
8318
  if (!this.outbox) {
@@ -8327,7 +8327,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8327
8327
  return this.inbox;
8328
8328
  }
8329
8329
  async waitForPendingAcks() {
8330
- logger$1b.debug('tracker_node_preparing_to_stop_waiting_for_pending_acks');
8330
+ logger$1a.debug('tracker_node_preparing_to_stop_waiting_for_pending_acks');
8331
8331
  const outbox = this.outbox;
8332
8332
  if (!outbox) {
8333
8333
  return;
@@ -8339,7 +8339,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8339
8339
  continue;
8340
8340
  }
8341
8341
  if (!future.done) {
8342
- logger$1b.debug('tracker_pending_ack_future_detected', {
8342
+ logger$1a.debug('tracker_pending_ack_future_detected', {
8343
8343
  envelope_id: envelopeId,
8344
8344
  });
8345
8345
  pending.push({ envelopeId, future });
@@ -8347,10 +8347,10 @@ class DefaultDeliveryTracker extends TaskSpawner {
8347
8347
  }
8348
8348
  });
8349
8349
  if (!pending.length) {
8350
- logger$1b.debug('tracker_no_pending_acks_to_wait_for');
8350
+ logger$1a.debug('tracker_no_pending_acks_to_wait_for');
8351
8351
  return;
8352
8352
  }
8353
- logger$1b.debug('tracker_waiting_for_pending_acks', { count: pending.length });
8353
+ logger$1a.debug('tracker_waiting_for_pending_acks', { count: pending.length });
8354
8354
  for (const entry of pending) {
8355
8355
  if (!entry) {
8356
8356
  continue;
@@ -8367,19 +8367,19 @@ class DefaultDeliveryTracker extends TaskSpawner {
8367
8367
  }
8368
8368
  try {
8369
8369
  await this.awaitWithTimeout(entry.future.promise, remainingMs);
8370
- logger$1b.debug('tracker_received_ack', {
8370
+ logger$1a.debug('tracker_received_ack', {
8371
8371
  envelope_id: entry.envelopeId,
8372
8372
  });
8373
8373
  await outbox.delete(entry.envelopeId);
8374
8374
  }
8375
8375
  catch (error) {
8376
8376
  if (error instanceof Error && error.name === 'TimeoutError') {
8377
- logger$1b.debug('tracker_ack_timeout_expired', {
8377
+ logger$1a.debug('tracker_ack_timeout_expired', {
8378
8378
  envelope_id: entry.envelopeId,
8379
8379
  });
8380
8380
  }
8381
8381
  else {
8382
- logger$1b.debug('tracker_ack_wait_error', {
8382
+ logger$1a.debug('tracker_ack_wait_error', {
8383
8383
  envelope_id: entry.envelopeId,
8384
8384
  error: error instanceof Error ? error.message : String(error),
8385
8385
  });
@@ -8387,13 +8387,13 @@ class DefaultDeliveryTracker extends TaskSpawner {
8387
8387
  }
8388
8388
  }
8389
8389
  catch (error) {
8390
- logger$1b.error('tracker_error_waiting_for_ack', {
8390
+ logger$1a.error('tracker_error_waiting_for_ack', {
8391
8391
  envelope_id: entry.envelopeId,
8392
8392
  error: error instanceof Error ? error.message : String(error),
8393
8393
  });
8394
8394
  }
8395
8395
  }
8396
- logger$1b.debug('tracker_finished_waiting_for_pending_acks');
8396
+ logger$1a.debug('tracker_finished_waiting_for_pending_acks');
8397
8397
  }
8398
8398
  async waitForPendingAckDispatches() {
8399
8399
  while (this.pendingAckDispatches.size > 0) {
@@ -8451,7 +8451,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8451
8451
  for (const handler of this.eventHandlers) {
8452
8452
  await handler.onEnvelopeTimeout?.(currentTracked);
8453
8453
  }
8454
- logger$1b.debug('tracker_envelope_timed_out', {
8454
+ logger$1a.debug('tracker_envelope_timed_out', {
8455
8455
  envp_id: tracked.originalEnvelope.id,
8456
8456
  });
8457
8457
  return;
@@ -8464,7 +8464,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8464
8464
  currentTracked.timeoutAtMs = nextTimeoutAt;
8465
8465
  await outbox.set(tracked.originalEnvelope.id, currentTracked);
8466
8466
  await this.scheduleTimer(currentTracked, retryPolicy, retryHandler);
8467
- logger$1b.debug('tracker_retry_deferred_during_shutdown', {
8467
+ logger$1a.debug('tracker_retry_deferred_during_shutdown', {
8468
8468
  envp_id: tracked.originalEnvelope.id,
8469
8469
  defer_ms: shutdownDeferMs,
8470
8470
  });
@@ -8487,7 +8487,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8487
8487
  });
8488
8488
  }
8489
8489
  await this.scheduleTimer(currentTracked, retryPolicy, retryHandler);
8490
- logger$1b.debug('envelope_delivery_retry_scheduled', {
8490
+ logger$1a.debug('envelope_delivery_retry_scheduled', {
8491
8491
  envp_id: tracked.originalEnvelope.id,
8492
8492
  attempt: currentTracked.attempt,
8493
8493
  max_retries: retryPolicy.maxRetries,
@@ -8499,7 +8499,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8499
8499
  currentTracked.timeoutAtMs = currentTracked.overallTimeoutAtMs;
8500
8500
  await outbox.set(tracked.originalEnvelope.id, currentTracked);
8501
8501
  await this.scheduleTimer(currentTracked, retryPolicy, retryHandler);
8502
- logger$1b.debug('envelope_retries_exhausted_waiting_until_overall_timeout', {
8502
+ logger$1a.debug('envelope_retries_exhausted_waiting_until_overall_timeout', {
8503
8503
  envp_id: tracked.originalEnvelope.id,
8504
8504
  attempt: currentTracked.attempt,
8505
8505
  overall_timeout_at_ms: currentTracked.overallTimeoutAtMs,
@@ -8519,7 +8519,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8519
8519
  for (const handler of this.eventHandlers) {
8520
8520
  await handler.onEnvelopeTimeout?.(currentTracked);
8521
8521
  }
8522
- logger$1b.debug('tracker_envelope_timed_out', {
8522
+ logger$1a.debug('tracker_envelope_timed_out', {
8523
8523
  envp_id: tracked.originalEnvelope.id,
8524
8524
  });
8525
8525
  }
@@ -8527,7 +8527,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8527
8527
  if (error instanceof TaskCancelledError) {
8528
8528
  return;
8529
8529
  }
8530
- logger$1b.error('tracker_timer_error', {
8530
+ logger$1a.error('tracker_timer_error', {
8531
8531
  envp_id: tracked.originalEnvelope.id,
8532
8532
  error: error instanceof Error ? error.message : String(error),
8533
8533
  });
@@ -8582,7 +8582,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8582
8582
  if (timeoutSeconds !== null) {
8583
8583
  return await this.awaitWithTimeout(future.promise, timeoutSeconds);
8584
8584
  }
8585
- logger$1b.debug('await_envelope_no_timeout_wait', {
8585
+ logger$1a.debug('await_envelope_no_timeout_wait', {
8586
8586
  envelope_id: envelopeId,
8587
8587
  });
8588
8588
  return await future.promise;
@@ -8591,7 +8591,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8591
8591
  if (error instanceof Error && error.name !== 'TimeoutError') {
8592
8592
  throw error;
8593
8593
  }
8594
- logger$1b.error('await_envelope_timeout_error', {
8594
+ logger$1a.error('await_envelope_timeout_error', {
8595
8595
  envelope_id: envelopeId,
8596
8596
  timeout_ms: timeoutSeconds,
8597
8597
  future_done: false,
@@ -8752,7 +8752,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8752
8752
  this.replyDoneSince.delete(envId);
8753
8753
  }
8754
8754
  });
8755
- logger$1b.debug('tracker_swept_completed_futures', {
8755
+ logger$1a.debug('tracker_swept_completed_futures', {
8756
8756
  ack_removed: toRemoveAck.length,
8757
8757
  reply_removed: toRemoveReply.length,
8758
8758
  grace_secs: this.futGcGraceSecs,
@@ -8766,7 +8766,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8766
8766
  if (error instanceof Error && error.name === 'TimeoutError') {
8767
8767
  continue;
8768
8768
  }
8769
- logger$1b.error('tracker_sweeper_error', {
8769
+ logger$1a.error('tracker_sweeper_error', {
8770
8770
  error: error instanceof Error ? error.message : String(error),
8771
8771
  });
8772
8772
  }
@@ -8797,14 +8797,14 @@ class DefaultDeliveryTracker extends TaskSpawner {
8797
8797
  }
8798
8798
  const node = this.node;
8799
8799
  if (!envelope.replyTo) {
8800
- logger$1b.error('cannot_send_ack_no_reply_to', { envp_id: envelope.id });
8800
+ logger$1a.error('cannot_send_ack_no_reply_to', { envp_id: envelope.id });
8801
8801
  return;
8802
8802
  }
8803
8803
  if (!envelope.corrId) {
8804
- logger$1b.error('cannot_send_ack_no_corr_id', { envp_id: envelope.id });
8804
+ logger$1a.error('cannot_send_ack_no_corr_id', { envp_id: envelope.id });
8805
8805
  return;
8806
8806
  }
8807
- logger$1b.debug('tracker_sending_ack', {
8807
+ logger$1a.debug('tracker_sending_ack', {
8808
8808
  envp_id: envelope.id,
8809
8809
  ref_id: envelope.id,
8810
8810
  to: envelope.replyTo,
@@ -8824,7 +8824,7 @@ class DefaultDeliveryTracker extends TaskSpawner {
8824
8824
  .send(ackEnvelope)
8825
8825
  .then(() => undefined)
8826
8826
  .catch((error) => {
8827
- logger$1b.error('tracker_ack_dispatch_failed', {
8827
+ logger$1a.error('tracker_ack_dispatch_failed', {
8828
8828
  envp_id: envelope.id,
8829
8829
  error: error instanceof Error ? error.message : String(error),
8830
8830
  });
@@ -8910,7 +8910,7 @@ class AsyncEvent {
8910
8910
  }
8911
8911
  }
8912
8912
 
8913
- const logger$1a = getLogger('naylence.fame.node.root_session_manager');
8913
+ const logger$19 = getLogger('naylence.fame.node.root_session_manager');
8914
8914
  function resolveOption$1(options, primary, ...aliases) {
8915
8915
  const record = options;
8916
8916
  const primaryKey = primary;
@@ -8991,7 +8991,7 @@ class RootSessionManager extends TaskSpawner {
8991
8991
  this.onAdmissionFailed =
8992
8992
  typeof onAdmissionFailed === 'function' ? onAdmissionFailed : undefined;
8993
8993
  this.enableContinuousRefresh = enableContinuousRefresh ?? true;
8994
- logger$1a.debug('created_root_session_manager');
8994
+ logger$19.debug('created_root_session_manager');
8995
8995
  }
8996
8996
  get isReady() {
8997
8997
  return this.readyEvent.isSet();
@@ -9016,7 +9016,7 @@ class RootSessionManager extends TaskSpawner {
9016
9016
  if (this.admissionTask) {
9017
9017
  return;
9018
9018
  }
9019
- logger$1a.debug('root_session_manager_starting');
9019
+ logger$19.debug('root_session_manager_starting');
9020
9020
  this.stopEvent.clear();
9021
9021
  this.readyEvent.clear();
9022
9022
  const taskName = `root-admission-${this.admissionEpoch}`;
@@ -9036,10 +9036,10 @@ class RootSessionManager extends TaskSpawner {
9036
9036
  await this.admissionTask.promise;
9037
9037
  throw new FameConnectError('Root session manager failed to become ready');
9038
9038
  }
9039
- logger$1a.debug('root_session_manager_started');
9039
+ logger$19.debug('root_session_manager_started');
9040
9040
  }
9041
9041
  async stop() {
9042
- logger$1a.debug('root_session_manager_stopping');
9042
+ logger$19.debug('root_session_manager_stopping');
9043
9043
  this.stopEvent.set();
9044
9044
  if (this.admissionTask) {
9045
9045
  this.admissionTask.cancel();
@@ -9051,7 +9051,7 @@ class RootSessionManager extends TaskSpawner {
9051
9051
  await this.consumeTask(this.expiryGuardTask);
9052
9052
  this.expiryGuardTask = null;
9053
9053
  }
9054
- logger$1a.debug('root_session_manager_stopped');
9054
+ logger$19.debug('root_session_manager_stopped');
9055
9055
  }
9056
9056
  async awaitReady(timeoutMs) {
9057
9057
  if (this.isReady) {
@@ -9092,12 +9092,12 @@ class RootSessionManager extends TaskSpawner {
9092
9092
  await this.onEpochChange(epoch);
9093
9093
  }
9094
9094
  else {
9095
- logger$1a.debug('epoch_change_ignored_no_handler', { epoch });
9095
+ logger$19.debug('epoch_change_ignored_no_handler', { epoch });
9096
9096
  }
9097
9097
  }
9098
9098
  static createForRootSentinel(node, admissionClient, requestedLogicals = [], enableContinuousRefresh = true, onEpochChange) {
9099
9099
  const handleWelcome = async (frame) => {
9100
- logger$1a.info('root_admission_successful', {
9100
+ logger$19.info('root_admission_successful', {
9101
9101
  system_id: frame.systemId,
9102
9102
  assigned_path: frame.assignedPath ?? null,
9103
9103
  accepted_logicals: frame.acceptedLogicals ?? [],
@@ -9108,12 +9108,12 @@ class RootSessionManager extends TaskSpawner {
9108
9108
  ? grant.purpose
9109
9109
  : undefined;
9110
9110
  if (purpose) {
9111
- logger$1a.debug('received_admission_grant', { purpose });
9111
+ logger$19.debug('received_admission_grant', { purpose });
9112
9112
  }
9113
9113
  }
9114
9114
  };
9115
9115
  const handleFailure = async (error) => {
9116
- logger$1a.error('root_admission_failed_permanently', {
9116
+ logger$19.error('root_admission_failed_permanently', {
9117
9117
  error: error.message,
9118
9118
  });
9119
9119
  };
@@ -9142,10 +9142,10 @@ class RootSessionManager extends TaskSpawner {
9142
9142
  this.readyEvent.set();
9143
9143
  }
9144
9144
  if (this.hadSuccessfulAdmission) {
9145
- logger$1a.debug('root_admission_refreshed');
9145
+ logger$19.debug('root_admission_refreshed');
9146
9146
  }
9147
9147
  else {
9148
- logger$1a.debug('root_admission_completed');
9148
+ logger$19.debug('root_admission_completed');
9149
9149
  }
9150
9150
  this.hadSuccessfulAdmission = true;
9151
9151
  delay = RootSessionManager.BACKOFF_INITIAL;
@@ -9154,7 +9154,7 @@ class RootSessionManager extends TaskSpawner {
9154
9154
  await this.startExpiryGuard(welcomeFrame);
9155
9155
  const expiryTriggered = await this.waitForExpiryOrStop();
9156
9156
  if (expiryTriggered && !this.stopEvent.isSet()) {
9157
- logger$1a.debug('performing_scheduled_re_admission');
9157
+ logger$19.debug('performing_scheduled_re_admission');
9158
9158
  continue;
9159
9159
  }
9160
9160
  }
@@ -9166,7 +9166,7 @@ class RootSessionManager extends TaskSpawner {
9166
9166
  }
9167
9167
  const errorObject = error instanceof Error ? error : new Error(String(error));
9168
9168
  const willRetry = attempts < RootSessionManager.RETRY_MAX_ATTEMPTS;
9169
- logger$1a.warning('root_admission_failed', {
9169
+ logger$19.warning('root_admission_failed', {
9170
9170
  error: errorObject.message,
9171
9171
  attempt: attempts,
9172
9172
  will_retry: willRetry,
@@ -9184,7 +9184,7 @@ class RootSessionManager extends TaskSpawner {
9184
9184
  }
9185
9185
  }
9186
9186
  if (attempts >= RootSessionManager.RETRY_MAX_ATTEMPTS) {
9187
- logger$1a.error('root_admission_max_attempts_exceeded', {
9187
+ logger$19.error('root_admission_max_attempts_exceeded', {
9188
9188
  max_attempts: RootSessionManager.RETRY_MAX_ATTEMPTS,
9189
9189
  });
9190
9190
  }
@@ -9261,7 +9261,7 @@ class RootSessionManager extends TaskSpawner {
9261
9261
  }
9262
9262
  async expiryGuard(welcomeFrame, signal) {
9263
9263
  if (!welcomeFrame.expiresAt) {
9264
- logger$1a.debug('no_admission_expiry_configured');
9264
+ logger$19.debug('no_admission_expiry_configured');
9265
9265
  await Promise.race([this.stopEvent.wait(), this.waitForAbort(signal)]);
9266
9266
  return;
9267
9267
  }
@@ -9270,7 +9270,7 @@ class RootSessionManager extends TaskSpawner {
9270
9270
  let delaySeconds = (expiresAt.getTime() - now.getTime()) / 1000 -
9271
9271
  RootSessionManager.JWT_REFRESH_SAFETY;
9272
9272
  delaySeconds = Math.max(delaySeconds, 0);
9273
- logger$1a.debug('admission_expiry_guard_started', {
9273
+ logger$19.debug('admission_expiry_guard_started', {
9274
9274
  welcome_expires_at: expiresAt.toISOString(),
9275
9275
  delay_seconds: delaySeconds,
9276
9276
  refresh_safety_seconds: RootSessionManager.JWT_REFRESH_SAFETY,
@@ -9279,7 +9279,7 @@ class RootSessionManager extends TaskSpawner {
9279
9279
  if (this.stopEvent.isSet() || signal?.aborted) {
9280
9280
  return;
9281
9281
  }
9282
- logger$1a.debug('admission_expiry_triggered_refresh', {
9282
+ logger$19.debug('admission_expiry_triggered_refresh', {
9283
9283
  expires_at: expiresAt.toISOString(),
9284
9284
  current_time: new Date().toISOString(),
9285
9285
  seconds_before_expiry: RootSessionManager.JWT_REFRESH_SAFETY,
@@ -9294,7 +9294,7 @@ class RootSessionManager extends TaskSpawner {
9294
9294
  return;
9295
9295
  }
9296
9296
  const errorObject = error instanceof Error ? error : new Error(String(error));
9297
- logger$1a.debug('background_task_error', {
9297
+ logger$19.debug('background_task_error', {
9298
9298
  task_name: task.name,
9299
9299
  error: errorObject.message,
9300
9300
  });
@@ -9335,7 +9335,7 @@ RootSessionManager.JWT_REFRESH_SAFETY = 60.0;
9335
9335
  * Concrete implementations must define supported grant types and provide grant-to-connector
9336
9336
  * conversion logic.
9337
9337
  */
9338
- const logger$19 = getLogger('naylence.fame.connector.connector_factory');
9338
+ const logger$18 = getLogger('naylence.fame.connector.connector_factory');
9339
9339
  const CONNECTOR_FACTORY_BASE_TYPE = 'ConnectorFactory';
9340
9340
  /**
9341
9341
  * Abstract base class for connector factories
@@ -9371,7 +9371,7 @@ class ConnectorFactory {
9371
9371
  }
9372
9372
  }
9373
9373
  catch (error) {
9374
- logger$19.warning(`Failed to evaluate grant with factory ${factoryInfo.constructor.name}: ${error}`);
9374
+ logger$18.warning(`Failed to evaluate grant with factory ${factoryInfo.constructor.name}: ${error}`);
9375
9375
  continue;
9376
9376
  }
9377
9377
  }
@@ -9414,7 +9414,7 @@ class ConnectorFactory {
9414
9414
  }
9415
9415
  }
9416
9416
  catch (error) {
9417
- logger$19.warning(`Failed to create connector config from grant: ${error}`);
9417
+ logger$18.warning(`Failed to create connector config from grant: ${error}`);
9418
9418
  continue;
9419
9419
  }
9420
9420
  }
@@ -9481,20 +9481,20 @@ class ConnectorFactory {
9481
9481
  return existing;
9482
9482
  }
9483
9483
  if (existing && !this.isGrantAware(existing)) {
9484
- logger$19.warning(`Factory ${factoryInfo.constructor.name} is registered under ${CONNECTOR_FACTORY_BASE_TYPE} but is missing grant conversion APIs; skipping.`);
9484
+ logger$18.warning(`Factory ${factoryInfo.constructor.name} is registered under ${CONNECTOR_FACTORY_BASE_TYPE} but is missing grant conversion APIs; skipping.`);
9485
9485
  return null;
9486
9486
  }
9487
9487
  try {
9488
9488
  const instance = new factoryInfo.constructor();
9489
9489
  if (!this.isGrantAware(instance)) {
9490
- logger$19.warning(`Factory ${factoryInfo.constructor.name} does not implement grant conversion APIs required by ${CONNECTOR_FACTORY_BASE_TYPE}; skipping.`);
9490
+ logger$18.warning(`Factory ${factoryInfo.constructor.name} does not implement grant conversion APIs required by ${CONNECTOR_FACTORY_BASE_TYPE}; skipping.`);
9491
9491
  return null;
9492
9492
  }
9493
9493
  factoryInfo.instance = instance;
9494
9494
  return instance;
9495
9495
  }
9496
9496
  catch (error) {
9497
- logger$19.warning(`Failed to instantiate factory ${factoryInfo.constructor.name} while resolving grant conversion APIs: ${error}`);
9497
+ logger$18.warning(`Failed to instantiate factory ${factoryInfo.constructor.name} while resolving grant conversion APIs: ${error}`);
9498
9498
  return null;
9499
9499
  }
9500
9500
  }
@@ -9597,7 +9597,7 @@ class TaskCancellationError extends Error {
9597
9597
  this.name = 'TaskCancellationError';
9598
9598
  }
9599
9599
  }
9600
- const logger$18 = getLogger('naylence.fame.connector.base_async_connector');
9600
+ const logger$17 = getLogger('naylence.fame.connector.base_async_connector');
9601
9601
  // Environment variables
9602
9602
  const ENV_VAR_FAME_FLOW_CONTROL = 'FAME_FLOW_CONTROL';
9603
9603
  const FLOW_CONTROL_ENABLED = typeof process !== 'undefined' && process?.env
@@ -9680,7 +9680,7 @@ class BaseAsyncConnector extends TaskSpawner {
9680
9680
  if (this._state !== newState) {
9681
9681
  const oldState = this._state;
9682
9682
  this._state = newState;
9683
- logger$18.debug('connector_state_transition', {
9683
+ logger$17.debug('connector_state_transition', {
9684
9684
  connector_id: this._connectorFlowId,
9685
9685
  old_state: oldState,
9686
9686
  new_state: newState,
@@ -9719,12 +9719,12 @@ class BaseAsyncConnector extends TaskSpawner {
9719
9719
  * Stop the connector gracefully
9720
9720
  */
9721
9721
  async stop() {
9722
- logger$18.debug('stopping_connector', {
9722
+ logger$17.debug('stopping_connector', {
9723
9723
  current_state: this._state,
9724
9724
  connector_id: this._connectorFlowId,
9725
9725
  });
9726
9726
  if (!ConnectorStateUtils.canStop(this._state)) {
9727
- logger$18.debug('connector_stop_already_stopped', {
9727
+ logger$17.debug('connector_stop_already_stopped', {
9728
9728
  current_state: this._state,
9729
9729
  connector_id: this._connectorFlowId,
9730
9730
  });
@@ -9735,7 +9735,7 @@ class BaseAsyncConnector extends TaskSpawner {
9735
9735
  if (this._lastError) {
9736
9736
  throw this._lastError;
9737
9737
  }
9738
- logger$18.debug('connector_stopped', {
9738
+ logger$17.debug('connector_stopped', {
9739
9739
  current_state: this._state,
9740
9740
  connector_id: this._connectorFlowId,
9741
9741
  });
@@ -9744,19 +9744,19 @@ class BaseAsyncConnector extends TaskSpawner {
9744
9744
  * Pause the connector (suspends heartbeat and housekeeping, but keeps connection alive)
9745
9745
  */
9746
9746
  async pause() {
9747
- logger$18.debug('pausing_connector', {
9747
+ logger$17.debug('pausing_connector', {
9748
9748
  current_state: this._state,
9749
9749
  connector_id: this._connectorFlowId,
9750
9750
  });
9751
9751
  if (this._state !== ConnectorState.STARTED) {
9752
- logger$18.debug('connector_pause_invalid_state', {
9752
+ logger$17.debug('connector_pause_invalid_state', {
9753
9753
  current_state: this._state,
9754
9754
  connector_id: this._connectorFlowId,
9755
9755
  });
9756
9756
  return;
9757
9757
  }
9758
9758
  this._setState(ConnectorState.PAUSED);
9759
- logger$18.debug('connector_paused', {
9759
+ logger$17.debug('connector_paused', {
9760
9760
  current_state: this._state,
9761
9761
  connector_id: this._connectorFlowId,
9762
9762
  });
@@ -9765,19 +9765,19 @@ class BaseAsyncConnector extends TaskSpawner {
9765
9765
  * Resume the connector from paused state
9766
9766
  */
9767
9767
  async resume() {
9768
- logger$18.debug('resuming_connector', {
9768
+ logger$17.debug('resuming_connector', {
9769
9769
  current_state: this._state,
9770
9770
  connector_id: this._connectorFlowId,
9771
9771
  });
9772
9772
  if (this._state !== ConnectorState.PAUSED) {
9773
- logger$18.debug('connector_resume_invalid_state', {
9773
+ logger$17.debug('connector_resume_invalid_state', {
9774
9774
  current_state: this._state,
9775
9775
  connector_id: this._connectorFlowId,
9776
9776
  });
9777
9777
  return;
9778
9778
  }
9779
9779
  this._setState(ConnectorState.STARTED);
9780
- logger$18.debug('connector_resumed', {
9780
+ logger$17.debug('connector_resumed', {
9781
9781
  current_state: this._state,
9782
9782
  connector_id: this._connectorFlowId,
9783
9783
  });
@@ -9787,7 +9787,7 @@ class BaseAsyncConnector extends TaskSpawner {
9787
9787
  */
9788
9788
  async close(code = 1000, reason = 'normal closure') {
9789
9789
  if (!ConnectorStateUtils.canClose(this._state)) {
9790
- logger$18.warning('connector_close_invalid_state', {
9790
+ logger$17.warning('connector_close_invalid_state', {
9791
9791
  current_state: this._state,
9792
9792
  connector_id: this._connectorFlowId,
9793
9793
  });
@@ -9868,7 +9868,7 @@ class BaseAsyncConnector extends TaskSpawner {
9868
9868
  // Add to queue and notify send loop
9869
9869
  this._sendQueue.push(raw);
9870
9870
  // Log for debugging
9871
- logger$18.debug('send_envelope_queued', {
9871
+ logger$17.debug('send_envelope_queued', {
9872
9872
  queue_length: this._sendQueue.length,
9873
9873
  max_queue_size: this._maxQueueSize,
9874
9874
  });
@@ -9917,14 +9917,14 @@ class BaseAsyncConnector extends TaskSpawner {
9917
9917
  const item = this._sendQueue[0];
9918
9918
  if (!item)
9919
9919
  continue;
9920
- logger$18.debug('send_loop_processing_item', {
9920
+ logger$17.debug('send_loop_processing_item', {
9921
9921
  queue_length_before_send: this._sendQueue.length,
9922
9922
  });
9923
9923
  // Send through transport (this may block)
9924
9924
  await this._transportSendBytes(item);
9925
9925
  // Only remove from queue after successful send
9926
9926
  this._sendQueue.shift();
9927
- logger$18.debug('send_loop_item_sent', {
9927
+ logger$17.debug('send_loop_item_sent', {
9928
9928
  queue_length_after_send: this._sendQueue.length,
9929
9929
  });
9930
9930
  }
@@ -9937,14 +9937,14 @@ class BaseAsyncConnector extends TaskSpawner {
9937
9937
  }
9938
9938
  else if (error instanceof TaskCancellationError) {
9939
9939
  // Task cancellation is expected during shutdown - log as debug, not critical
9940
- logger$18.debug('send loop cancelled', {
9940
+ logger$17.debug('send loop cancelled', {
9941
9941
  connector: this.constructor.name,
9942
9942
  reason: error.message,
9943
9943
  });
9944
9944
  // Don't re-throw - this is normal during shutdown
9945
9945
  }
9946
9946
  else {
9947
- logger$18.critical('unexpected exception in send loop', {
9947
+ logger$17.critical('unexpected exception in send loop', {
9948
9948
  connector: this.constructor.name,
9949
9949
  error: error instanceof Error ? error.message : String(error),
9950
9950
  });
@@ -9985,7 +9985,7 @@ class BaseAsyncConnector extends TaskSpawner {
9985
9985
  env = JSON.parse(jsonStr);
9986
9986
  }
9987
9987
  catch (error) {
9988
- logger$18.error('Invalid envelope', {
9988
+ logger$17.error('Invalid envelope', {
9989
9989
  message: message.toString(),
9990
9990
  error: error instanceof Error ? error.message : String(error),
9991
9991
  });
@@ -10009,7 +10009,7 @@ class BaseAsyncConnector extends TaskSpawner {
10009
10009
  };
10010
10010
  await withEnvelopeContextAsync(envelopeContext, async () => {
10011
10011
  const prettyEnvelope = prettyModel$1(env);
10012
- logger$18.trace('connector_received_envelope', {
10012
+ logger$17.trace('connector_received_envelope', {
10013
10013
  envelope: env,
10014
10014
  pretty: prettyEnvelope,
10015
10015
  });
@@ -10038,7 +10038,7 @@ class BaseAsyncConnector extends TaskSpawner {
10038
10038
  if (error instanceof TaskCancellationError) {
10039
10039
  throw error;
10040
10040
  }
10041
- logger$18.error('handler_failed', {
10041
+ logger$17.error('handler_failed', {
10042
10042
  error: error instanceof Error ? error.message : String(error),
10043
10043
  envelope_id: env.id ?? null,
10044
10044
  trace_id: env.traceId ?? null,
@@ -10059,14 +10059,14 @@ class BaseAsyncConnector extends TaskSpawner {
10059
10059
  }
10060
10060
  else if (error instanceof TaskCancellationError) {
10061
10061
  // Task cancellation is expected during shutdown - log as debug, not critical
10062
- logger$18.debug('receive loop cancelled', {
10062
+ logger$17.debug('receive loop cancelled', {
10063
10063
  connector: this.constructor.name,
10064
10064
  reason: error.message,
10065
10065
  });
10066
10066
  // Don't re-throw - this is normal during shutdown
10067
10067
  }
10068
10068
  else {
10069
- logger$18.critical('unexpected_error_in recv_loop', {
10069
+ logger$17.critical('unexpected_error_in recv_loop', {
10070
10070
  error: error instanceof Error ? error.message : String(error),
10071
10071
  });
10072
10072
  throw error;
@@ -10082,7 +10082,7 @@ class BaseAsyncConnector extends TaskSpawner {
10082
10082
  async _maybeEmitCredit(flowId, traceId) {
10083
10083
  const remainingCredits = this._flowCtrl.getCredits(flowId);
10084
10084
  const needsRefill = this._flowCtrl.needsRefill(flowId);
10085
- logger$18.debug('maybe_emit_credit_check', {
10085
+ logger$17.debug('maybe_emit_credit_check', {
10086
10086
  connector_id: this._connectorFlowId,
10087
10087
  flow_id: flowId,
10088
10088
  trace_id: traceId ?? null,
@@ -10098,7 +10098,7 @@ class BaseAsyncConnector extends TaskSpawner {
10098
10098
  }
10099
10099
  const delta = this._initialWindow;
10100
10100
  this._flowCtrl.addCredits(flowId, delta);
10101
- logger$18.debug('maybe_emit_credit_emit', {
10101
+ logger$17.debug('maybe_emit_credit_emit', {
10102
10102
  connector_id: this._connectorFlowId,
10103
10103
  flow_id: flowId,
10104
10104
  trace_id: traceId ?? null,
@@ -10118,7 +10118,7 @@ class BaseAsyncConnector extends TaskSpawner {
10118
10118
  });
10119
10119
  try {
10120
10120
  await this.send(ackEnv);
10121
- logger$18.debug('maybe_emit_credit_sent', {
10121
+ logger$17.debug('maybe_emit_credit_sent', {
10122
10122
  connector_id: this._connectorFlowId,
10123
10123
  flow_id: flowId,
10124
10124
  trace_id: traceId ?? null,
@@ -10126,7 +10126,7 @@ class BaseAsyncConnector extends TaskSpawner {
10126
10126
  });
10127
10127
  }
10128
10128
  catch (error) {
10129
- logger$18.error('maybe_emit_credit_send_failed', {
10129
+ logger$17.error('maybe_emit_credit_send_failed', {
10130
10130
  connector_id: this._connectorFlowId,
10131
10131
  flow_id: flowId,
10132
10132
  trace_id: traceId ?? null,
@@ -10151,13 +10151,13 @@ class BaseAsyncConnector extends TaskSpawner {
10151
10151
  */
10152
10152
  async _shutdown(code, reason, gracePeriod, exc) {
10153
10153
  if (this._closed) {
10154
- logger$18.debug('shutdown_already_closed', {
10154
+ logger$17.debug('shutdown_already_closed', {
10155
10155
  connector_id: this._connectorFlowId,
10156
10156
  current_state: this._state,
10157
10157
  });
10158
10158
  return;
10159
10159
  }
10160
- logger$18.debug('connector_shutdown_starting', {
10160
+ logger$17.debug('connector_shutdown_starting', {
10161
10161
  connector_id: this._connectorFlowId,
10162
10162
  connector_type: this.constructor.name,
10163
10163
  code,
@@ -10187,19 +10187,19 @@ class BaseAsyncConnector extends TaskSpawner {
10187
10187
  this._sendPromiseResolve = undefined;
10188
10188
  }
10189
10189
  // Close transport
10190
- logger$18.debug('connector_closing_transport', {
10190
+ logger$17.debug('connector_closing_transport', {
10191
10191
  connector_id: this._connectorFlowId,
10192
10192
  connector_type: this.constructor.name,
10193
10193
  timestamp: new Date().toISOString(),
10194
10194
  });
10195
10195
  await this._transportClose(code, reason);
10196
- logger$18.debug('connector_transport_closed', {
10196
+ logger$17.debug('connector_transport_closed', {
10197
10197
  connector_id: this._connectorFlowId,
10198
10198
  connector_type: this.constructor.name,
10199
10199
  timestamp: new Date().toISOString(),
10200
10200
  });
10201
10201
  // Shutdown spawned tasks
10202
- logger$18.debug('connector_shutting_down_tasks', {
10202
+ logger$17.debug('connector_shutting_down_tasks', {
10203
10203
  connector_id: this._connectorFlowId,
10204
10204
  connector_type: this.constructor.name,
10205
10205
  grace_period_ms: effectiveGracePeriod * 1000,
@@ -10211,14 +10211,14 @@ class BaseAsyncConnector extends TaskSpawner {
10211
10211
  gracePeriod: effectiveGracePeriod * 1000, // Convert to milliseconds
10212
10212
  joinTimeout: this._shutdownJoinTimeout,
10213
10213
  });
10214
- logger$18.debug('connector_tasks_shutdown_complete', {
10214
+ logger$17.debug('connector_tasks_shutdown_complete', {
10215
10215
  connector_id: this._connectorFlowId,
10216
10216
  connector_type: this.constructor.name,
10217
10217
  timestamp: new Date().toISOString(),
10218
10218
  });
10219
10219
  }
10220
10220
  catch (error) {
10221
- logger$18.warning('task_shutdown_error', {
10221
+ logger$17.warning('task_shutdown_error', {
10222
10222
  connector_id: this._connectorFlowId,
10223
10223
  error: error instanceof Error ? error.message : String(error),
10224
10224
  });
@@ -10231,7 +10231,7 @@ class BaseAsyncConnector extends TaskSpawner {
10231
10231
  if (this._closeResolver) {
10232
10232
  this._closeResolver();
10233
10233
  }
10234
- logger$18.debug('connector_shutdown_complete', {
10234
+ logger$17.debug('connector_shutdown_complete', {
10235
10235
  connector_id: this._connectorFlowId,
10236
10236
  connector_type: this.constructor.name,
10237
10237
  final_state: this._state,
@@ -10307,7 +10307,7 @@ class BoundedAsyncQueue {
10307
10307
  }
10308
10308
  }
10309
10309
 
10310
- const logger$17 = getLogger('naylence.fame.connector.broadcast_channel_connector');
10310
+ const logger$16 = getLogger('naylence.fame.connector.broadcast_channel_connector');
10311
10311
  const BROADCAST_CHANNEL_CONNECTOR_TYPE = 'broadcast-channel-connector';
10312
10312
  const DEFAULT_CHANNEL$7 = 'naylence-fabric';
10313
10313
  const DEFAULT_INBOX_CAPACITY$7 = 2048;
@@ -10396,7 +10396,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10396
10396
  this.localNodeId = normalizedLocalNodeId;
10397
10397
  this.targetNodeId = BroadcastChannelConnector.normalizeTargetNodeId(config.initialTargetNodeId);
10398
10398
  this.channel = new BroadcastChannel(this.channelName);
10399
- logger$17.debug('broadcast_channel_connector_created', {
10399
+ logger$16.debug('broadcast_channel_connector_created', {
10400
10400
  channel: this.channelName,
10401
10401
  connector_id: this.connectorId,
10402
10402
  local_node_id: this.localNodeId,
@@ -10408,7 +10408,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10408
10408
  this.onMsg = (event) => {
10409
10409
  // Guard: Don't process if listener was unregistered
10410
10410
  if (!this.listenerRegistered) {
10411
- logger$17.warning('broadcast_channel_message_after_unregister', {
10411
+ logger$16.warning('broadcast_channel_message_after_unregister', {
10412
10412
  channel: this.channelName,
10413
10413
  connector_id: this.connectorId,
10414
10414
  timestamp: new Date().toISOString(),
@@ -10416,7 +10416,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10416
10416
  return;
10417
10417
  }
10418
10418
  const message = event.data;
10419
- logger$17.debug('broadcast_channel_raw_event', {
10419
+ logger$16.debug('broadcast_channel_raw_event', {
10420
10420
  channel: this.channelName,
10421
10421
  connector_id: this.connectorId,
10422
10422
  message_type: message && typeof message === 'object'
@@ -10432,7 +10432,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10432
10432
  const busMessage = message;
10433
10433
  const senderNodeId = BroadcastChannelConnector.normalizeNodeId(busMessage.senderNodeId);
10434
10434
  if (!senderNodeId) {
10435
- logger$17.debug('broadcast_channel_message_rejected', {
10435
+ logger$16.debug('broadcast_channel_message_rejected', {
10436
10436
  channel: this.channelName,
10437
10437
  connector_id: this.connectorId,
10438
10438
  reason: 'missing_sender_node_id',
@@ -10440,7 +10440,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10440
10440
  return;
10441
10441
  }
10442
10442
  if (senderNodeId === this.localNodeId) {
10443
- logger$17.debug('broadcast_channel_message_rejected', {
10443
+ logger$16.debug('broadcast_channel_message_rejected', {
10444
10444
  channel: this.channelName,
10445
10445
  connector_id: this.connectorId,
10446
10446
  reason: 'self_echo',
@@ -10454,14 +10454,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10454
10454
  }
10455
10455
  const payload = BroadcastChannelConnector.coercePayload(busMessage.payload);
10456
10456
  if (!payload) {
10457
- logger$17.debug('broadcast_channel_payload_rejected', {
10457
+ logger$16.debug('broadcast_channel_payload_rejected', {
10458
10458
  channel: this.channelName,
10459
10459
  connector_id: this.connectorId,
10460
10460
  reason: 'unrecognized_payload_type',
10461
10461
  });
10462
10462
  return;
10463
10463
  }
10464
- logger$17.debug('broadcast_channel_message_received', {
10464
+ logger$16.debug('broadcast_channel_message_received', {
10465
10465
  channel: this.channelName,
10466
10466
  sender_id: message?.senderId,
10467
10467
  sender_node_id: senderNodeId,
@@ -10490,14 +10490,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10490
10490
  }
10491
10491
  catch (error) {
10492
10492
  if (error instanceof QueueFullError) {
10493
- logger$17.warning('broadcast_channel_receive_queue_full', {
10493
+ logger$16.warning('broadcast_channel_receive_queue_full', {
10494
10494
  channel: this.channelName,
10495
10495
  inbox_capacity: this.inboxCapacity,
10496
10496
  inbox_remaining_capacity: this.inbox.remainingCapacity,
10497
10497
  });
10498
10498
  }
10499
10499
  else {
10500
- logger$17.error('broadcast_channel_receive_error', {
10500
+ logger$16.error('broadcast_channel_receive_error', {
10501
10501
  channel: this.channelName,
10502
10502
  error: error instanceof Error ? error.message : String(error),
10503
10503
  });
@@ -10511,7 +10511,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10511
10511
  // Setup visibility change monitoring
10512
10512
  this.visibilityChangeHandler = () => {
10513
10513
  const isHidden = document.hidden;
10514
- logger$17.debug('broadcast_channel_visibility_changed', {
10514
+ logger$16.debug('broadcast_channel_visibility_changed', {
10515
10515
  channel: this.channelName,
10516
10516
  connector_id: this.connectorId,
10517
10517
  visibility: isHidden ? 'hidden' : 'visible',
@@ -10520,7 +10520,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10520
10520
  // Pause/resume connector based on visibility
10521
10521
  if (isHidden && this.state === ConnectorState.STARTED) {
10522
10522
  this.pause().catch((err) => {
10523
- logger$17.warning('broadcast_channel_pause_failed', {
10523
+ logger$16.warning('broadcast_channel_pause_failed', {
10524
10524
  channel: this.channelName,
10525
10525
  connector_id: this.connectorId,
10526
10526
  error: err instanceof Error ? err.message : String(err),
@@ -10529,7 +10529,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10529
10529
  }
10530
10530
  else if (!isHidden && this.state === ConnectorState.PAUSED) {
10531
10531
  this.resume().catch((err) => {
10532
- logger$17.warning('broadcast_channel_resume_failed', {
10532
+ logger$16.warning('broadcast_channel_resume_failed', {
10533
10533
  channel: this.channelName,
10534
10534
  connector_id: this.connectorId,
10535
10535
  error: err instanceof Error ? err.message : String(err),
@@ -10543,7 +10543,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10543
10543
  // Track page lifecycle events to detect browser unload/discard
10544
10544
  if (typeof window !== 'undefined') {
10545
10545
  const lifecycleLogger = (event) => {
10546
- logger$17.debug('broadcast_channel_page_lifecycle', {
10546
+ logger$16.debug('broadcast_channel_page_lifecycle', {
10547
10547
  channel: this.channelName,
10548
10548
  connector_id: this.connectorId,
10549
10549
  event_type: event.type,
@@ -10559,7 +10559,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10559
10559
  document.addEventListener('resume', lifecycleLogger);
10560
10560
  }
10561
10561
  // Log initial state with detailed visibility info
10562
- logger$17.debug('broadcast_channel_initial_visibility', {
10562
+ logger$16.debug('broadcast_channel_initial_visibility', {
10563
10563
  channel: this.channelName,
10564
10564
  connector_id: this.connectorId,
10565
10565
  visibility: document.hidden ? 'hidden' : 'visible',
@@ -10591,14 +10591,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10591
10591
  }
10592
10592
  catch (error) {
10593
10593
  if (error instanceof QueueFullError) {
10594
- logger$17.warning('broadcast_channel_push_queue_full', {
10594
+ logger$16.warning('broadcast_channel_push_queue_full', {
10595
10595
  channel: this.channelName,
10596
10596
  inbox_capacity: this.inboxCapacity,
10597
10597
  inbox_remaining_capacity: this.inbox.remainingCapacity,
10598
10598
  });
10599
10599
  throw error;
10600
10600
  }
10601
- logger$17.error('broadcast_channel_push_failed', {
10601
+ logger$16.error('broadcast_channel_push_failed', {
10602
10602
  channel: this.channelName,
10603
10603
  error: error instanceof Error ? error.message : String(error),
10604
10604
  });
@@ -10608,7 +10608,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10608
10608
  async _transportSendBytes(data) {
10609
10609
  ensureBroadcastEnvironment();
10610
10610
  const targetNodeId = this.targetNodeId ?? '*';
10611
- logger$17.debug('broadcast_channel_message_sending', {
10611
+ logger$16.debug('broadcast_channel_message_sending', {
10612
10612
  channel: this.channelName,
10613
10613
  sender_id: this.connectorId,
10614
10614
  sender_node_id: this.localNodeId,
@@ -10629,7 +10629,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10629
10629
  return item;
10630
10630
  }
10631
10631
  async _transportClose(code, reason) {
10632
- logger$17.debug('broadcast_channel_transport_closing', {
10632
+ logger$16.debug('broadcast_channel_transport_closing', {
10633
10633
  channel: this.channelName,
10634
10634
  connector_id: this.connectorId,
10635
10635
  code,
@@ -10638,14 +10638,14 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10638
10638
  timestamp: new Date().toISOString(),
10639
10639
  });
10640
10640
  if (this.listenerRegistered) {
10641
- logger$17.debug('broadcast_channel_removing_listener', {
10641
+ logger$16.debug('broadcast_channel_removing_listener', {
10642
10642
  channel: this.channelName,
10643
10643
  connector_id: this.connectorId,
10644
10644
  timestamp: new Date().toISOString(),
10645
10645
  });
10646
10646
  this.channel.removeEventListener('message', this.onMsg);
10647
10647
  this.listenerRegistered = false;
10648
- logger$17.debug('broadcast_channel_listener_removed', {
10648
+ logger$16.debug('broadcast_channel_listener_removed', {
10649
10649
  channel: this.channelName,
10650
10650
  connector_id: this.connectorId,
10651
10651
  timestamp: new Date().toISOString(),
@@ -10658,13 +10658,13 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10658
10658
  this.visibilityChangeListenerRegistered = false;
10659
10659
  this.visibilityChangeHandler = undefined;
10660
10660
  }
10661
- logger$17.debug('broadcast_channel_closing', {
10661
+ logger$16.debug('broadcast_channel_closing', {
10662
10662
  channel: this.channelName,
10663
10663
  connector_id: this.connectorId,
10664
10664
  timestamp: new Date().toISOString(),
10665
10665
  });
10666
10666
  this.channel.close();
10667
- logger$17.debug('broadcast_channel_closed', {
10667
+ logger$16.debug('broadcast_channel_closed', {
10668
10668
  channel: this.channelName,
10669
10669
  connector_id: this.connectorId,
10670
10670
  timestamp: new Date().toISOString(),
@@ -10688,7 +10688,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10688
10688
  if (targetNodeId &&
10689
10689
  targetNodeId !== '*' &&
10690
10690
  targetNodeId !== this.localNodeId) {
10691
- logger$17.debug('broadcast_channel_message_rejected', {
10691
+ logger$16.debug('broadcast_channel_message_rejected', {
10692
10692
  channel: this.channelName,
10693
10693
  connector_id: this.connectorId,
10694
10694
  reason: 'wildcard_target_mismatch',
@@ -10704,7 +10704,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10704
10704
  if (expectedSender &&
10705
10705
  expectedSender !== '*' &&
10706
10706
  senderNodeId !== expectedSender) {
10707
- logger$17.debug('broadcast_channel_message_rejected', {
10707
+ logger$16.debug('broadcast_channel_message_rejected', {
10708
10708
  channel: this.channelName,
10709
10709
  connector_id: this.connectorId,
10710
10710
  reason: 'unexpected_sender',
@@ -10717,7 +10717,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10717
10717
  if (targetNodeId &&
10718
10718
  targetNodeId !== '*' &&
10719
10719
  targetNodeId !== this.localNodeId) {
10720
- logger$17.debug('broadcast_channel_message_rejected', {
10720
+ logger$16.debug('broadcast_channel_message_rejected', {
10721
10721
  channel: this.channelName,
10722
10722
  connector_id: this.connectorId,
10723
10723
  reason: 'unexpected_target',
@@ -10742,7 +10742,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10742
10742
  return 'unknown';
10743
10743
  }
10744
10744
  logInboxSnapshot(event, extra = {}) {
10745
- logger$17.debug(event, {
10745
+ logger$16.debug(event, {
10746
10746
  channel: this.channelName,
10747
10747
  connector_id: this.connectorId,
10748
10748
  connector_state: this.state,
@@ -10758,7 +10758,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10758
10758
  await super.start(inboundHandler);
10759
10759
  // After transitioning to STARTED, check if tab is already hidden
10760
10760
  if (typeof document !== 'undefined' && document.hidden) {
10761
- logger$17.debug('broadcast_channel_start_in_hidden_tab', {
10761
+ logger$16.debug('broadcast_channel_start_in_hidden_tab', {
10762
10762
  channel: this.channelName,
10763
10763
  connector_id: this.connectorId,
10764
10764
  document_hidden: document.hidden,
@@ -10768,7 +10768,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10768
10768
  });
10769
10769
  // Immediately pause if tab is hidden at start time
10770
10770
  await this.pause().catch((err) => {
10771
- logger$17.warning('broadcast_channel_initial_pause_failed', {
10771
+ logger$16.warning('broadcast_channel_initial_pause_failed', {
10772
10772
  channel: this.channelName,
10773
10773
  connector_id: this.connectorId,
10774
10774
  error: err instanceof Error ? err.message : String(err),
@@ -10786,7 +10786,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10786
10786
  return;
10787
10787
  }
10788
10788
  this.targetNodeId = normalized;
10789
- logger$17.debug('broadcast_channel_target_updated', {
10789
+ logger$16.debug('broadcast_channel_target_updated', {
10790
10790
  channel: this.channelName,
10791
10791
  connector_id: this.connectorId,
10792
10792
  local_node_id: this.localNodeId,
@@ -10796,7 +10796,7 @@ let BroadcastChannelConnector$2 = class BroadcastChannelConnector extends BaseAs
10796
10796
  }
10797
10797
  setWildcardTarget() {
10798
10798
  this.targetNodeId = '*';
10799
- logger$17.debug('broadcast_channel_target_updated', {
10799
+ logger$16.debug('broadcast_channel_target_updated', {
10800
10800
  channel: this.channelName,
10801
10801
  connector_id: this.connectorId,
10802
10802
  local_node_id: this.localNodeId,
@@ -10969,7 +10969,7 @@ function broadcastChannelGrantToConnectorConfig(grant) {
10969
10969
  return config;
10970
10970
  }
10971
10971
 
10972
- const logger$16 = getLogger('naylence.fame.node.upstream_session_manager');
10972
+ const logger$15 = getLogger('naylence.fame.node.upstream_session_manager');
10973
10973
  function isPlainRecord$4(value) {
10974
10974
  if (typeof value !== 'object' || value === null) {
10975
10975
  return false;
@@ -11090,7 +11090,7 @@ class UpstreamSessionManager extends TaskSpawner {
11090
11090
  this.wrappedHandler = this.makeHeartbeatEnabledHandler(options.inboundHandler);
11091
11091
  // Store the connection retry policy (can be null, in which case default behavior applies)
11092
11092
  this.connectionRetryPolicy = options.retryPolicy ?? null;
11093
- logger$16.debug('created_upstream_session_manager', {
11093
+ logger$15.debug('created_upstream_session_manager', {
11094
11094
  target_system_id: this.targetSystemId,
11095
11095
  has_retry_policy: this.connectionRetryPolicy !== null,
11096
11096
  });
@@ -11099,23 +11099,23 @@ class UpstreamSessionManager extends TaskSpawner {
11099
11099
  return this.targetSystemId;
11100
11100
  }
11101
11101
  setupVisibilityListener() {
11102
- logger$16.debug('setup_visibility_listener_called', {
11102
+ logger$15.debug('setup_visibility_listener_called', {
11103
11103
  has_document: typeof document !== 'undefined',
11104
11104
  });
11105
11105
  if (typeof document !== 'undefined' && document.addEventListener) {
11106
11106
  this._visibilityHandler = () => {
11107
- logger$16.debug('visibility_change_event_fired', {
11107
+ logger$15.debug('visibility_change_event_fired', {
11108
11108
  state: document.visibilityState,
11109
11109
  });
11110
11110
  if (document.visibilityState === 'visible') {
11111
- logger$16.debug('visibility_change_detected_waking_up');
11111
+ logger$15.debug('visibility_change_detected_waking_up');
11112
11112
  this.wakeEvent.set();
11113
11113
  }
11114
11114
  };
11115
11115
  document.addEventListener('visibilitychange', this._visibilityHandler);
11116
11116
  }
11117
11117
  else {
11118
- logger$16.debug('setup_visibility_listener_skipped_no_document');
11118
+ logger$15.debug('setup_visibility_listener_skipped_no_document');
11119
11119
  }
11120
11120
  }
11121
11121
  teardownVisibilityListener() {
@@ -11148,13 +11148,13 @@ class UpstreamSessionManager extends TaskSpawner {
11148
11148
  }
11149
11149
  throw new FameConnectError('Upstream session manager failed to attach');
11150
11150
  }
11151
- logger$16.debug('upstream_session_manager_started');
11151
+ logger$15.debug('upstream_session_manager_started');
11152
11152
  }
11153
11153
  getActiveConnector() {
11154
11154
  return this.connector;
11155
11155
  }
11156
11156
  async stop() {
11157
- logger$16.debug('upstream_session_manager_stopping');
11157
+ logger$15.debug('upstream_session_manager_stopping');
11158
11158
  this.teardownVisibilityListener();
11159
11159
  this.stopEvent.set();
11160
11160
  this.currentStopSubtasks?.set();
@@ -11165,7 +11165,7 @@ class UpstreamSessionManager extends TaskSpawner {
11165
11165
  }
11166
11166
  catch (error) {
11167
11167
  if (!(error instanceof TaskCancelledError)) {
11168
- logger$16.debug('fsm_task_stopped_with_error', {
11168
+ logger$15.debug('fsm_task_stopped_with_error', {
11169
11169
  error: error.message,
11170
11170
  });
11171
11171
  }
@@ -11174,13 +11174,13 @@ class UpstreamSessionManager extends TaskSpawner {
11174
11174
  }
11175
11175
  if (this.connector) {
11176
11176
  await this.connector.stop().catch((error) => {
11177
- logger$16.debug('connector_stop_error', {
11177
+ logger$15.debug('connector_stop_error', {
11178
11178
  error: error.message,
11179
11179
  });
11180
11180
  });
11181
11181
  this.connector = null;
11182
11182
  }
11183
- logger$16.debug('upstream_session_manager_stopped');
11183
+ logger$15.debug('upstream_session_manager_stopped');
11184
11184
  }
11185
11185
  async send(envelope) {
11186
11186
  if (this.messageQueue.length >= UpstreamSessionManager.TX_QUEUE_MAX) {
@@ -11229,7 +11229,7 @@ class UpstreamSessionManager extends TaskSpawner {
11229
11229
  const shouldFailFast = this.shouldFailFastOnError(error);
11230
11230
  if (error instanceof FameTransportClose ||
11231
11231
  error instanceof FameConnectError) {
11232
- logger$16.warning('upstream_link_closed', {
11232
+ logger$15.warning('upstream_link_closed', {
11233
11233
  error: error.message,
11234
11234
  will_retry: !shouldFailFast,
11235
11235
  attempt: this.initialAttempts,
@@ -11242,13 +11242,13 @@ class UpstreamSessionManager extends TaskSpawner {
11242
11242
  else {
11243
11243
  const err = error;
11244
11244
  if (err.name === 'OAuth2PkceRedirectInitiatedError') {
11245
- logger$16.info('upstream_link_redirecting', {
11245
+ logger$15.info('upstream_link_redirecting', {
11246
11246
  error: err.message,
11247
11247
  will_retry: true,
11248
11248
  });
11249
11249
  }
11250
11250
  else {
11251
- logger$16.warning('upstream_link_closed', {
11251
+ logger$15.warning('upstream_link_closed', {
11252
11252
  error: err.message,
11253
11253
  will_retry: !shouldFailFast,
11254
11254
  attempt: this.initialAttempts,
@@ -11292,7 +11292,7 @@ class UpstreamSessionManager extends TaskSpawner {
11292
11292
  // If sleep was interrupted by visibility change (user returned to tab),
11293
11293
  // reset backoff to initial delay for immediate retry with fresh backoff
11294
11294
  if (wasWoken) {
11295
- logger$16.debug('backoff_reset_on_visibility_change', {
11295
+ logger$15.debug('backoff_reset_on_visibility_change', {
11296
11296
  previous_delay: delay,
11297
11297
  new_delay: UpstreamSessionManager.BACKOFF_INITIAL,
11298
11298
  });
@@ -11311,7 +11311,7 @@ class UpstreamSessionManager extends TaskSpawner {
11311
11311
  // Check if wake event is already set (e.g., visibility just changed)
11312
11312
  if (this.wakeEvent.isSet()) {
11313
11313
  this.wakeEvent.clear();
11314
- logger$16.debug('sleep_skipped_wake_event_pending');
11314
+ logger$15.debug('sleep_skipped_wake_event_pending');
11315
11315
  return true;
11316
11316
  }
11317
11317
  let timeout;
@@ -11328,7 +11328,7 @@ class UpstreamSessionManager extends TaskSpawner {
11328
11328
  ]);
11329
11329
  const wasWoken = this.wakeEvent.isSet();
11330
11330
  if (wasWoken) {
11331
- logger$16.debug('sleep_interrupted_by_wake_event');
11331
+ logger$15.debug('sleep_interrupted_by_wake_event');
11332
11332
  this.wakeEvent.clear();
11333
11333
  }
11334
11334
  if (timeout !== undefined) {
@@ -11391,7 +11391,7 @@ class UpstreamSessionManager extends TaskSpawner {
11391
11391
  await connector.start(this.wrappedHandler);
11392
11392
  this.connector = connector;
11393
11393
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
11394
- logger$16.debug('callback_grants_before_augmentation', {
11394
+ logger$15.debug('callback_grants_before_augmentation', {
11395
11395
  count: callbackGrants.length,
11396
11396
  types: callbackGrants.map((g) => g.type),
11397
11397
  });
@@ -11401,7 +11401,7 @@ class UpstreamSessionManager extends TaskSpawner {
11401
11401
  const broadcastCallbackGrant = shouldAddBroadcastGrant
11402
11402
  ? this.createBroadcastCallbackGrant(grant)
11403
11403
  : null;
11404
- logger$16.debug('broadcast_callback_grant_check', {
11404
+ logger$15.debug('broadcast_callback_grant_check', {
11405
11405
  should_add: shouldAddBroadcastGrant,
11406
11406
  grant_created: !!broadcastCallbackGrant,
11407
11407
  });
@@ -11420,12 +11420,12 @@ class UpstreamSessionManager extends TaskSpawner {
11420
11420
  const isDuplicate = callbackGrants.some((existing) => JSON.stringify(existing) === JSON.stringify(grant));
11421
11421
  if (!isDuplicate) {
11422
11422
  callbackGrants.push(grant);
11423
- logger$16.debug('added_connection_grant_as_callback', {
11423
+ logger$15.debug('added_connection_grant_as_callback', {
11424
11424
  type: grant.type,
11425
11425
  });
11426
11426
  }
11427
11427
  else {
11428
- logger$16.debug('skipped_duplicate_connection_grant', {
11428
+ logger$15.debug('skipped_duplicate_connection_grant', {
11429
11429
  type: grant.type,
11430
11430
  });
11431
11431
  }
@@ -11437,12 +11437,12 @@ class UpstreamSessionManager extends TaskSpawner {
11437
11437
  if (broadcastCallbackGrant &&
11438
11438
  this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
11439
11439
  callbackGrants.push(broadcastCallbackGrant);
11440
- logger$16.debug('added_broadcast_callback_grant');
11440
+ logger$15.debug('added_broadcast_callback_grant');
11441
11441
  }
11442
11442
  else if (broadcastCallbackGrant) {
11443
- logger$16.debug('skipped_duplicate_broadcast_callback_grant');
11443
+ logger$15.debug('skipped_duplicate_broadcast_callback_grant');
11444
11444
  }
11445
- logger$16.debug('callback_grants_after_augmentation', {
11445
+ logger$15.debug('callback_grants_after_augmentation', {
11446
11446
  count: callbackGrants.length,
11447
11447
  types: callbackGrants.map((g) => g.type),
11448
11448
  });
@@ -11455,7 +11455,7 @@ class UpstreamSessionManager extends TaskSpawner {
11455
11455
  targetAware.setTargetNodeId(this.targetSystemId);
11456
11456
  }
11457
11457
  catch (error) {
11458
- logger$16.warning('broadcast_channel_target_apply_failed', {
11458
+ logger$15.warning('broadcast_channel_target_apply_failed', {
11459
11459
  error: error instanceof Error ? error.message : String(error),
11460
11460
  target_node_id: this.targetSystemId,
11461
11461
  });
@@ -11477,14 +11477,14 @@ class UpstreamSessionManager extends TaskSpawner {
11477
11477
  });
11478
11478
  }
11479
11479
  else {
11480
- logger$16.warning('parent_epoch_changed', { epoch });
11480
+ logger$15.warning('parent_epoch_changed', { epoch });
11481
11481
  }
11482
11482
  }
11483
11483
  if (!this.readyEvent.isSet()) {
11484
11484
  this.readyEvent.set();
11485
11485
  }
11486
11486
  if (this.messageQueue.length > 0) {
11487
- logger$16.debug('flushing_buffered_frames', {
11487
+ logger$15.debug('flushing_buffered_frames', {
11488
11488
  queue_size: this.messageQueue.length,
11489
11489
  });
11490
11490
  this.queueEvent.set();
@@ -11501,12 +11501,12 @@ class UpstreamSessionManager extends TaskSpawner {
11501
11501
  name: `expiry-guard-${this.connectEpoch}`,
11502
11502
  });
11503
11503
  if (this.hadSuccessfulAttach) {
11504
- logger$16.debug('reconnected_to_upstream', {
11504
+ logger$15.debug('reconnected_to_upstream', {
11505
11505
  attach_expires_at: attachInfo.attachExpiresAt?.toISOString?.() ?? null,
11506
11506
  });
11507
11507
  }
11508
11508
  else {
11509
- logger$16.debug('connected_to_upstream', {
11509
+ logger$15.debug('connected_to_upstream', {
11510
11510
  attach_expires_at: attachInfo.attachExpiresAt?.toISOString?.() ?? null,
11511
11511
  });
11512
11512
  }
@@ -11524,18 +11524,18 @@ class UpstreamSessionManager extends TaskSpawner {
11524
11524
  this.currentStopSubtasks = null;
11525
11525
  await Promise.allSettled(tasks.map((task) => task.promise));
11526
11526
  if (this.connector) {
11527
- logger$16.debug('upstream_stopping_old_connector', {
11527
+ logger$15.debug('upstream_stopping_old_connector', {
11528
11528
  connect_epoch: this.connectEpoch,
11529
11529
  target_system_id: this.targetSystemId,
11530
11530
  timestamp: new Date().toISOString(),
11531
11531
  });
11532
11532
  await this.connector.stop().catch((err) => {
11533
- logger$16.warning('upstream_connector_stop_error', {
11533
+ logger$15.warning('upstream_connector_stop_error', {
11534
11534
  connect_epoch: this.connectEpoch,
11535
11535
  error: err instanceof Error ? err.message : String(err),
11536
11536
  });
11537
11537
  });
11538
- logger$16.debug('upstream_old_connector_stopped', {
11538
+ logger$15.debug('upstream_old_connector_stopped', {
11539
11539
  connect_epoch: this.connectEpoch,
11540
11540
  target_system_id: this.targetSystemId,
11541
11541
  timestamp: new Date().toISOString(),
@@ -11588,7 +11588,7 @@ class UpstreamSessionManager extends TaskSpawner {
11588
11588
  });
11589
11589
  }
11590
11590
  catch (error) {
11591
- logger$16.debug('broadcast_callback_grant_generation_failed', {
11591
+ logger$15.debug('broadcast_callback_grant_generation_failed', {
11592
11592
  error: error instanceof Error ? error.message : String(error),
11593
11593
  });
11594
11594
  return null;
@@ -11643,7 +11643,7 @@ class UpstreamSessionManager extends TaskSpawner {
11643
11643
  }
11644
11644
  }
11645
11645
  async heartbeatLoop(connector, stopEvt, signal) {
11646
- logger$16.debug('starting_heartbeat_loop');
11646
+ logger$15.debug('starting_heartbeat_loop');
11647
11647
  const intervalMs = UpstreamSessionManager.HEARTBEAT_INTERVAL * 1000;
11648
11648
  const graceMs = intervalMs * UpstreamSessionManager.HEARTBEAT_GRACE;
11649
11649
  this.lastHeartbeatAckTime = Date.now();
@@ -11679,7 +11679,7 @@ class UpstreamSessionManager extends TaskSpawner {
11679
11679
  // Skip heartbeat if connector is paused (e.g., tab is hidden)
11680
11680
  // Keep ack time current so we don't timeout immediately after resuming
11681
11681
  if (currentState === ConnectorState.PAUSED) {
11682
- logger$16.debug('skipping_heartbeat_connector_paused', {
11682
+ logger$15.debug('skipping_heartbeat_connector_paused', {
11683
11683
  connector_state: currentState,
11684
11684
  });
11685
11685
  this.lastHeartbeatAckTime = Date.now();
@@ -11688,14 +11688,14 @@ class UpstreamSessionManager extends TaskSpawner {
11688
11688
  // Reset ack time if just resumed from pause (prevents immediate timeout)
11689
11689
  if (previousState === ConnectorState.PAUSED &&
11690
11690
  currentState === ConnectorState.STARTED) {
11691
- logger$16.debug('connector_just_resumed_resetting_ack_time', {
11691
+ logger$15.debug('connector_just_resumed_resetting_ack_time', {
11692
11692
  previous_state: previousState,
11693
11693
  current_state: currentState,
11694
11694
  });
11695
11695
  this.lastHeartbeatAckTime = Date.now();
11696
11696
  }
11697
11697
  const envelope = await this.makeHeartbeatEnvelope();
11698
- logger$16.debug('sending_heartbeat', {
11698
+ logger$15.debug('sending_heartbeat', {
11699
11699
  hb_corr_id: envelope.corrId,
11700
11700
  hb_env_id: envelope.id,
11701
11701
  });
@@ -11721,7 +11721,7 @@ class UpstreamSessionManager extends TaskSpawner {
11721
11721
  throw new FameConnectError('missed heartbeat acknowledgement');
11722
11722
  }
11723
11723
  }
11724
- logger$16.debug('completed_heartbeat_loop');
11724
+ logger$15.debug('completed_heartbeat_loop');
11725
11725
  }
11726
11726
  async messagePumpLoop(connector, stopEvt, signal) {
11727
11727
  while (!stopEvt.isSet() && !signal?.aborted) {
@@ -11738,19 +11738,19 @@ class UpstreamSessionManager extends TaskSpawner {
11738
11738
  if (!envelope) {
11739
11739
  continue;
11740
11740
  }
11741
- logger$16.debug('upstream_pump_sending_envelope', {
11741
+ logger$15.debug('upstream_pump_sending_envelope', {
11742
11742
  envelopeId: envelope.id,
11743
11743
  type: envelope.frame?.type,
11744
11744
  });
11745
11745
  try {
11746
11746
  await connector.send(envelope);
11747
- logger$16.debug('upstream_pump_sent_envelope', {
11747
+ logger$15.debug('upstream_pump_sent_envelope', {
11748
11748
  envelopeId: envelope.id,
11749
11749
  });
11750
11750
  }
11751
11751
  catch (error) {
11752
11752
  if (error instanceof FameMessageTooLarge) {
11753
- logger$16.error('failed_to_send_message', { error: error.message });
11753
+ logger$15.error('failed_to_send_message', { error: error.message });
11754
11754
  await this.handleMessageTooLarge(envelope, error.message);
11755
11755
  }
11756
11756
  else if (error instanceof FameTransportClose) {
@@ -11812,7 +11812,7 @@ class UpstreamSessionManager extends TaskSpawner {
11812
11812
  await fabric.send(ackEnvelope);
11813
11813
  }
11814
11814
  catch (error) {
11815
- logger$16.warning('failed_to_send_nack', {
11815
+ logger$15.warning('failed_to_send_nack', {
11816
11816
  error: error.message,
11817
11817
  });
11818
11818
  }
@@ -11826,7 +11826,7 @@ class UpstreamSessionManager extends TaskSpawner {
11826
11826
  timestamps.push(info.attachExpiresAt);
11827
11827
  }
11828
11828
  if (!timestamps.length) {
11829
- logger$16.debug('no_ttl_expiry_configured');
11829
+ logger$15.debug('no_ttl_expiry_configured');
11830
11830
  await this.waitEvent(stopEvt, signal);
11831
11831
  return;
11832
11832
  }
@@ -11835,7 +11835,7 @@ class UpstreamSessionManager extends TaskSpawner {
11835
11835
  let delaySeconds = (earliest.getTime() - now.getTime()) / 1000 -
11836
11836
  UpstreamSessionManager.JWT_REFRESH_SAFETY;
11837
11837
  delaySeconds = Math.max(delaySeconds, UpstreamSessionManager.JWT_REFRESH_SAFETY);
11838
- logger$16.debug('ttl_expiry_guard_started', {
11838
+ logger$15.debug('ttl_expiry_guard_started', {
11839
11839
  welcome_expires_at: welcome.frame.expiresAt ?? null,
11840
11840
  attach_expires_at: info.attachExpiresAt?.toISOString?.() ?? null,
11841
11841
  earliest_expiry: earliest.toISOString(),
@@ -11863,7 +11863,7 @@ class UpstreamSessionManager extends TaskSpawner {
11863
11863
  }
11864
11864
  }
11865
11865
  if (!stopEvt.isSet()) {
11866
- logger$16.debug('ttl_expiry_triggered_reconnect', {
11866
+ logger$15.debug('ttl_expiry_triggered_reconnect', {
11867
11867
  expires_at: earliest.toISOString(),
11868
11868
  current_time: new Date().toISOString(),
11869
11869
  seconds_before_expiry: UpstreamSessionManager.JWT_REFRESH_SAFETY,
@@ -11908,7 +11908,7 @@ class UpstreamSessionManager extends TaskSpawner {
11908
11908
  }
11909
11909
  await this.node.dispatchEnvelopeEvent('onEnvelopeReceived', this.node, env, context);
11910
11910
  if (env.frame.type === 'NodeHeartbeatAck') {
11911
- logger$16.debug('received_heartbeat_ack', {
11911
+ logger$15.debug('received_heartbeat_ack', {
11912
11912
  hb_ack_env_id: env.id,
11913
11913
  hb_ack_corr_id: env.corrId,
11914
11914
  hb_routing_epoch: env.frame.routingEpoch,
@@ -11922,7 +11922,7 @@ class UpstreamSessionManager extends TaskSpawner {
11922
11922
  await this.onEpochChange(epoch);
11923
11923
  }
11924
11924
  else {
11925
- logger$16.warning('parent_epoch_changed', { epoch });
11925
+ logger$15.warning('parent_epoch_changed', { epoch });
11926
11926
  }
11927
11927
  }
11928
11928
  return;
@@ -11941,7 +11941,7 @@ UpstreamSessionManager.TX_QUEUE_MAX = 512;
11941
11941
  UpstreamSessionManager.BACKOFF_INITIAL = 1; // seconds
11942
11942
  UpstreamSessionManager.BACKOFF_CAP = 30; // seconds
11943
11943
 
11944
- const logger$15 = getLogger('naylence.fame.node.admission.noop_admission_client');
11944
+ const logger$14 = getLogger('naylence.fame.node.admission.noop_admission_client');
11945
11945
  class NoopAdmissionClient {
11946
11946
  constructor(options = {}) {
11947
11947
  this.hasUpstream = false;
@@ -11955,7 +11955,7 @@ class NoopAdmissionClient {
11955
11955
  const acceptedLogicals = this.autoAcceptLogicals
11956
11956
  ? [...(requestedLogicals ?? [])]
11957
11957
  : [];
11958
- logger$15.debug('noop_admission_hello', {
11958
+ logger$14.debug('noop_admission_hello', {
11959
11959
  systemId: effectiveSystemId,
11960
11960
  instanceId,
11961
11961
  requestedLogicals,
@@ -11973,7 +11973,7 @@ class NoopAdmissionClient {
11973
11973
  });
11974
11974
  }
11975
11975
  async close() {
11976
- logger$15.debug('noop_admission_close');
11976
+ logger$14.debug('noop_admission_close');
11977
11977
  }
11978
11978
  }
11979
11979
 
@@ -12179,7 +12179,7 @@ class DefaultServiceManager {
12179
12179
  }
12180
12180
 
12181
12181
  const SYSTEM_INBOX$1 = '__sys__';
12182
- const logger$14 = getLogger('naylence.fame.node.node');
12182
+ const logger$13 = getLogger('naylence.fame.node.node');
12183
12183
  function isSnakeCase(name) {
12184
12184
  return name.includes('_');
12185
12185
  }
@@ -12449,7 +12449,7 @@ class FameNode extends TaskSpawner {
12449
12449
  confirmIdentity(systemId, source) {
12450
12450
  if (this._confirmedId) {
12451
12451
  if (this._confirmedId !== systemId) {
12452
- logger$14.error('node_identity_mismatch', {
12452
+ logger$13.error('node_identity_mismatch', {
12453
12453
  current_id: this._confirmedId,
12454
12454
  new_id: systemId,
12455
12455
  source,
@@ -12461,14 +12461,14 @@ class FameNode extends TaskSpawner {
12461
12461
  const isReassignment = this._provisionalId !== systemId;
12462
12462
  this._confirmedId = systemId;
12463
12463
  if (isReassignment) {
12464
- logger$14.debug('node_identity_reassigned', {
12464
+ logger$13.debug('node_identity_reassigned', {
12465
12465
  system_id: systemId,
12466
12466
  previous_id: this._provisionalId,
12467
12467
  source,
12468
12468
  });
12469
12469
  }
12470
12470
  else {
12471
- logger$14.debug('node_identity_confirmed', {
12471
+ logger$13.debug('node_identity_confirmed', {
12472
12472
  system_id: systemId,
12473
12473
  source,
12474
12474
  });
@@ -12536,7 +12536,7 @@ class FameNode extends TaskSpawner {
12536
12536
  return;
12537
12537
  }
12538
12538
  if (frameType === 'NodeHeartbeat') {
12539
- logger$14.debug('received_heartbeat_frame', {
12539
+ logger$13.debug('received_heartbeat_frame', {
12540
12540
  envelopeId: envelope.id,
12541
12541
  corrId: envelope.corrId ?? null,
12542
12542
  });
@@ -12548,7 +12548,7 @@ class FameNode extends TaskSpawner {
12548
12548
  await this.handleDeliveryAck(envelope, context);
12549
12549
  return;
12550
12550
  }
12551
- logger$14.debug('unhandled_system_frame', {
12551
+ logger$13.debug('unhandled_system_frame', {
12552
12552
  envelopeId: envelope.id,
12553
12553
  frameType,
12554
12554
  });
@@ -12560,13 +12560,13 @@ class FameNode extends TaskSpawner {
12560
12560
  }
12561
12561
  await this._deliveryTracker.onEnvelopeDelivered(SYSTEM_INBOX$1, envelope, context);
12562
12562
  if (frame.ok !== false) {
12563
- logger$14.debug('delivery_ack_received', {
12563
+ logger$13.debug('delivery_ack_received', {
12564
12564
  envelopeId: envelope.id,
12565
12565
  corrId: envelope.corrId ?? null,
12566
12566
  });
12567
12567
  return;
12568
12568
  }
12569
- logger$14.warning('delivery_nack_received', {
12569
+ logger$13.warning('delivery_nack_received', {
12570
12570
  envelopeId: envelope.id,
12571
12571
  corrId: envelope.corrId ?? null,
12572
12572
  code: frame.code ?? null,
@@ -12576,7 +12576,7 @@ class FameNode extends TaskSpawner {
12576
12576
  await this.onDeliveryNack(frame, envelope, context);
12577
12577
  }
12578
12578
  async onDeliveryNack(frame, envelope, _context) {
12579
- logger$14.debug('delivery_nack_processed', {
12579
+ logger$13.debug('delivery_nack_processed', {
12580
12580
  envelopeId: envelope.id,
12581
12581
  code: frame.code ?? null,
12582
12582
  reason: frame.reason ?? null,
@@ -12691,7 +12691,7 @@ class FameNode extends TaskSpawner {
12691
12691
  await this._bindingManager.restore();
12692
12692
  await this._envelopeListenerManager.start();
12693
12693
  this._isStarted = true;
12694
- logger$14.debug('node_started', {
12694
+ logger$13.debug('node_started', {
12695
12695
  node_id: this.id,
12696
12696
  sid: this.sid,
12697
12697
  path: this.physicalPath,
@@ -12723,7 +12723,7 @@ class FameNode extends TaskSpawner {
12723
12723
  await this._serviceManager.stop();
12724
12724
  await this.dispatchEvent('onNodeStopped', this);
12725
12725
  this._isStarted = false;
12726
- logger$14.debug('node_stopped', {
12726
+ logger$13.debug('node_stopped', {
12727
12727
  node_id: this.id,
12728
12728
  });
12729
12729
  }
@@ -12913,20 +12913,20 @@ class FameNode extends TaskSpawner {
12913
12913
  await this.forwardUpstream(processedEnvelope, context);
12914
12914
  }
12915
12915
  else {
12916
- logger$14.error('attempted_upstream_loop', {
12916
+ logger$13.error('attempted_upstream_loop', {
12917
12917
  envelopeId: processedEnvelope.id,
12918
12918
  });
12919
12919
  }
12920
12920
  return;
12921
12921
  }
12922
12922
  if (!processedEnvelope.to) {
12923
- logger$14.error('dropping_envelope_without_destination', {
12923
+ logger$13.error('dropping_envelope_without_destination', {
12924
12924
  envelopeId: processedEnvelope.id,
12925
12925
  capabilities: processedEnvelope.capabilities ?? [],
12926
12926
  });
12927
12927
  return;
12928
12928
  }
12929
- logger$14.warning('no_local_handler_for_address', {
12929
+ logger$13.warning('no_local_handler_for_address', {
12930
12930
  address: processedEnvelope.to.toString?.() ?? String(processedEnvelope.to),
12931
12931
  originType: context?.originType ?? null,
12932
12932
  });
@@ -13050,7 +13050,7 @@ class FameNode extends TaskSpawner {
13050
13050
  }
13051
13051
  }
13052
13052
  catch (error) {
13053
- logger$14.warning('callback_grant_collection_failed', {
13053
+ logger$13.warning('callback_grant_collection_failed', {
13054
13054
  error: error instanceof Error ? error.message : String(error),
13055
13055
  });
13056
13056
  }
@@ -13113,7 +13113,7 @@ class FameNode extends TaskSpawner {
13113
13113
  await store.set('self', record);
13114
13114
  }
13115
13115
  catch (error) {
13116
- logger$14.warning('node_meta_persist_failed', {
13116
+ logger$13.warning('node_meta_persist_failed', {
13117
13117
  error: error instanceof Error ? error.message : String(error),
13118
13118
  });
13119
13119
  }
@@ -13251,44 +13251,12 @@ class ConnectionRetryPolicyFactory extends AbstractResourceFactory {
13251
13251
  }
13252
13252
  }
13253
13253
 
13254
- const TOKEN_PROVIDER_FACTORY_BASE_TYPE = 'TokenProviderFactory';
13255
- class TokenProviderFactory extends AbstractResourceFactory {
13256
- static async createTokenProvider(config, options = {}) {
13257
- if (config) {
13258
- const provider = await createResource$1(TOKEN_PROVIDER_FACTORY_BASE_TYPE, config, options);
13259
- if (!provider) {
13260
- throw new Error('Failed to create token provider from configuration');
13261
- }
13262
- return provider;
13263
- }
13264
- let provider = null;
13265
- try {
13266
- provider = await createDefaultResource(TOKEN_PROVIDER_FACTORY_BASE_TYPE, null, options);
13267
- }
13268
- catch (error) {
13269
- const message = 'Failed to create default token provider' +
13270
- (error instanceof Error && error.message ? `: ${error.message}` : '');
13271
- throw new Error(message);
13272
- }
13273
- if (!provider) {
13274
- throw new Error('Failed to create default token provider');
13275
- }
13276
- return provider;
13277
- }
13278
- }
13279
-
13280
- function isTokenProvider(candidate) {
13281
- return (typeof candidate === 'object' &&
13282
- candidate !== null &&
13283
- typeof candidate.getToken === 'function');
13284
- }
13285
- function isIdentityExposingTokenProvider(candidate) {
13286
- return (isTokenProvider(candidate) &&
13287
- typeof candidate.getIdentity ===
13288
- 'function');
13289
- }
13290
-
13291
- const logger$13 = getLogger('naylence.fame.node.default_node_identity_policy');
13254
+ /**
13255
+ * Default node identity policy that preserves the current node ID.
13256
+ *
13257
+ * This policy does NOT derive identity from tokens or grants.
13258
+ * For token-subject-based identity, use TokenSubjectNodeIdentityPolicy.
13259
+ */
13292
13260
  class DefaultNodeIdentityPolicy {
13293
13261
  async resolveInitialNodeId(context) {
13294
13262
  if (context.configuredId) {
@@ -13300,44 +13268,10 @@ class DefaultNodeIdentityPolicy {
13300
13268
  return await generateIdAsync({ mode: 'fingerprint' });
13301
13269
  }
13302
13270
  async resolveAdmissionNodeId(context) {
13303
- // Try to extract identity from grants first
13304
- if (context.grants && context.grants.length > 0) {
13305
- for (const grant of context.grants) {
13306
- try {
13307
- const auth = grant.auth;
13308
- if (!auth) {
13309
- continue;
13310
- }
13311
- const tokenProviderConfig = (auth.tokenProvider ??
13312
- auth.token_provider);
13313
- if (!tokenProviderConfig ||
13314
- typeof tokenProviderConfig.type !== 'string') {
13315
- continue;
13316
- }
13317
- const provider = await TokenProviderFactory.createTokenProvider(tokenProviderConfig);
13318
- if (isIdentityExposingTokenProvider(provider)) {
13319
- const identity = await provider.getIdentity();
13320
- if (identity && identity.subject) {
13321
- logger$13.debug('identity_extracted_from_grant', {
13322
- identity_id: identity.subject,
13323
- grant_type: grant.type,
13324
- });
13325
- return identity.subject;
13326
- }
13327
- }
13328
- }
13329
- catch (error) {
13330
- logger$13.warning('identity_extraction_failed', {
13331
- error: error instanceof Error ? error.message : String(error),
13332
- grant_type: grant.type,
13333
- });
13334
- }
13335
- }
13336
- }
13337
- if (!context.currentNodeId) {
13338
- return await generateIdAsync({ mode: 'fingerprint' });
13271
+ if (context.currentNodeId) {
13272
+ return context.currentNodeId;
13339
13273
  }
13340
- return context.currentNodeId;
13274
+ return await generateIdAsync({ mode: 'fingerprint' });
13341
13275
  }
13342
13276
  }
13343
13277
 
@@ -16104,6 +16038,43 @@ var defaultNodeIdentityPolicyFactory = /*#__PURE__*/Object.freeze({
16104
16038
  default: DefaultNodeIdentityPolicyFactory
16105
16039
  });
16106
16040
 
16041
+ const TOKEN_PROVIDER_FACTORY_BASE_TYPE = 'TokenProviderFactory';
16042
+ class TokenProviderFactory extends AbstractResourceFactory {
16043
+ static async createTokenProvider(config, options = {}) {
16044
+ if (config) {
16045
+ const provider = await createResource$1(TOKEN_PROVIDER_FACTORY_BASE_TYPE, config, options);
16046
+ if (!provider) {
16047
+ throw new Error('Failed to create token provider from configuration');
16048
+ }
16049
+ return provider;
16050
+ }
16051
+ let provider = null;
16052
+ try {
16053
+ provider = await createDefaultResource(TOKEN_PROVIDER_FACTORY_BASE_TYPE, null, options);
16054
+ }
16055
+ catch (error) {
16056
+ const message = 'Failed to create default token provider' +
16057
+ (error instanceof Error && error.message ? `: ${error.message}` : '');
16058
+ throw new Error(message);
16059
+ }
16060
+ if (!provider) {
16061
+ throw new Error('Failed to create default token provider');
16062
+ }
16063
+ return provider;
16064
+ }
16065
+ }
16066
+
16067
+ function isTokenProvider(candidate) {
16068
+ return (typeof candidate === 'object' &&
16069
+ candidate !== null &&
16070
+ typeof candidate.getToken === 'function');
16071
+ }
16072
+ function isIdentityExposingTokenProvider(candidate) {
16073
+ return (isTokenProvider(candidate) &&
16074
+ typeof candidate.getIdentity ===
16075
+ 'function');
16076
+ }
16077
+
16107
16078
  const logger$_ = getLogger('naylence.fame.node.token_subject_node_identity_policy');
16108
16079
  class TokenSubjectNodeIdentityPolicy {
16109
16080
  async resolveInitialNodeId(context) {