@getpaseo/server 0.1.74 → 0.1.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/scripts/supervisor-entrypoint.js +2 -21
  2. package/dist/scripts/supervisor-entrypoint.js.map +1 -1
  3. package/dist/scripts/supervisor-log-config.js +31 -0
  4. package/dist/scripts/supervisor-log-config.js.map +1 -0
  5. package/dist/server/server/agent/agent-manager.d.ts +4 -1
  6. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  7. package/dist/server/server/agent/agent-manager.js +139 -14
  8. package/dist/server/server/agent/agent-manager.js.map +1 -1
  9. package/dist/server/server/agent/agent-prompt.d.ts.map +1 -1
  10. package/dist/server/server/agent/agent-prompt.js +27 -0
  11. package/dist/server/server/agent/agent-prompt.js.map +1 -1
  12. package/dist/server/server/agent/agent-sdk-types.d.ts +2 -0
  13. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  14. package/dist/server/server/agent/agent-sdk-types.js +3 -0
  15. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  16. package/dist/server/server/agent/foreground-run-state.d.ts +1 -1
  17. package/dist/server/server/agent/foreground-run-state.d.ts.map +1 -1
  18. package/dist/server/server/agent/foreground-run-state.js +2 -4
  19. package/dist/server/server/agent/foreground-run-state.js.map +1 -1
  20. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  21. package/dist/server/server/agent/provider-manifest.js +3 -3
  22. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  23. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  24. package/dist/server/server/agent/provider-registry.js +13 -5
  25. package/dist/server/server/agent/provider-registry.js.map +1 -1
  26. package/dist/server/server/agent/providers/acp-agent.d.ts +39 -1
  27. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  28. package/dist/server/server/agent/providers/acp-agent.js +121 -14
  29. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  30. package/dist/server/server/agent/providers/claude/agent.d.ts +1 -1
  31. package/dist/server/server/agent/providers/claude/agent.d.ts.map +1 -1
  32. package/dist/server/server/agent/providers/claude/agent.js +80 -24
  33. package/dist/server/server/agent/providers/claude/agent.js.map +1 -1
  34. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts +7 -1
  35. package/dist/server/server/agent/providers/codex/app-server-transport.d.ts.map +1 -1
  36. package/dist/server/server/agent/providers/codex/app-server-transport.js +28 -1
  37. package/dist/server/server/agent/providers/codex/app-server-transport.js.map +1 -1
  38. package/dist/server/server/agent/providers/codex/tool-call-mapper.d.ts.map +1 -1
  39. package/dist/server/server/agent/providers/codex/tool-call-mapper.js +36 -7
  40. package/dist/server/server/agent/providers/codex/tool-call-mapper.js.map +1 -1
  41. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +14 -4
  42. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  43. package/dist/server/server/agent/providers/codex-app-server-agent.js +121 -15
  44. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  45. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts +10 -1
  46. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  47. package/dist/server/server/agent/providers/copilot-acp-agent.js +114 -7
  48. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
  49. package/dist/server/server/agent/providers/opencode-agent.d.ts +6 -4
  50. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  51. package/dist/server/server/agent/providers/opencode-agent.js +48 -34
  52. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  53. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +1 -1
  54. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -1
  55. package/dist/server/server/agent/providers/pi-direct-agent.js +2 -15
  56. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -1
  57. package/dist/server/server/agent/providers/provider-runner.d.ts +1 -1
  58. package/dist/server/server/agent/providers/provider-runner.d.ts.map +1 -1
  59. package/dist/server/server/agent/providers/provider-runner.js +2 -1
  60. package/dist/server/server/agent/providers/provider-runner.js.map +1 -1
  61. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts +1 -1
  62. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.d.ts.map +1 -1
  63. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js +2 -1
  64. package/dist/server/server/agent/providers/test-utils/session-stream-adapter.js.map +1 -1
  65. package/dist/server/server/agent/stt-manager.d.ts +5 -1
  66. package/dist/server/server/agent/stt-manager.d.ts.map +1 -1
  67. package/dist/server/server/agent/stt-manager.js +3 -2
  68. package/dist/server/server/agent/stt-manager.js.map +1 -1
  69. package/dist/server/server/bootstrap.d.ts +5 -0
  70. package/dist/server/server/bootstrap.d.ts.map +1 -1
  71. package/dist/server/server/bootstrap.js.map +1 -1
  72. package/dist/server/server/dictation/dictation-stream-manager.d.ts +2 -0
  73. package/dist/server/server/dictation/dictation-stream-manager.d.ts.map +1 -1
  74. package/dist/server/server/dictation/dictation-stream-manager.js +2 -1
  75. package/dist/server/server/dictation/dictation-stream-manager.js.map +1 -1
  76. package/dist/server/server/logger.js +1 -1
  77. package/dist/server/server/logger.js.map +1 -1
  78. package/dist/server/server/persisted-config.d.ts +18 -0
  79. package/dist/server/server/persisted-config.d.ts.map +1 -1
  80. package/dist/server/server/persisted-config.js +2 -0
  81. package/dist/server/server/persisted-config.js.map +1 -1
  82. package/dist/server/server/schedule/service.d.ts.map +1 -1
  83. package/dist/server/server/schedule/service.js +14 -1
  84. package/dist/server/server/schedule/service.js.map +1 -1
  85. package/dist/server/server/session.d.ts +3 -0
  86. package/dist/server/server/session.d.ts.map +1 -1
  87. package/dist/server/server/session.js +89 -18
  88. package/dist/server/server/session.js.map +1 -1
  89. package/dist/server/server/speech/providers/local/config.d.ts +5 -0
  90. package/dist/server/server/speech/providers/local/config.d.ts.map +1 -1
  91. package/dist/server/server/speech/providers/local/config.js +35 -0
  92. package/dist/server/server/speech/providers/local/config.js.map +1 -1
  93. package/dist/server/server/speech/speech-config-resolver.d.ts.map +1 -1
  94. package/dist/server/server/speech/speech-config-resolver.js +1 -0
  95. package/dist/server/server/speech/speech-config-resolver.js.map +1 -1
  96. package/dist/server/server/speech/speech-runtime.d.ts +2 -0
  97. package/dist/server/server/speech/speech-runtime.d.ts.map +1 -1
  98. package/dist/server/server/speech/speech-runtime.js +2 -0
  99. package/dist/server/server/speech/speech-runtime.js.map +1 -1
  100. package/dist/server/server/voice/voice-turn-controller.d.ts +1 -0
  101. package/dist/server/server/voice/voice-turn-controller.d.ts.map +1 -1
  102. package/dist/server/server/voice/voice-turn-controller.js +1 -1
  103. package/dist/server/server/voice/voice-turn-controller.js.map +1 -1
  104. package/dist/server/server/websocket-server.d.ts.map +1 -1
  105. package/dist/server/server/websocket-server.js +2 -0
  106. package/dist/server/server/websocket-server.js.map +1 -1
  107. package/dist/src/server/agent/agent-sdk-types.js +3 -0
  108. package/dist/src/server/agent/agent-sdk-types.js.map +1 -1
  109. package/dist/src/server/agent/provider-manifest.js +3 -3
  110. package/dist/src/server/agent/provider-manifest.js.map +1 -1
  111. package/dist/src/server/persisted-config.js +2 -0
  112. package/dist/src/server/persisted-config.js.map +1 -1
  113. package/package.json +3 -3
@@ -38,6 +38,7 @@ import { buildStoredAgentPayload, resolveEffectiveThinkingOptionId, resolveStore
38
38
  import { appendTimelineItemIfAgentKnown, emitLiveTimelineItemIfAgentKnown, } from "./agent/timeline-append.js";
39
39
  import { projectTimelineRows, selectTimelineWindowByProjectedLimit, } from "./agent/timeline-projection.js";
40
40
  import { DEFAULT_STRUCTURED_GENERATION_PROVIDERS, StructuredAgentFallbackError, StructuredAgentResponseError, generateStructuredAgentResponseWithFallback, } from "./agent/agent-response-loop.js";
41
+ import { getAgentStreamEventTurnId, } from "./agent/agent-sdk-types.js";
41
42
  import { ImportSessionsRequestError, importProviderSession, listImportableProviderSessions, normalizeImportAgentRequest, } from "./agent/import-sessions.js";
42
43
  import { checkoutLiteFromGitSnapshot, normalizeWorkspaceId as normalizePersistedWorkspaceId, deriveProjectGroupingName, classifyDirectoryForProjectMembership, deriveWorkspaceDisplayName, } from "./workspace-registry-model.js";
43
44
  import { createPersistedProjectRecord, createPersistedWorkspaceRecord, } from "./workspace-registry.js";
@@ -322,7 +323,7 @@ export class Session {
322
323
  }
323
324
  },
324
325
  });
325
- const { clientId, appVersion, clientCapabilities, onMessage, onBinaryMessage, onLifecycleIntent, logger, downloadTokenStore, pushTokenStore, paseoHome, agentManager, agentStorage, projectRegistry, workspaceRegistry, chatService, scheduleService, loopService, checkoutDiffManager, github, workspaceGitService, daemonConfigStore, mcpBaseUrl, stt, tts, terminalManager, providerSnapshotManager, scriptRouteStore, scriptRuntimeStore, workspaceSetupSnapshots, onBranchChanged, getDaemonTcpPort, getDaemonTcpHost, resolveScriptHealth, voice, voiceBridge, dictation, agentProviderRuntimeSettings, providerOverrides, isDev, } = options;
326
+ const { clientId, appVersion, clientCapabilities, onMessage, onBinaryMessage, onLifecycleIntent, logger, downloadTokenStore, pushTokenStore, paseoHome, agentManager, agentStorage, projectRegistry, workspaceRegistry, chatService, scheduleService, loopService, checkoutDiffManager, github, workspaceGitService, daemonConfigStore, mcpBaseUrl, stt, sttLanguage, tts, terminalManager, providerSnapshotManager, scriptRouteStore, scriptRuntimeStore, workspaceSetupSnapshots, onBranchChanged, getDaemonTcpPort, getDaemonTcpHost, resolveScriptHealth, voice, voiceBridge, dictation, agentProviderRuntimeSettings, providerOverrides, isDev, } = options;
326
327
  this.clientId = clientId;
327
328
  this.appVersion = appVersion ?? null;
328
329
  this.clientCapabilities = parseClientCapabilities(clientCapabilities);
@@ -367,6 +368,7 @@ export class Session {
367
368
  this.getDaemonTcpPort = getDaemonTcpPort ?? null;
368
369
  this.getDaemonTcpHost = getDaemonTcpHost ?? null;
369
370
  this.resolveScriptHealth = resolveScriptHealth ?? null;
371
+ this.sttLanguage = sttLanguage ?? "en";
370
372
  this.subscribeToOptionalManagers();
371
373
  this.bindVoiceBridges({ voice, voiceBridge, dictation });
372
374
  this.agentProviderRuntimeSettings = agentProviderRuntimeSettings;
@@ -381,11 +383,11 @@ export class Session {
381
383
  isProviderVisibleToClient: (provider) => this.isProviderVisibleToClient(provider),
382
384
  buildWorkspaceDescriptor: (input) => this.buildWorkspaceDescriptor(input),
383
385
  });
384
- this.initializePerSessionManagers({ tts, stt, dictation });
386
+ this.initializePerSessionManagers({ tts, stt, sttLanguage, dictation });
385
387
  // Initialize agent MCP client asynchronously
386
388
  void this.initializeAgentMcp();
387
389
  this.subscribeToAgentEvents();
388
- this.sessionLogger.trace("Session created");
390
+ this.sessionLogger.trace({}, "agent.session.lifecycle.created");
389
391
  }
390
392
  updateAppVersion(appVersion) {
391
393
  if (appVersion && appVersion !== this.appVersion) {
@@ -477,12 +479,17 @@ export class Session {
477
479
  async interruptAgentIfRunning(agentId) {
478
480
  const snapshot = this.agentManager.getAgent(agentId);
479
481
  if (!snapshot) {
480
- this.sessionLogger.trace({ agentId }, "interruptAgentIfRunning: agent not found");
482
+ this.sessionLogger.trace({ agentId }, "agent.session.interrupt.not_found");
481
483
  throw new Error(`Agent ${agentId} not found`);
482
484
  }
483
485
  const hasInFlightRun = this.agentManager.hasInFlightRun(agentId);
484
486
  if (!hasInFlightRun) {
485
- this.sessionLogger.trace({ agentId, lifecycle: snapshot.lifecycle, hasInFlightRun }, "interruptAgentIfRunning: skipping because agent is not running");
487
+ this.sessionLogger.trace({
488
+ agentId,
489
+ provider: snapshot.provider,
490
+ lifecycle: snapshot.lifecycle,
491
+ hasInFlightRun,
492
+ }, "agent.session.interrupt.skip_not_running");
486
493
  return;
487
494
  }
488
495
  this.sessionLogger.debug({ agentId, lifecycle: snapshot.lifecycle, hasInFlightRun }, "interruptAgentIfRunning: interrupting");
@@ -507,14 +514,14 @@ export class Session {
507
514
  agentId,
508
515
  promptType: typeof prompt === "string" ? "string" : "structured",
509
516
  hasRunOptions: Boolean(runOptions),
510
- }, "startAgentStream: requested");
517
+ }, "agent.session.start_stream.request");
511
518
  let iterator;
512
519
  try {
513
520
  const shouldReplace = this.agentManager.hasInFlightRun(agentId);
514
521
  iterator = shouldReplace
515
522
  ? this.agentManager.replaceAgentRun(agentId, prompt, runOptions)
516
523
  : this.agentManager.streamAgent(agentId, prompt, runOptions);
517
- this.sessionLogger.trace({ agentId, shouldReplace }, "startAgentStream: agent iterator returned");
524
+ this.sessionLogger.trace({ agentId, shouldReplace }, "agent.session.start_stream.iterator_returned");
518
525
  }
519
526
  catch (error) {
520
527
  this.handleAgentRunError(agentId, error, "Failed to start agent run");
@@ -525,10 +532,10 @@ export class Session {
525
532
  for await (const _ of iterator) {
526
533
  // Events are forwarded via the session's AgentManager subscription.
527
534
  }
528
- this.sessionLogger.trace({ agentId }, "startAgentStream: iterator drained");
535
+ this.sessionLogger.trace({ agentId }, "agent.session.iterator.drained");
529
536
  }
530
537
  catch (error) {
531
- this.sessionLogger.trace({ agentId, err: error }, "startAgentStream: iterator threw");
538
+ this.sessionLogger.trace({ agentId, err: error }, "agent.session.iterator.error");
532
539
  this.handleAgentRunError(agentId, error, "Agent stream failed");
533
540
  }
534
541
  })();
@@ -562,7 +569,7 @@ export class Session {
562
569
  });
563
570
  this.agentTools = (await this.agentMcpClient.tools());
564
571
  const agentToolCount = Object.keys(this.agentTools ?? {}).length;
565
- this.sessionLogger.trace({ agentToolCount }, `Agent MCP initialized with ${agentToolCount} tools`);
572
+ this.sessionLogger.trace({ agentToolCount }, "agent.session.mcp_init");
566
573
  }
567
574
  catch (error) {
568
575
  this.sessionLogger.error({ err: error }, "Failed to initialize Agent MCP");
@@ -602,14 +609,17 @@ export class Session {
602
609
  this.getSpeechReadiness = dictation?.getSpeechReadiness;
603
610
  }
604
611
  initializePerSessionManagers(params) {
605
- const { tts, stt, dictation } = params;
612
+ const { tts, stt, sttLanguage, dictation } = params;
606
613
  this.ttsManager = new TTSManager(this.sessionId, this.sessionLogger, tts);
607
- this.sttManager = new STTManager(this.sessionId, this.sessionLogger, stt);
614
+ this.sttManager = new STTManager(this.sessionId, this.sessionLogger, stt, {
615
+ language: sttLanguage,
616
+ });
608
617
  this.dictationStreamManager = new DictationStreamManager({
609
618
  logger: this.sessionLogger,
610
619
  sessionId: this.sessionId,
611
620
  emit: (msg) => this.handleDictationManagerMessage(msg),
612
621
  stt: dictation?.stt ?? null,
622
+ language: dictation?.sttLanguage,
613
623
  finalTimeoutMs: dictation?.finalTimeoutMs,
614
624
  });
615
625
  }
@@ -619,6 +629,13 @@ export class Session {
619
629
  }
620
630
  this.unsubscribeAgentEvents = this.agentManager.subscribe((event) => {
621
631
  if (event.type === "agent_state") {
632
+ this.sessionLogger.trace({
633
+ agentId: event.agent.id,
634
+ provider: event.agent.provider,
635
+ providerSessionId: event.agent.persistence?.sessionId ?? undefined,
636
+ turnId: event.agent.activeForegroundTurnId ?? undefined,
637
+ lifecycle: event.agent.lifecycle,
638
+ }, "agent.session.forward_update");
622
639
  void this.forwardAgentUpdate(event.agent);
623
640
  return;
624
641
  }
@@ -661,6 +678,14 @@ export class Session {
661
678
  if (!serializedEvent) {
662
679
  return;
663
680
  }
681
+ this.sessionLogger.trace({
682
+ agentId: event.agentId,
683
+ provider: event.event.provider,
684
+ turnId: getAgentStreamEventTurnId(event.event),
685
+ seq: event.seq,
686
+ epoch: event.epoch,
687
+ event: event.event,
688
+ }, "agent.session.forward_stream");
664
689
  const payload = {
665
690
  agentId: event.agentId,
666
691
  event: serializedEvent,
@@ -933,7 +958,10 @@ export class Session {
933
958
  this.peakInflightRequests = this.inflightRequests;
934
959
  }
935
960
  try {
936
- this.sessionLogger.trace({ messageType: msg.type, payloadBytes: JSON.stringify(msg).length }, "inbound message");
961
+ this.sessionLogger.trace({
962
+ messageType: msg.type,
963
+ payloadBytes: JSON.stringify(msg).length,
964
+ }, "agent.session.inbound");
937
965
  try {
938
966
  await this.dispatchInboundMessage(msg);
939
967
  }
@@ -1857,6 +1885,7 @@ export class Session {
1857
1885
  logger: this.sessionLogger.child({ component: "voice-turn-controller" }),
1858
1886
  turnDetection,
1859
1887
  stt,
1888
+ sttLanguage: this.sttLanguage,
1860
1889
  callbacks: {
1861
1890
  onSpeechStarted: async () => {
1862
1891
  this.sessionLogger.debug("Voice VAD speech_started");
@@ -2079,6 +2108,17 @@ export class Session {
2079
2108
  const { handle, overrides, requestId } = msg;
2080
2109
  if (!handle) {
2081
2110
  this.sessionLogger.warn("Resume request missing persistence handle");
2111
+ if (requestId) {
2112
+ this.emit({
2113
+ type: "rpc_error",
2114
+ payload: {
2115
+ requestId,
2116
+ requestType: msg.type,
2117
+ error: "Unable to resume agent: missing persistence handle",
2118
+ code: "agent_resume_failed",
2119
+ },
2120
+ });
2121
+ }
2082
2122
  this.emit({
2083
2123
  type: "activity_log",
2084
2124
  payload: {
@@ -2113,14 +2153,26 @@ export class Session {
2113
2153
  }
2114
2154
  }
2115
2155
  catch (error) {
2156
+ const message = getErrorMessage(error);
2116
2157
  this.sessionLogger.error({ err: error }, "Failed to resume agent");
2158
+ if (requestId) {
2159
+ this.emit({
2160
+ type: "rpc_error",
2161
+ payload: {
2162
+ requestId,
2163
+ requestType: msg.type,
2164
+ error: message,
2165
+ code: "agent_resume_failed",
2166
+ },
2167
+ });
2168
+ }
2117
2169
  this.emit({
2118
2170
  type: "activity_log",
2119
2171
  payload: {
2120
2172
  id: uuidv4(),
2121
2173
  timestamp: new Date(),
2122
2174
  type: "error",
2123
- content: `Failed to resume agent: ${getErrorMessage(error)}`,
2175
+ content: `Failed to resume agent: ${message}`,
2124
2176
  },
2125
2177
  });
2126
2178
  }
@@ -2228,14 +2280,26 @@ export class Session {
2228
2280
  }
2229
2281
  }
2230
2282
  catch (error) {
2283
+ const message = getErrorMessage(error);
2231
2284
  this.sessionLogger.error({ err: error, agentId }, `Failed to refresh agent ${agentId}`);
2285
+ if (requestId) {
2286
+ this.emit({
2287
+ type: "rpc_error",
2288
+ payload: {
2289
+ requestId,
2290
+ requestType: msg.type,
2291
+ error: message,
2292
+ code: "agent_refresh_failed",
2293
+ },
2294
+ });
2295
+ }
2232
2296
  this.emit({
2233
2297
  type: "activity_log",
2234
2298
  payload: {
2235
2299
  id: uuidv4(),
2236
2300
  timestamp: new Date(),
2237
2301
  type: "error",
2238
- content: `Failed to refresh agent: ${getErrorMessage(error)}`,
2302
+ content: `Failed to refresh agent: ${message}`,
2239
2303
  },
2240
2304
  });
2241
2305
  }
@@ -5459,7 +5523,11 @@ export class Session {
5459
5523
  try {
5460
5524
  const agentId = resolved.agentId;
5461
5525
  const prompt = this.buildAgentPrompt(msg.text, msg.images, msg.attachments);
5462
- this.sessionLogger.trace({ agentId, messageId: msg.messageId, textPrefix: msg.text.slice(0, 80) }, "send_agent_message_request: dispatching shared sendPromptToAgent");
5526
+ this.sessionLogger.trace({
5527
+ agentId,
5528
+ messageId: msg.messageId,
5529
+ textPrefix: msg.text.slice(0, 80),
5530
+ }, "agent.session.send_agent_message");
5463
5531
  let dispatchResult;
5464
5532
  try {
5465
5533
  dispatchResult = await sendPromptToAgent({
@@ -6082,7 +6150,10 @@ export class Session {
6082
6150
  * Emit a message to the client
6083
6151
  */
6084
6152
  emit(msg) {
6085
- this.sessionLogger.trace({ messageType: msg.type, payloadBytes: JSON.stringify(msg).length }, "outbound message");
6153
+ this.sessionLogger.trace({
6154
+ messageType: msg.type,
6155
+ payloadBytes: JSON.stringify(msg).length,
6156
+ }, "agent.session.outbound");
6086
6157
  if (msg.type === "audio_output" &&
6087
6158
  (process.env.TTS_DEBUG_AUDIO_DIR || isPaseoDictationDebugEnabled()) &&
6088
6159
  msg.payload.groupId &&
@@ -6137,7 +6208,7 @@ export class Session {
6137
6208
  * Clean up session resources
6138
6209
  */
6139
6210
  async cleanup() {
6140
- this.sessionLogger.trace("Cleaning up");
6211
+ this.sessionLogger.trace({}, "agent.session.lifecycle.cleanup");
6141
6212
  if (this.unsubscribeAgentEvents) {
6142
6213
  this.unsubscribeAgentEvents();
6143
6214
  this.unsubscribeAgentEvents = null;