@wrongstack/core 0.272.0 → 0.272.1
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.
- package/dist/{agent-bridge-jVSZiygR.d.ts → agent-bridge-DFQYEeXf.d.ts} +1 -1
- package/dist/{agent-subagent-runner-DOLIwBRo.d.ts → agent-subagent-runner-BZa_IEcd.d.ts} +4 -4
- package/dist/{brain-CdbbJWi3.d.ts → brain-etbcbRwV.d.ts} +24 -1
- package/dist/{config-D2DGoGSQ.d.ts → config-rRS8yorV.d.ts} +43 -1
- package/dist/coordination/index.d.ts +74 -14
- package/dist/coordination/index.js +285 -97
- package/dist/coordination/index.js.map +1 -1
- package/dist/defaults/index.d.ts +16 -16
- package/dist/defaults/index.js +209 -140
- package/dist/defaults/index.js.map +1 -1
- package/dist/execution/index.d.ts +9 -9
- package/dist/extension/index.d.ts +4 -4
- package/dist/{global-mailbox-CQj_C9Dp.d.ts → global-mailbox-DJ4EoRr0.d.ts} +7 -3
- package/dist/{goal-preamble-ZXDjjR1y.d.ts → goal-preamble-hM8BH7TK.d.ts} +5 -5
- package/dist/{goal-store-CcJBd-g1.d.ts → goal-store-CWlbT0TO.d.ts} +1 -1
- package/dist/hq/index.d.ts +6 -4
- package/dist/hq/index.js +14 -6
- package/dist/hq/index.js.map +1 -1
- package/dist/{index-Qo4kTzgw.d.ts → index-DWm_PE9L.d.ts} +3 -3
- package/dist/{index-BL7BAx0p.d.ts → index-DqW4o62H.d.ts} +4 -4
- package/dist/index.d.ts +27 -27
- package/dist/index.js +571 -215
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/index.d.ts +4 -4
- package/dist/kernel/index.d.ts +5 -5
- package/dist/kernel/index.js.map +1 -1
- package/dist/{mcp-servers-DS-YUXvF.d.ts → mcp-servers-BpWHTKlE.d.ts} +1 -1
- package/dist/models/index.d.ts +3 -3
- package/dist/{models-registry-DP6pGHet.d.ts → models-registry-CXQFUn5t.d.ts} +1 -1
- package/dist/{multi-agent-coordinator-BvbdNQ14.d.ts → multi-agent-coordinator-jyimfo7D.d.ts} +1 -1
- package/dist/{null-fleet-bus-BxTfXBKo.d.ts → null-fleet-bus-DOGQcvrY.d.ts} +5 -5
- package/dist/observability/index.d.ts +1 -1
- package/dist/{parallel-eternal-engine-Cf-GTegR.d.ts → parallel-eternal-engine-rItJBYp9.d.ts} +6 -6
- package/dist/{path-resolver-DztfnFcv.d.ts → path-resolver-DrpF5MGK.d.ts} +2 -2
- package/dist/{pipeline-sNIkhXeB.d.ts → pipeline-Ckkn3AOA.d.ts} +1 -1
- package/dist/{plan-templates-DYiKFmEb.d.ts → plan-templates-BvHw5Znw.d.ts} +24 -6
- package/dist/{provider-model-resolve-dYAbTs_i.d.ts → provider-model-resolve-nZqnCeaR.d.ts} +1 -1
- package/dist/{provider-runner-Dw8x0F7u.d.ts → provider-runner-zVOn1p67.d.ts} +1 -1
- package/dist/sdd/index.d.ts +5 -5
- package/dist/storage/index.d.ts +12 -7
- package/dist/storage/index.js +250 -111
- package/dist/storage/index.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/types/index.d.ts +13 -13
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export { C as CompactorOptions, a as DefaultErrorHandler, b as DefaultRetryPolicy, E as EternalAutonomyEngine, c as EternalAutonomyOptions, d as EternalEngineState, H as HybridCompactor, I as IterationStage, P as ParallelEngineState, e as ParallelEternalEngine, f as ParallelEternalOptions, g as ParallelIterationStage, T as ToolExecutor } from '../parallel-eternal-engine-
|
|
2
|
-
export { A as AutoCompactionMiddleware, a as AutonomousRunner, b as AutonomousRunnerOptions, c as AutonomyPromptContributorOptions, C as CompactorStrategy, l as ContextWindowBudgetSnapshot, D as DefaultSkillLoader, d as DoneCheckResult, e as DoneConditionChecker, I as IntelligentCompactor, f as IntelligentCompactorOptions, S as SelectiveCompactor, g as SelectiveCompactorOptions, h as SkillLoaderOptions, i as StrategyCompactorOptions, j as buildGoalPreamble, k as createStrategyCompactor, m as makeAutonomyPromptContributor } from '../goal-preamble-
|
|
1
|
+
export { C as CompactorOptions, a as DefaultErrorHandler, b as DefaultRetryPolicy, E as EternalAutonomyEngine, c as EternalAutonomyOptions, d as EternalEngineState, H as HybridCompactor, I as IterationStage, P as ParallelEngineState, e as ParallelEternalEngine, f as ParallelEternalOptions, g as ParallelIterationStage, T as ToolExecutor } from '../parallel-eternal-engine-rItJBYp9.js';
|
|
2
|
+
export { A as AutoCompactionMiddleware, a as AutonomousRunner, b as AutonomousRunnerOptions, c as AutonomyPromptContributorOptions, C as CompactorStrategy, l as ContextWindowBudgetSnapshot, D as DefaultSkillLoader, d as DoneCheckResult, e as DoneConditionChecker, I as IntelligentCompactor, f as IntelligentCompactorOptions, S as SelectiveCompactor, g as SelectiveCompactorOptions, h as SkillLoaderOptions, i as StrategyCompactorOptions, j as buildGoalPreamble, k as createStrategyCompactor, m as makeAutonomyPromptContributor } from '../goal-preamble-hM8BH7TK.js';
|
|
3
3
|
import { P as Provider, a as ReasoningConfig, n as Capabilities, c as Request } from '../context-Dw55zZ_Q.js';
|
|
4
|
-
import { e as BrainDecision, h as BrainDecisionRequest, B as BrainArbiter } from '../brain-
|
|
5
|
-
import {
|
|
4
|
+
import { e as BrainDecision, h as BrainDecisionRequest, B as BrainArbiter } from '../brain-etbcbRwV.js';
|
|
5
|
+
import { J as ModelRuntimeConfig } from '../config-rRS8yorV.js';
|
|
6
6
|
import '../retry-policy-BV7nzeAd.js';
|
|
7
7
|
import '../compactor-72ug-ZRB.js';
|
|
8
|
-
import '../index-
|
|
8
|
+
import '../index-DWm_PE9L.js';
|
|
9
9
|
import '../logger-B63L5bTg.js';
|
|
10
|
-
import '../pipeline-
|
|
10
|
+
import '../pipeline-Ckkn3AOA.js';
|
|
11
11
|
import '../mailbox-types-Ct2hJq0P.js';
|
|
12
12
|
import '../observability-D-HZN_mF.js';
|
|
13
13
|
import '../permission-CC7XFYWG.js';
|
|
14
|
-
import '../agent-subagent-runner-
|
|
15
|
-
import '../goal-store-
|
|
16
|
-
import '../multi-agent-coordinator-
|
|
14
|
+
import '../agent-subagent-runner-BZa_IEcd.js';
|
|
15
|
+
import '../goal-store-CWlbT0TO.js';
|
|
16
|
+
import '../multi-agent-coordinator-jyimfo7D.js';
|
|
17
17
|
import 'node:events';
|
|
18
18
|
import '../skill-DGIXCtdv.js';
|
|
19
19
|
import '../wstack-paths-hOpNLmvf.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { i as AfterIterationHook, j as AfterRunHook, k as AfterToolExecutionHook, l as AgentExtension, B as BeforeIterationHook, m as BeforeRunHook, n as BeforeToolExecutionHook, E as ExtensionRegistry, O as OnErrorHook, v as ProviderRunnerFn, t as ProviderRunnerWrapper } from '../index-
|
|
1
|
+
export { i as AfterIterationHook, j as AfterRunHook, k as AfterToolExecutionHook, l as AgentExtension, B as BeforeIterationHook, m as BeforeRunHook, n as BeforeToolExecutionHook, E as ExtensionRegistry, O as OnErrorHook, v as ProviderRunnerFn, t as ProviderRunnerWrapper } from '../index-DWm_PE9L.js';
|
|
2
2
|
import '../context-Dw55zZ_Q.js';
|
|
3
3
|
import '../logger-B63L5bTg.js';
|
|
4
|
-
import '../pipeline-
|
|
4
|
+
import '../pipeline-Ckkn3AOA.js';
|
|
5
5
|
import '../mailbox-types-Ct2hJq0P.js';
|
|
6
|
-
import '../config-
|
|
6
|
+
import '../config-rRS8yorV.js';
|
|
7
7
|
import '../observability-D-HZN_mF.js';
|
|
8
|
-
import '../brain-
|
|
8
|
+
import '../brain-etbcbRwV.js';
|
|
9
9
|
import '../permission-CC7XFYWG.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as EventBus } from './brain-
|
|
1
|
+
import { E as EventBus } from './brain-etbcbRwV.js';
|
|
2
2
|
import { M as MailboxMessage, a as MailboxAgentStatus, b as Mailbox, c as MailboxSendInput, d as MailboxQuery, e as MailboxAckInput, f as MailboxAckBatchInput, A as AgentRegistrationInput, g as AgentHeartbeatInput, C as ClientRegistrationInput, h as ClientHeartbeatInput, i as ClientStatus, P as PurgeOptions, j as PurgeResult } from './mailbox-types-Ct2hJq0P.js';
|
|
3
3
|
|
|
4
4
|
declare const HQ_PROTOCOL_VERSION: 1;
|
|
@@ -151,6 +151,8 @@ type HqSessionAgentLiveStatus = 'idle' | 'running' | 'streaming' | 'waiting_user
|
|
|
151
151
|
interface HqSessionAgentSummary {
|
|
152
152
|
id: string;
|
|
153
153
|
name: string;
|
|
154
|
+
/** UTC ISO timestamp when this agent/run started, when known. */
|
|
155
|
+
startedAt?: string;
|
|
154
156
|
status: HqSessionAgentLiveStatus;
|
|
155
157
|
currentTool?: string;
|
|
156
158
|
iterations: number;
|
|
@@ -650,6 +652,7 @@ declare class HqPublisher {
|
|
|
650
652
|
* @module GlobalMailbox
|
|
651
653
|
*/
|
|
652
654
|
|
|
655
|
+
type HqPublisherRef = HqPublisher | (() => HqPublisher | undefined);
|
|
653
656
|
/**
|
|
654
657
|
* Derive the project-level mailbox directory path.
|
|
655
658
|
*
|
|
@@ -711,10 +714,11 @@ declare class GlobalMailbox implements Mailbox {
|
|
|
711
714
|
/**
|
|
712
715
|
* @param projectDir — `~/.wrongstack/projects/<slug>/`
|
|
713
716
|
* @param events — optional EventBus for real-time TUI/WebUI notifications
|
|
714
|
-
* @param hqPublisher — optional HQ publisher for cross-project telemetry
|
|
717
|
+
* @param hqPublisher — optional HQ publisher, or getter, for cross-project telemetry
|
|
715
718
|
*/
|
|
716
|
-
constructor(projectDir: string, events?: EventBus, hqPublisher?:
|
|
719
|
+
constructor(projectDir: string, events?: EventBus, hqPublisher?: HqPublisherRef);
|
|
717
720
|
private get hqMailboxId();
|
|
721
|
+
private get hqPublisher();
|
|
718
722
|
private publishHqMailboxEvent;
|
|
719
723
|
private publishHqMailboxSnapshot;
|
|
720
724
|
send(input: MailboxSendInput): Promise<MailboxMessage>;
|
|
@@ -3,12 +3,12 @@ import { W as WstackPaths } from './wstack-paths-hOpNLmvf.js';
|
|
|
3
3
|
import { P as Provider, C as Context } from './context-Dw55zZ_Q.js';
|
|
4
4
|
import { C as Compactor, a as CompactReport } from './compactor-72ug-ZRB.js';
|
|
5
5
|
import { M as MessageSelector } from './selector-C4ORTOid.js';
|
|
6
|
-
import { E as EventBus } from './brain-
|
|
7
|
-
import { M as MiddlewareHandler } from './pipeline-
|
|
6
|
+
import { E as EventBus } from './brain-etbcbRwV.js';
|
|
7
|
+
import { M as MiddlewareHandler } from './pipeline-Ckkn3AOA.js';
|
|
8
8
|
import { S as SessionEventBridge } from './session-event-bridge-CeNpUL9w.js';
|
|
9
|
-
import { C as ContextWindowAggressiveOn, h as ContextWindowPolicy } from './config-
|
|
10
|
-
import { g as Agent, D as DoneCondition } from './agent-subagent-runner-
|
|
11
|
-
import { R as RunResult, S as SystemPromptContributor } from './index-
|
|
9
|
+
import { C as ContextWindowAggressiveOn, h as ContextWindowPolicy } from './config-rRS8yorV.js';
|
|
10
|
+
import { g as Agent, D as DoneCondition } from './agent-subagent-runner-BZa_IEcd.js';
|
|
11
|
+
import { R as RunResult, S as SystemPromptContributor } from './index-DWm_PE9L.js';
|
|
12
12
|
|
|
13
13
|
interface SkillLoaderOptions {
|
|
14
14
|
paths: WstackPaths;
|
package/dist/hq/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Z as HqRedactionPolicy, r as HqEventEnvelope, U as HqPublisher, n as HqClientIdentity, aa as HqSocketFactory, G as GlobalMailbox, ah as HqTranscriptEntry } from '../global-mailbox-
|
|
2
|
-
export { D as DEFAULT_HQ_REDACTION_POLICY, H as HQ_PROTOCOL_VERSION, a as HqAgentMessagePayload, b as HqAgentStatusPayload, c as HqAlertMessage, d as HqBrowserEventMessage, e as HqBrowserMessage, f as HqBrowserSnapshotMessage, g as HqClientCapability, h as HqClientCommandAckMessage, i as HqClientCommandPollMessage, j as HqClientEventMessage, k as HqClientHeartbeatPayload, l as HqClientHelloMessage, m as HqClientHelloPayload, o as HqClientKind, p as HqClientMessage, q as HqClientRecord, s as HqEventPayloadResult, t as HqEventType, u as HqFleetEventPayload, v as HqFleetSnapshotPayload, w as HqFleetSummary, x as HqGitSnapshotPayload, y as HqMachineRecord, z as HqMailboxAgentStatus, A as HqMailboxAgentSummary, B as HqMailboxEventAction, C as HqMailboxEventPayload, E as HqMailboxMappingOptions, F as HqMailboxMessageSummary, I as HqMailboxMessageType, J as HqMailboxPriority, K as HqMailboxSnapshotOptions, L as HqMailboxSnapshotPayload, M as HqMailboxSummary, N as HqParseResult, O as HqPathPolicy, P as HqProjectIdentity, Q as HqProjectRecord, R as HqProjectStatus, S as HqProtocolVersion, T as HqPublishEventOptions, V as HqPublisherCommandHandler, W as HqPublisherCommandResult, X as HqPublisherOptions, Y as HqQueuedCommand, _ as HqServerCommandBatchMessage, $ as HqServerMessage, a0 as HqSessionAgentLiveStatus, a1 as HqSessionAgentSummary, a2 as HqSessionEndedPayload, a3 as HqSessionLiveStatus, a4 as HqSessionSnapshotPayload, a5 as HqSessionStartedPayload, a6 as HqSessionStatus, a7 as HqSessionStatusPayload, a8 as HqSessionSummary, a9 as HqSnapshot, ab as HqSocketLike, ac as HqSubagentSummary, ad as HqToolArgsPolicy, ae as HqToolCompletedPayload, af as HqToolStartedPayload, ag as HqTranscriptAppendPayload, ai as HqTranscriptRole, aj as HqUsagePayload, ak as HqWelcomePayload, al as HqWorklistCounts, am as HqWorklistSnapshotPayload, an as HqWorkspaceKind, ao as createHqEventEnvelope, ap as createMailboxEventPayload, aq as createMailboxSnapshotPayload, ar as createMailboxSnapshotPayloadFromMailbox, as as mapMailboxAgentToHqSummary, at as mapMailboxMessageToHqSummary, au as parseHqEventPayload, av as parseHqFrame } from '../global-mailbox-
|
|
3
|
-
import { E as EventBus } from '../brain-
|
|
4
|
-
import {
|
|
1
|
+
import { Z as HqRedactionPolicy, r as HqEventEnvelope, U as HqPublisher, n as HqClientIdentity, aa as HqSocketFactory, G as GlobalMailbox, ah as HqTranscriptEntry } from '../global-mailbox-DJ4EoRr0.js';
|
|
2
|
+
export { D as DEFAULT_HQ_REDACTION_POLICY, H as HQ_PROTOCOL_VERSION, a as HqAgentMessagePayload, b as HqAgentStatusPayload, c as HqAlertMessage, d as HqBrowserEventMessage, e as HqBrowserMessage, f as HqBrowserSnapshotMessage, g as HqClientCapability, h as HqClientCommandAckMessage, i as HqClientCommandPollMessage, j as HqClientEventMessage, k as HqClientHeartbeatPayload, l as HqClientHelloMessage, m as HqClientHelloPayload, o as HqClientKind, p as HqClientMessage, q as HqClientRecord, s as HqEventPayloadResult, t as HqEventType, u as HqFleetEventPayload, v as HqFleetSnapshotPayload, w as HqFleetSummary, x as HqGitSnapshotPayload, y as HqMachineRecord, z as HqMailboxAgentStatus, A as HqMailboxAgentSummary, B as HqMailboxEventAction, C as HqMailboxEventPayload, E as HqMailboxMappingOptions, F as HqMailboxMessageSummary, I as HqMailboxMessageType, J as HqMailboxPriority, K as HqMailboxSnapshotOptions, L as HqMailboxSnapshotPayload, M as HqMailboxSummary, N as HqParseResult, O as HqPathPolicy, P as HqProjectIdentity, Q as HqProjectRecord, R as HqProjectStatus, S as HqProtocolVersion, T as HqPublishEventOptions, V as HqPublisherCommandHandler, W as HqPublisherCommandResult, X as HqPublisherOptions, Y as HqQueuedCommand, _ as HqServerCommandBatchMessage, $ as HqServerMessage, a0 as HqSessionAgentLiveStatus, a1 as HqSessionAgentSummary, a2 as HqSessionEndedPayload, a3 as HqSessionLiveStatus, a4 as HqSessionSnapshotPayload, a5 as HqSessionStartedPayload, a6 as HqSessionStatus, a7 as HqSessionStatusPayload, a8 as HqSessionSummary, a9 as HqSnapshot, ab as HqSocketLike, ac as HqSubagentSummary, ad as HqToolArgsPolicy, ae as HqToolCompletedPayload, af as HqToolStartedPayload, ag as HqTranscriptAppendPayload, ai as HqTranscriptRole, aj as HqUsagePayload, ak as HqWelcomePayload, al as HqWorklistCounts, am as HqWorklistSnapshotPayload, an as HqWorkspaceKind, ao as createHqEventEnvelope, ap as createMailboxEventPayload, aq as createMailboxSnapshotPayload, ar as createMailboxSnapshotPayloadFromMailbox, as as mapMailboxAgentToHqSummary, at as mapMailboxMessageToHqSummary, au as parseHqEventPayload, av as parseHqFrame } from '../global-mailbox-DJ4EoRr0.js';
|
|
3
|
+
import { E as EventBus, T as TrackedAgentSnapshot } from '../brain-etbcbRwV.js';
|
|
4
|
+
import { y as HqClientConfig } from '../config-rRS8yorV.js';
|
|
5
5
|
import '../mailbox-types-Ct2hJq0P.js';
|
|
6
6
|
import '../context-Dw55zZ_Q.js';
|
|
7
7
|
|
|
@@ -238,6 +238,8 @@ interface SessionTelemetryBridgeOptions {
|
|
|
238
238
|
projectName?: string | undefined;
|
|
239
239
|
/** Override the global root used to resolve the session JSONL path. */
|
|
240
240
|
globalRoot?: string | undefined;
|
|
241
|
+
/** Last-known agents to publish immediately before the next bus update. */
|
|
242
|
+
initialAgents?: readonly TrackedAgentSnapshot[] | undefined;
|
|
241
243
|
gitBranch?: string | undefined;
|
|
242
244
|
startedAt?: string | undefined;
|
|
243
245
|
/** Snapshot republish interval (also refreshes lastActivity). Default 2500ms. */
|
package/dist/hq/index.js
CHANGED
|
@@ -1235,7 +1235,7 @@ var GlobalMailbox = class {
|
|
|
1235
1235
|
/**
|
|
1236
1236
|
* @param projectDir — `~/.wrongstack/projects/<slug>/`
|
|
1237
1237
|
* @param events — optional EventBus for real-time TUI/WebUI notifications
|
|
1238
|
-
* @param hqPublisher — optional HQ publisher for cross-project telemetry
|
|
1238
|
+
* @param hqPublisher — optional HQ publisher, or getter, for cross-project telemetry
|
|
1239
1239
|
*/
|
|
1240
1240
|
constructor(projectDir, events, hqPublisher) {
|
|
1241
1241
|
this.messagePath = path2.join(projectDir, MAILBOX_FILE);
|
|
@@ -1247,15 +1247,19 @@ var GlobalMailbox = class {
|
|
|
1247
1247
|
get hqMailboxId() {
|
|
1248
1248
|
return `${path2.basename(path2.dirname(this.messagePath))}:mailbox`;
|
|
1249
1249
|
}
|
|
1250
|
+
get hqPublisher() {
|
|
1251
|
+
return typeof this._hqPublisher === "function" ? this._hqPublisher() : this._hqPublisher;
|
|
1252
|
+
}
|
|
1250
1253
|
publishHqMailboxEvent(input) {
|
|
1251
1254
|
try {
|
|
1252
|
-
this.
|
|
1255
|
+
this.hqPublisher?.publishMailboxEvent(input);
|
|
1253
1256
|
} catch {
|
|
1254
1257
|
}
|
|
1255
1258
|
}
|
|
1256
1259
|
publishHqMailboxSnapshot() {
|
|
1257
|
-
|
|
1258
|
-
|
|
1260
|
+
const publisher = this.hqPublisher;
|
|
1261
|
+
if (publisher === void 0) return;
|
|
1262
|
+
void publisher.publishMailboxSnapshot(this, { mailboxId: this.hqMailboxId }).catch(() => {
|
|
1259
1263
|
});
|
|
1260
1264
|
}
|
|
1261
1265
|
// ── Messages ────────────────────────────────────────────────────────────
|
|
@@ -2327,6 +2331,7 @@ function toAgentSummary(a) {
|
|
|
2327
2331
|
iterations: a.iterations,
|
|
2328
2332
|
toolCalls: a.toolCalls,
|
|
2329
2333
|
lastActivityAt: a.lastActivityAt,
|
|
2334
|
+
...a.startedAt !== void 0 ? { startedAt: a.startedAt } : {},
|
|
2330
2335
|
...a.currentTool !== void 0 ? { currentTool: a.currentTool } : {},
|
|
2331
2336
|
...a.costUsd !== void 0 ? { costUsd: a.costUsd } : {},
|
|
2332
2337
|
...a.tokensIn !== void 0 ? { tokensIn: a.tokensIn } : {},
|
|
@@ -2352,8 +2357,11 @@ function startSessionTelemetryBridge(opts) {
|
|
|
2352
2357
|
...opts.globalRoot !== void 0 ? { globalRoot: opts.globalRoot } : {}
|
|
2353
2358
|
});
|
|
2354
2359
|
const sessionFile = path2.join(wpaths.projectSessions, `${opts.sessionId}.jsonl`);
|
|
2355
|
-
let agents = [];
|
|
2356
|
-
let lastActivityAt =
|
|
2360
|
+
let agents = (opts.initialAgents ?? []).map(toAgentSummary);
|
|
2361
|
+
let lastActivityAt = agents.reduce(
|
|
2362
|
+
(latest, agent) => agent.lastActivityAt > latest ? agent.lastActivityAt : latest,
|
|
2363
|
+
startedAt
|
|
2364
|
+
);
|
|
2357
2365
|
let lastSnapshotHash = "";
|
|
2358
2366
|
let disposed = false;
|
|
2359
2367
|
function buildSnapshot() {
|