agent-transport-system 0.7.16 → 0.7.18
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/ats-dev.js +2 -2
- package/dist/ats.js +238 -32
- package/dist/ats.js.map +1 -1
- package/dist/{daemon-runtime-lease-C1cET4lj.js → daemon-runtime-lease-Bwn8-GTu.js} +1 -1
- package/dist/{lock-BbSDV7cL.js → lock-CiHfZzrM.js} +66 -20
- package/dist/lock-CiHfZzrM.js.map +1 -0
- package/dist/{runtime-config-CudFeMaG.js → runtime-config-p7Wvlo1Q.js} +2 -2
- package/dist/{runtime-config-CudFeMaG.js.map → runtime-config-p7Wvlo1Q.js.map} +1 -1
- package/package.json +1 -1
- package/dist/lock-BbSDV7cL.js.map +0 -1
package/dist/ats-dev.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import "./lock-
|
|
4
|
-
import { v as DEV_LOCAL_GATEWAY_BASE_URL } from "./runtime-config-
|
|
3
|
+
import "./lock-CiHfZzrM.js";
|
|
4
|
+
import { v as DEV_LOCAL_GATEWAY_BASE_URL } from "./runtime-config-p7Wvlo1Q.js";
|
|
5
5
|
|
|
6
6
|
//#region src/ats-dev.ts
|
|
7
7
|
const LOCAL_GATEWAY_URL = DEV_LOCAL_GATEWAY_BASE_URL;
|
package/dist/ats.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { $ as
|
|
3
|
+
import { $ as formatLocalSetupActionLabel, $n as conversationExecutionStateSchema, $t as signalEnvelopeSchema, A as continuitySchema, An as DAEMON_HUB_SCHEMA_VERSION, At as patchProfileSpaceHistoryStatusResponseSchema, B as daemonRouteCatalogCacheSchema, Bn as SPACE_MENTION_REJECT_NOTICE_PURPOSE, Bt as prepareSessionResponseSchema, C as atsProfileIdSchema, Cn as AGENT_REPLYING_END_PURPOSE, Cr as parseOptionalClientMessageId, Ct as localRuntimesQuerySchema, D as catchupResponseSchema, Dn as ATSD_TASK_RESULT_SCHEMA_VERSION, Dr as resolveSingleSpaceMentionLabels, Dt as notifyAgentProfileRouteCatalogChangedBodySchema, E as atsdControlPlaneResponseSchema, En as AGENT_REPLY_PREVIEW_PURPOSE, Er as resolveMessageEnvelopeTargetField, Et as normalizeSpaceCursorPatch, F as createSpaceThreadBodySchema, Fn as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, Ft as postNormalMessageResponseSchema, G as ensureAgentProfilePrimaryBindingBodySchema, Gn as atsdTaskResultEnvelopeWriteSchema, Gt as querySpaceDeletionTombstonesResponseSchema, H as daemonRuntimeLeaseSchema, Hn as SPACE_UPDATES_MAX_LIMIT, Ht as projectObservabilityWakeCorrelation, I as createSpaceThreadResponseSchema, In as MAX_SIGNAL_REPLY_TO_PREVIEW_LENGTH, It as postSpaceMembersBodySchema, J as forgetComputerResponseSchema, Jn as buildAgentControllerConversationRef, Jt as resolveStartHandoffBodySchema, K as ensureAgentProfilePrimaryBindingResponseSchema, Kn as atsdTaskResultOpenClawGatewayVisibilityStatusSchema, Kt as removeSpaceMembersResponseSchema, L as createStartSessionBodySchema, Ln as MESSAGE_MENTION_TYPE_VALUES, Lt as postSpaceMembersResponseSchema, M as createSpaceDiagnosticReportBodySchema, Mn as DISPATCH_ACTIVITY_FAILED_PURPOSE, Mr as sanitizeSignalTextPreview, Mt as patchSpaceContractResponseSchema, N as createSpaceDiagnosticReportResponseSchema, Nn as DISPATCH_ACTIVITY_RETRYING_PURPOSE, Nt as patchStartSessionBodySchema, O as claimExecutionDiagnosticsQuerySchema, On as CONVERSATION_CONTINUITY_WARNING_PURPOSE, Or as resolveSpaceMentionLabels, Ot as notifyAgentProfileRouteCatalogChangedResponseSchema, P as createSpaceResponseSchema, Pn as LEGACY_RUNTIME_DISPATCH_POLICY, Pt as postNormalMessageBodySchema, Q as formatLocalSetupActionDescription, Qn as collectCanonicalMentionTextFragments, Qt as setLocalRuntimeDisplayNameBodySchema, R as currentDeviceTargetResponseSchema, Rn as SPACE_MEMBER_JOIN_NOTICE_PURPOSE, Rt as postSpaceThreadSignalBodySchema, S as agentProfileBindingRouteParamsSchema, Sn as writeSetupTokenLocalRuntimeObservedMetadataResponseSchema, Sr as parseAgentControllerRef$1, St as listSpaceThreadsResponseSchema, T as atsdControlPlaneRequestSchema, Tn as AGENT_REPLY_PREVIEW_END_PURPOSE, Tr as resolveBuiltinAgentControllerConversationKind, Tt as normalizeListSignalsReadQuerySemantics, U as deleteSpaceResponseSchema, Un as atsRuntimeProfileIdSchema, Ut as projectSpaceDispatchTraceFinalVisibleOutcome, V as daemonRouteObservationResponseSchema, Vn as SPACE_PASSWORD_MIN_LENGTH, Vt as prepareSessionStreamServerFrameSchema, W as dispatchBriefSchema, Wn as atsSpaceEgressActionSchema, Wt as providerDispatchRuntimeContextSchema, X as formatLocalComponentsSummaryDescription, Xn as canonicalizeAgentControllerRef, Xt as serverErrorFrameSchema, Y as forgetCurrentComputerResponseSchema, Yn as buildAgentControllerRoutingKey, Yt as resolveStartHandoffResponseSchema, Z as formatLocalComponentsSummaryLabel, Zn as canonicalizeBuiltinAgentControllerRef, Zt as setCurrentDeviceTargetBodySchema, _ as ATSD_CONTROL_PLANE_SCHEMA_VERSION, _n as upsertProfileSpaceHistoryResponseSchema, _r as normalizeBuiltinAgentControllerId, _t as installedLocalComponentsSnapshotSchema, a as runWithHeldLock, an as startDeviceProjectionSchema, ar as daemonHubDispatchPreviewRequestSchema, at as getAgentProfilePrimaryBindingResponseSchema, b as SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS, bn as writeCurrentDeviceObservedMetadataResponseSchema, br as normalizeOptionalWorkingDirectory, bt as listSpaceThreadEventsResponseSchema, c as LEGACY_ATS_CLI_CONTEXT_ENV_KEY, cn as startSessionResponseSchema, cr as daemonHubHeartbeatResponseSchema, ct as getSpaceContractResponseSchema, d as resolveCliContext, dn as startSessionWithTokenResponseSchema, dr as daemonHubRouteCatalogChangedFramePayloadSchema, dt as getSpaceStatusResponseSchema, en as spaceCreatorSchema, er as createDaemonRouteObservationSummary, et as gatewayErrorCodeSchema, f as resolveCliContextId, fn as structuredGuidePayloadFromInputSchema, fr as daemonHubSubmitTaskResultRequestSchema, ft as getSpaceThreadResponseSchema, g as resolveMappedPublicAgentFailureReason, gn as submitRuntimeRegistrationResponseSchema, gr as getSpaceMessageAddressingRelationSupportForTargetKind, gt as incomingServerMessageSchema, h as resolveBuiltinAgentControllerBrand, hn as submitRuntimeRegistrationBodySchema, hr as formatCanonicalMentionLiteral, ht as getSpaceWakeTraceWaterfallResponseSchema, i as releaseLock, in as spaceViewerMembershipResponseSchema, ir as daemonHubDispatchPreviewEndRequestSchema, it as getAgentExecutionReadinessResponseSchema, j as createSpaceBodySchema, jn as DISPATCH_ACTIVITY_DISPATCHING_PURPOSE, jr as runtimeCoordinatorExecutionTokenEnvelopeSchema, jt as patchSpaceContractBodySchema, k as claimExecutionDiagnosticsResponseSchema, kn as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, kt as observabilityWakeTraceSelectorSchema, l as listCliContextStates, ln as startSessionSpaceChoiceBodySchema, lr as daemonHubRegisterSessionRequestSchema, lt as getSpaceDispatchLookupResponseSchema, m as CODEX_UPGRADE_REQUIRED_REASON, mn as submitRuntimeAgentControllerReportsResponseSchema, mr as daemonStreamFrameSchema, mt as getSpaceWakeProgressResponseSchema, n as isAtsLockError, nn as spaceMembersSnapshotSchema, nr as daemonHubDeliveryExecutionIdentitySchema, nt as getAgentExecutionReadinessBatchBodySchema, o as tryCleanupStaleLock, on as startProfileReadinessSummarySchema, or as daemonHubDispatchRuntimeEvidenceRequestSchema, ot as getPrepareReadinessQuerySchema, p as writeCliContextState, pn as submitRuntimeAgentControllerReportsBodySchema, pr as daemonServiceContractSchema, pt as getSpaceUpdatesResponseSchema, q as entryBriefSchema, qn as atsdTaskResultPayloadSchema, qt as resolveSpaceDispatchTraceRootCause, r as readLockMeta, rn as spaceMetaSchema, rr as daemonHubDispatchLifecycleRequestSchema, rt as getAgentExecutionReadinessBatchResponseSchema, s as ATS_CLI_CONTEXT_ENV_KEY, sn as startSessionProgressSchema, sr as daemonHubHeartbeatRequestSchema, st as getPrepareReadinessResponseSchema, t as acquireLock, tn as spaceDispatchTraceResponseSchema, tr as daemonHubDeliverDispatchRequestSchema, tt as gatewayErrorEnvelopeSchema, u as readCliContextState, un as startSessionSpaceChoiceResponseSchema, ur as daemonHubRegisterSessionResponseSchema, ut as getSpaceDispatchResultResponseSchema, v as DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME, vn as upsertSpaceDeletionTombstoneResponseSchema, vr as normalizeKnownBuiltinAgentControllerId, vt as leaveSpaceResponseSchema, w as atsRequestContextSchema, wn as AGENT_REPLYING_PURPOSE, wr as profileWorkspaceModeSchema, wt as localRuntimesResponseSchema, x as agentExecutionReadinessRouteParamsSchema, xn as writeSetupTokenLocalRuntimeObservedMetadataBodySchema, xr as normalizeSpacePasswordText, xt as listSpaceThreadSignalsResponseSchema, y as LOCAL_COMPONENTS_SCHEMA_VERSION, yn as writeCurrentDeviceObservedMetadataBodySchema, yr as normalizeMessageEnvelope, yt as listProfileSpaceHistoryResponseSchema, z as currentLocalRuntimeReplyReadinessResponseSchema, zn as SPACE_MEMBER_REMOVE_NOTICE_PURPOSE, zt as postSpaceThreadSignalResponseSchema } from "./lock-CiHfZzrM.js";
|
|
4
4
|
import { A as runtimeDir, C as normalizeAtsProfileId, D as resolveAtsEnvPreset, E as resolveAtsCliEntryNameFromArgv, F as systemDir, N as skillsDir, O as resolveAtsRootDir, P as spacesDir, S as normalizeAccountKey, T as profileViewPath, a as accountProfileWorkspacePath, c as atsRootDir, d as deviceOpenClawProfileBootstrapPath, f as deviceOpenClawProfileDir, i as accountProfileViewPath, j as runtimeLogsDir, k as resolveDefaultAtsHomeDirname, n as accountProfileLocalMetaPath, o as accountsDir, p as deviceOpenClawProfileWorkspaceDir, r as accountProfileSpaceCacheDir, s as atsBackupsDir, t as ATS_HOME_ENV_KEY, w as profileDir, y as legacyAccountProfileSpacesDir } from "./paths-DFiopT5Y.js";
|
|
5
|
-
import { A as toSpaceCursorUrl, B as toSpaceSignalsUrl, C as resolveDefaultGatewayBaseUrl, D as toDaemonRouteObservationUrl, E as toClaimExecutionDiagnosticsUrl, F as toSpaceMembersUrl, H as toSpaceWsUrl, I as toSpaceMetaUrl, L as toSpacePasswordUrl, M as toSpaceDispatchLookupUrl, N as toSpaceDispatchTraceUrl, O as toSpaceContractUrl, P as toSpaceLeaveUrl, R as toSpaceRemoveMembersUrl, S as resolveBaseUrlOrNull, T as normalizeBaseUrl, V as toSpaceUpdatesUrl, _ as updateConfiguredStartV1OnboardingState, a as getConfiguredDeviceRuntimeState, b as normalizeGatewayBaseUrlOrNull, c as getConfiguredStartV1OnboardingState, d as resolveRuntimeSkillsCustomTargetId, f as setConfiguredBaseUrl, g as updateConfiguredSkillsConfig, h as updateConfiguredOnboardingConfig, i as getConfiguredDaemonDispatchLimits, j as toSpaceDeleteUrl, k as toSpaceCreateUrl, l as getConfiguredViewCustomization, m as updateConfiguredDeviceRuntimeState, n as alignRuntimeConfigStorage, o as getConfiguredOnboardingDisclaimerAcceptedAt, p as setConfiguredSkillsConfig, r as createDefaultRuntimeAgentControllerSettings, s as getConfiguredSkillsConfig, t as DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE, u as getRuntimeConfigReadHealth, w as resolveExplicitGatewayUrlOrThrow, x as resolveBaseUrl, y as normalizeGatewayBaseUrl, z as toSpaceResultUrl } from "./runtime-config-
|
|
5
|
+
import { A as toSpaceCursorUrl, B as toSpaceSignalsUrl, C as resolveDefaultGatewayBaseUrl, D as toDaemonRouteObservationUrl, E as toClaimExecutionDiagnosticsUrl, F as toSpaceMembersUrl, H as toSpaceWsUrl, I as toSpaceMetaUrl, L as toSpacePasswordUrl, M as toSpaceDispatchLookupUrl, N as toSpaceDispatchTraceUrl, O as toSpaceContractUrl, P as toSpaceLeaveUrl, R as toSpaceRemoveMembersUrl, S as resolveBaseUrlOrNull, T as normalizeBaseUrl, V as toSpaceUpdatesUrl, _ as updateConfiguredStartV1OnboardingState, a as getConfiguredDeviceRuntimeState, b as normalizeGatewayBaseUrlOrNull, c as getConfiguredStartV1OnboardingState, d as resolveRuntimeSkillsCustomTargetId, f as setConfiguredBaseUrl, g as updateConfiguredSkillsConfig, h as updateConfiguredOnboardingConfig, i as getConfiguredDaemonDispatchLimits, j as toSpaceDeleteUrl, k as toSpaceCreateUrl, l as getConfiguredViewCustomization, m as updateConfiguredDeviceRuntimeState, n as alignRuntimeConfigStorage, o as getConfiguredOnboardingDisclaimerAcceptedAt, p as setConfiguredSkillsConfig, r as createDefaultRuntimeAgentControllerSettings, s as getConfiguredSkillsConfig, t as DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE, u as getRuntimeConfigReadHealth, w as resolveExplicitGatewayUrlOrThrow, x as resolveBaseUrl, y as normalizeGatewayBaseUrl, z as toSpaceResultUrl } from "./runtime-config-p7Wvlo1Q.js";
|
|
6
6
|
import { createRequire } from "node:module";
|
|
7
7
|
import { Command, Option } from "commander";
|
|
8
8
|
import { accessSync, appendFileSync, chmodSync, constants, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -27,7 +27,7 @@ import wrapAnsi from "wrap-ansi";
|
|
|
27
27
|
import { Box, Container, Editor, Key, ProcessTerminal, TUI, Text, getEditorKeybindings, matchesKey } from "@mariozechner/pi-tui";
|
|
28
28
|
|
|
29
29
|
//#region package.json
|
|
30
|
-
var version = "0.7.
|
|
30
|
+
var version = "0.7.18";
|
|
31
31
|
var package_default = {
|
|
32
32
|
$schema: "https://www.schemastore.org/package.json",
|
|
33
33
|
name: "agent-transport-system",
|
|
@@ -4338,7 +4338,7 @@ async function setDaemonServiceRuntimeState(state, pathInput = {}) {
|
|
|
4338
4338
|
await writeDaemonServiceRuntimeState(state, pathInput);
|
|
4339
4339
|
}
|
|
4340
4340
|
async function clearDaemonServiceRuntimeState(pathInput = {}) {
|
|
4341
|
-
const { clearDaemonRuntimeLease } = await import("./daemon-runtime-lease-
|
|
4341
|
+
const { clearDaemonRuntimeLease } = await import("./daemon-runtime-lease-Bwn8-GTu.js");
|
|
4342
4342
|
await Promise.all([rm(daemonServiceRuntimeStatePath(pathInput), { force: true }), clearDaemonRuntimeLease(pathInput)]);
|
|
4343
4343
|
}
|
|
4344
4344
|
async function withDaemonServiceRunLock(callback, meta = {
|
|
@@ -18344,10 +18344,12 @@ function normalizeApiBaseUrl(baseUrl) {
|
|
|
18344
18344
|
}
|
|
18345
18345
|
const readClaimExecutionDiagnosticsInputSchema = claimExecutionDiagnosticsQuerySchema.extend({ requestContext: atsRequestContextSchema.optional() });
|
|
18346
18346
|
const FALLBACK_GATEWAY_HTTP_ERROR_CODE$1 = "gateway.http_error";
|
|
18347
|
+
const INVALID_RESPONSE_ERROR_CODE = "gateway.invalid_response";
|
|
18347
18348
|
const GENERIC_NETWORK_ERROR_CODES = ["network.timeout", "network.request_failed"];
|
|
18348
18349
|
const KNOWN_API_CLIENT_ERROR_CODES = new Set([
|
|
18349
18350
|
...gatewayErrorCodeSchema.options,
|
|
18350
18351
|
FALLBACK_GATEWAY_HTTP_ERROR_CODE$1,
|
|
18352
|
+
INVALID_RESPONSE_ERROR_CODE,
|
|
18351
18353
|
...GENERIC_NETWORK_ERROR_CODES
|
|
18352
18354
|
]);
|
|
18353
18355
|
var AtsApiClientHttpError = class extends Error {
|
|
@@ -18366,6 +18368,26 @@ var AtsApiClientHttpError = class extends Error {
|
|
|
18366
18368
|
this.upstreamCode = normalizeOptionalText$32(input.upstreamCode);
|
|
18367
18369
|
}
|
|
18368
18370
|
};
|
|
18371
|
+
var AtsApiClientInvalidResponseError = class extends Error {
|
|
18372
|
+
code = INVALID_RESPONSE_ERROR_CODE;
|
|
18373
|
+
operation;
|
|
18374
|
+
requestId;
|
|
18375
|
+
status;
|
|
18376
|
+
rawBody;
|
|
18377
|
+
schemaIssueMessage;
|
|
18378
|
+
schemaIssuePath;
|
|
18379
|
+
upstreamCode = null;
|
|
18380
|
+
constructor(input) {
|
|
18381
|
+
super(input.message);
|
|
18382
|
+
this.name = "AtsApiClientInvalidResponseError";
|
|
18383
|
+
this.operation = input.operation;
|
|
18384
|
+
this.requestId = normalizeOptionalText$32(input.requestId);
|
|
18385
|
+
this.status = input.status;
|
|
18386
|
+
this.rawBody = input.rawBody;
|
|
18387
|
+
this.schemaIssueMessage = normalizeOptionalText$32(input.schemaIssue?.message);
|
|
18388
|
+
this.schemaIssuePath = formatSchemaIssuePath(input.schemaIssue);
|
|
18389
|
+
}
|
|
18390
|
+
};
|
|
18369
18391
|
function toStructuredApiClientFailure(error) {
|
|
18370
18392
|
if (error instanceof AtsApiClientHttpError) return {
|
|
18371
18393
|
code: error.code,
|
|
@@ -18374,13 +18396,26 @@ function toStructuredApiClientFailure(error) {
|
|
|
18374
18396
|
status: error.status,
|
|
18375
18397
|
upstreamCode: error.upstreamCode
|
|
18376
18398
|
};
|
|
18377
|
-
return {
|
|
18399
|
+
if (error instanceof AtsApiClientInvalidResponseError) return withInvalidResponseDiagnostics({
|
|
18400
|
+
code: error.code,
|
|
18401
|
+
message: normalizeFailureMessage$1(error.message),
|
|
18402
|
+
requestId: error.requestId,
|
|
18403
|
+
status: error.status,
|
|
18404
|
+
upstreamCode: null
|
|
18405
|
+
}, {
|
|
18406
|
+
schemaIssueMessage: error.schemaIssueMessage,
|
|
18407
|
+
schemaIssuePath: error.schemaIssuePath
|
|
18408
|
+
});
|
|
18409
|
+
return withInvalidResponseDiagnostics({
|
|
18378
18410
|
code: readGenericErrorCode$1(error),
|
|
18379
18411
|
message: normalizeFailureMessage$1(readFailureMessage(error)),
|
|
18380
18412
|
requestId: readOptionalObjectTextField(error, "requestId"),
|
|
18381
18413
|
status: readOptionalObjectStatus(error),
|
|
18382
18414
|
upstreamCode: readOptionalObjectTextField(error, "upstreamCode")
|
|
18383
|
-
}
|
|
18415
|
+
}, {
|
|
18416
|
+
schemaIssueMessage: readOptionalObjectTextField(error, "schemaIssueMessage"),
|
|
18417
|
+
schemaIssuePath: readOptionalObjectTextField(error, "schemaIssuePath")
|
|
18418
|
+
});
|
|
18384
18419
|
}
|
|
18385
18420
|
function readApiClientTextResponse(input) {
|
|
18386
18421
|
return input.response.text().then((raw) => {
|
|
@@ -18398,7 +18433,14 @@ async function readApiClientJsonResponse(input) {
|
|
|
18398
18433
|
raw
|
|
18399
18434
|
});
|
|
18400
18435
|
const parsed = input.schema.safeParse(parseJsonResponse$2(raw));
|
|
18401
|
-
if (!parsed.success) throw new
|
|
18436
|
+
if (!parsed.success) throw new AtsApiClientInvalidResponseError({
|
|
18437
|
+
message: input.invalidMessage,
|
|
18438
|
+
operation: input.operation,
|
|
18439
|
+
requestId: input.response.headers.get(ATS_HEADER_REQUEST_ID),
|
|
18440
|
+
status: input.response.status,
|
|
18441
|
+
rawBody: raw,
|
|
18442
|
+
schemaIssue: parsed.error?.issues?.[0] ?? null
|
|
18443
|
+
});
|
|
18402
18444
|
return parsed.data;
|
|
18403
18445
|
}
|
|
18404
18446
|
function assertApiClientResponseOk(input) {
|
|
@@ -18437,6 +18479,19 @@ function normalizeOptionalText$32(value) {
|
|
|
18437
18479
|
const normalized = String(value ?? "").trim();
|
|
18438
18480
|
return normalized.length > 0 ? normalized : null;
|
|
18439
18481
|
}
|
|
18482
|
+
function formatSchemaIssuePath(issue) {
|
|
18483
|
+
const path = issue?.path;
|
|
18484
|
+
if (!path || path.length === 0) return null;
|
|
18485
|
+
return path.map((part) => String(part)).join(".");
|
|
18486
|
+
}
|
|
18487
|
+
function withInvalidResponseDiagnostics(failure, diagnostics) {
|
|
18488
|
+
if (!(diagnostics.schemaIssueMessage || diagnostics.schemaIssuePath)) return failure;
|
|
18489
|
+
return {
|
|
18490
|
+
...failure,
|
|
18491
|
+
schemaIssueMessage: diagnostics.schemaIssueMessage,
|
|
18492
|
+
schemaIssuePath: diagnostics.schemaIssuePath
|
|
18493
|
+
};
|
|
18494
|
+
}
|
|
18440
18495
|
function normalizeFailureMessage$1(value) {
|
|
18441
18496
|
return normalizeOptionalText$32(value) ?? "Unknown error.";
|
|
18442
18497
|
}
|
|
@@ -18501,7 +18556,8 @@ function createAtsApiClient(config) {
|
|
|
18501
18556
|
input
|
|
18502
18557
|
}),
|
|
18503
18558
|
schema: input.schema,
|
|
18504
|
-
invalidMessage: input.invalidMessage
|
|
18559
|
+
invalidMessage: input.invalidMessage,
|
|
18560
|
+
operation: input.operation
|
|
18505
18561
|
});
|
|
18506
18562
|
},
|
|
18507
18563
|
requestText: async (input) => {
|
|
@@ -23308,7 +23364,15 @@ function createMutableRouteCatalogState(routeCatalog) {
|
|
|
23308
23364
|
return {
|
|
23309
23365
|
fingerprint: buildRouteCatalogFingerprint(routeCatalog),
|
|
23310
23366
|
profileIds: [...routeCatalog.profileIds],
|
|
23311
|
-
routeByProfileId: new Map(routeCatalog.routeByProfileId)
|
|
23367
|
+
routeByProfileId: new Map(routeCatalog.routeByProfileId),
|
|
23368
|
+
skippedProfiles: [...routeCatalog.skippedProfiles]
|
|
23369
|
+
};
|
|
23370
|
+
}
|
|
23371
|
+
function createRouteCatalogFromMutableState(state) {
|
|
23372
|
+
return {
|
|
23373
|
+
profileIds: [...state.profileIds],
|
|
23374
|
+
routeByProfileId: new Map(state.routeByProfileId),
|
|
23375
|
+
skippedProfiles: [...state.skippedProfiles]
|
|
23312
23376
|
};
|
|
23313
23377
|
}
|
|
23314
23378
|
async function syncDaemonRouteCatalogState(input) {
|
|
@@ -23345,12 +23409,14 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
23345
23409
|
});
|
|
23346
23410
|
input.catalogState.profileIds = [...nextCatalog.profileIds];
|
|
23347
23411
|
input.catalogState.fingerprint = nextFingerprint;
|
|
23412
|
+
input.catalogState.skippedProfiles = [...nextCatalog.skippedProfiles];
|
|
23348
23413
|
return {
|
|
23349
23414
|
registerResponse,
|
|
23350
23415
|
skippedProfiles: nextCatalog.skippedProfiles,
|
|
23351
23416
|
status: "registered"
|
|
23352
23417
|
};
|
|
23353
23418
|
}
|
|
23419
|
+
input.catalogState.skippedProfiles = [...nextCatalog.skippedProfiles];
|
|
23354
23420
|
return {
|
|
23355
23421
|
skippedProfiles: nextCatalog.skippedProfiles,
|
|
23356
23422
|
status: "unchanged"
|
|
@@ -23380,6 +23446,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
23380
23446
|
});
|
|
23381
23447
|
input.catalogState.profileIds = [...nextCatalog.profileIds];
|
|
23382
23448
|
input.catalogState.fingerprint = nextFingerprint;
|
|
23449
|
+
input.catalogState.skippedProfiles = [...nextCatalog.skippedProfiles];
|
|
23383
23450
|
return {
|
|
23384
23451
|
status: "changed",
|
|
23385
23452
|
diff,
|
|
@@ -36911,14 +36978,14 @@ async function runProviderResumeProbe(input) {
|
|
|
36911
36978
|
});
|
|
36912
36979
|
try {
|
|
36913
36980
|
if (providerId === "codex") await invokeCodexCliTransport({
|
|
36914
|
-
codexTimeoutMs: resolveCodexTimeoutMs(),
|
|
36981
|
+
codexTimeoutMs: resolveLiveResumeProbeTimeoutMs(resolveCodexTimeoutMs()),
|
|
36915
36982
|
codexWorkdir: input.runtimeWorkingDirectory,
|
|
36916
36983
|
launchContract: input.launchContract,
|
|
36917
36984
|
prompt: LIVE_RESUME_PROBE_PROMPT,
|
|
36918
36985
|
threadId: agentControllerConversation.agentControllerConversationId
|
|
36919
36986
|
});
|
|
36920
36987
|
else if (providerId === "claude-code") await invokeClaudeCliTransport({
|
|
36921
|
-
claudeTimeoutMs: resolveClaudeCodeTimeoutMs(),
|
|
36988
|
+
claudeTimeoutMs: resolveLiveResumeProbeTimeoutMs(resolveClaudeCodeTimeoutMs()),
|
|
36922
36989
|
claudeWorkdir: input.runtimeWorkingDirectory,
|
|
36923
36990
|
launchContract: input.launchContract,
|
|
36924
36991
|
prompt: LIVE_RESUME_PROBE_PROMPT,
|
|
@@ -37014,6 +37081,11 @@ function readErrorType(error) {
|
|
|
37014
37081
|
return null;
|
|
37015
37082
|
}
|
|
37016
37083
|
const LIVE_RESUME_PROBE_PROMPT = "ATS resume probe. Reply with one short confirmation sentence.";
|
|
37084
|
+
const LIVE_RESUME_PROBE_TIMEOUT_MS = 3e4;
|
|
37085
|
+
function resolveLiveResumeProbeTimeoutMs(runtimeTimeoutMs) {
|
|
37086
|
+
if (runtimeTimeoutMs === null) return LIVE_RESUME_PROBE_TIMEOUT_MS;
|
|
37087
|
+
return Math.min(runtimeTimeoutMs, LIVE_RESUME_PROBE_TIMEOUT_MS);
|
|
37088
|
+
}
|
|
37017
37089
|
|
|
37018
37090
|
//#endregion
|
|
37019
37091
|
//#region src/daemon/control-plane/inflight-task-control-registry.ts
|
|
@@ -43371,7 +43443,11 @@ async function runDaemonSocketSession(input) {
|
|
|
43371
43443
|
}
|
|
43372
43444
|
});
|
|
43373
43445
|
};
|
|
43374
|
-
const
|
|
43446
|
+
const persistAcceptedRouteCatalogCache = async () => {
|
|
43447
|
+
if (!input.persistRouteCatalogCache) return;
|
|
43448
|
+
await input.persistRouteCatalogCache(createRouteCatalogFromMutableState(input.routeCatalogState));
|
|
43449
|
+
};
|
|
43450
|
+
const handleChangedCatalogSync = async (syncResult, inputSync) => {
|
|
43375
43451
|
latestCatalogSyncStatus = "changed";
|
|
43376
43452
|
const rejectedProfileIds = syncResult.registerResponse.rejectedProfiles.map((item) => item.profileId);
|
|
43377
43453
|
emitRunLine({
|
|
@@ -43389,7 +43465,10 @@ async function runDaemonSocketSession(input) {
|
|
|
43389
43465
|
reason: "register_conflict",
|
|
43390
43466
|
scheduleReason: "register_conflict"
|
|
43391
43467
|
});
|
|
43392
|
-
else
|
|
43468
|
+
else {
|
|
43469
|
+
await persistAcceptedRouteCatalogCache();
|
|
43470
|
+
scheduleNextCatalogSync();
|
|
43471
|
+
}
|
|
43393
43472
|
if (input.routeCatalogState.profileIds.length > 0) {
|
|
43394
43473
|
resetWaitingForProfilesTracking();
|
|
43395
43474
|
return;
|
|
@@ -43403,7 +43482,7 @@ async function runDaemonSocketSession(input) {
|
|
|
43403
43482
|
});
|
|
43404
43483
|
hasLoggedWaitingForProfiles = true;
|
|
43405
43484
|
};
|
|
43406
|
-
const handleRegisteredCatalogSync = (syncResult, inputSync) => {
|
|
43485
|
+
const handleRegisteredCatalogSync = async (syncResult, inputSync) => {
|
|
43407
43486
|
latestCatalogSyncStatus = "registered";
|
|
43408
43487
|
const rejectedProfileIds = syncResult.registerResponse.rejectedProfiles.map((item) => item.profileId);
|
|
43409
43488
|
emitRunLine({
|
|
@@ -43424,6 +43503,7 @@ async function runDaemonSocketSession(input) {
|
|
|
43424
43503
|
return;
|
|
43425
43504
|
}
|
|
43426
43505
|
if (input.routeCatalogState.profileIds.length > 0) resetWaitingForProfilesTracking();
|
|
43506
|
+
await persistAcceptedRouteCatalogCache();
|
|
43427
43507
|
scheduleNextCatalogSync();
|
|
43428
43508
|
};
|
|
43429
43509
|
const handleUnchangedCatalogSync = (syncResult, inputSync) => {
|
|
@@ -43454,7 +43534,7 @@ async function runDaemonSocketSession(input) {
|
|
|
43454
43534
|
leasesByProfileId,
|
|
43455
43535
|
loadCatalog: async () => await loadDaemonRouteCatalog({
|
|
43456
43536
|
localAdapterContainer: input.localAdapterContainer,
|
|
43457
|
-
localReplyStateMode: "
|
|
43537
|
+
localReplyStateMode: "check",
|
|
43458
43538
|
ownerUserId: input.ownerUserId,
|
|
43459
43539
|
presenter: input.presenter,
|
|
43460
43540
|
allowEmpty: true,
|
|
@@ -43463,12 +43543,12 @@ async function runDaemonSocketSession(input) {
|
|
|
43463
43543
|
registerCatalog: registerDaemonSession
|
|
43464
43544
|
});
|
|
43465
43545
|
if (syncResult.status === "changed") {
|
|
43466
|
-
handleChangedCatalogSync(syncResult, inputSync);
|
|
43546
|
+
await handleChangedCatalogSync(syncResult, inputSync);
|
|
43467
43547
|
resolvePendingRouteCatalogSyncRequests(syncResult);
|
|
43468
43548
|
return;
|
|
43469
43549
|
}
|
|
43470
43550
|
if (syncResult.status === "registered") {
|
|
43471
|
-
handleRegisteredCatalogSync(syncResult, inputSync);
|
|
43551
|
+
await handleRegisteredCatalogSync(syncResult, inputSync);
|
|
43472
43552
|
resolvePendingRouteCatalogSyncRequests(syncResult);
|
|
43473
43553
|
return;
|
|
43474
43554
|
}
|
|
@@ -43499,15 +43579,21 @@ async function runDaemonSocketSession(input) {
|
|
|
43499
43579
|
if (Date.now() < nextRuntimeAgentControllerReportSyncAtMs) return;
|
|
43500
43580
|
try {
|
|
43501
43581
|
const result = await syncDaemonRuntimeAgentControllerReports({ localAdapterContainer: input.localAdapterContainer });
|
|
43502
|
-
|
|
43582
|
+
const retryInMs = result.failedCount > 0 ? RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS : RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS;
|
|
43583
|
+
nextRuntimeAgentControllerReportSyncAtMs = Date.now() + retryInMs;
|
|
43584
|
+
let reportSyncLineText;
|
|
43585
|
+
if (result.status === "skipped") reportSyncLineText = `runtime agent controller report sync skipped; ${result.reasonCodes[0] ?? "no reports"}`;
|
|
43586
|
+
else if (result.failedCount > 0) reportSyncLineText = `runtime agent controller report sync incomplete; accepted=${result.submittedCount}, failed=${result.failedCount}, total=${result.reportCount}; retrying in ${String(retryInMs)}ms`;
|
|
43587
|
+
else reportSyncLineText = `runtime agent controller report sync submitted; accepted=${result.submittedCount}, failed=${result.failedCount}, total=${result.reportCount}`;
|
|
43503
43588
|
emitRunLine({
|
|
43504
43589
|
presenter: input.presenter,
|
|
43505
|
-
code: "daemon.run.runtime_agent_controller_report_sync",
|
|
43506
|
-
text:
|
|
43590
|
+
code: result.failedCount > 0 ? "daemon.run.runtime_agent_controller_report_sync_failed" : "daemon.run.runtime_agent_controller_report_sync",
|
|
43591
|
+
text: reportSyncLineText,
|
|
43507
43592
|
payload: {
|
|
43508
43593
|
failedCount: result.failedCount,
|
|
43509
43594
|
reasonCodes: result.reasonCodes,
|
|
43510
43595
|
reportCount: result.reportCount,
|
|
43596
|
+
retryInMs,
|
|
43511
43597
|
status: result.status,
|
|
43512
43598
|
submittedCount: result.submittedCount
|
|
43513
43599
|
}
|
|
@@ -43630,7 +43716,10 @@ async function runDaemonSocketSession(input) {
|
|
|
43630
43716
|
reason: "register_conflict",
|
|
43631
43717
|
scheduleReason: "register_conflict"
|
|
43632
43718
|
});
|
|
43633
|
-
else
|
|
43719
|
+
else {
|
|
43720
|
+
await persistAcceptedRouteCatalogCache();
|
|
43721
|
+
scheduleCatalogSyncNext(resolveCatalogSyncIntervalMs({ heartbeatIntervalMs: currentHeartbeatIntervalMs }));
|
|
43722
|
+
}
|
|
43634
43723
|
latestCatalogSyncSignalUpdatedAtMs = (await readDaemonCatalogSyncSignal().catch(() => null))?.updatedAtMs ?? 0;
|
|
43635
43724
|
scheduleCatalogSyncSignalPoll();
|
|
43636
43725
|
await sendHeartbeat();
|
|
@@ -43833,6 +43922,83 @@ function createDaemonRuntimeState(input) {
|
|
|
43833
43922
|
};
|
|
43834
43923
|
}
|
|
43835
43924
|
|
|
43925
|
+
//#endregion
|
|
43926
|
+
//#region src/daemon/state/route-catalog-cache.ts
|
|
43927
|
+
const ROUTE_CATALOG_CACHE_FILE = "route-catalog-cache.json";
|
|
43928
|
+
async function readDaemonRouteCatalogCache(input) {
|
|
43929
|
+
const serviceBundleId = normalizeServiceBundleId(input.serviceBundleId);
|
|
43930
|
+
if (!serviceBundleId) return null;
|
|
43931
|
+
const cached = await readDaemonLocalStateFile({
|
|
43932
|
+
path: daemonRouteCatalogCachePath(),
|
|
43933
|
+
schema: daemonRouteCatalogCacheSchema
|
|
43934
|
+
});
|
|
43935
|
+
if (!cached || cached.serviceBundleId !== serviceBundleId) return null;
|
|
43936
|
+
return deserializeRouteCatalog(cached);
|
|
43937
|
+
}
|
|
43938
|
+
async function writeDaemonRouteCatalogCache(input) {
|
|
43939
|
+
const serviceBundleId = normalizeServiceBundleId(input.serviceBundleId);
|
|
43940
|
+
if (!serviceBundleId) return;
|
|
43941
|
+
if (input.routeCatalog.profileIds.length === 0) {
|
|
43942
|
+
await clearDaemonRouteCatalogCache();
|
|
43943
|
+
return;
|
|
43944
|
+
}
|
|
43945
|
+
const value = {
|
|
43946
|
+
v: 1,
|
|
43947
|
+
schema: DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME,
|
|
43948
|
+
cachedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
43949
|
+
runtimeContractEpoch: CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH,
|
|
43950
|
+
serviceBundleId,
|
|
43951
|
+
profileIds: [...input.routeCatalog.profileIds],
|
|
43952
|
+
routes: input.routeCatalog.profileIds.map((profileId) => {
|
|
43953
|
+
const route = input.routeCatalog.routeByProfileId.get(profileId);
|
|
43954
|
+
if (!route) throw new Error(`route catalog is missing route for ${profileId}`);
|
|
43955
|
+
return serializeRouteConfig(route);
|
|
43956
|
+
}),
|
|
43957
|
+
skippedProfiles: [...input.routeCatalog.skippedProfiles]
|
|
43958
|
+
};
|
|
43959
|
+
await writeDaemonLocalStateFile({
|
|
43960
|
+
path: daemonRouteCatalogCachePath(),
|
|
43961
|
+
schema: daemonRouteCatalogCacheSchema,
|
|
43962
|
+
value,
|
|
43963
|
+
mode: 384
|
|
43964
|
+
});
|
|
43965
|
+
}
|
|
43966
|
+
async function clearDaemonRouteCatalogCache() {
|
|
43967
|
+
await rm(daemonRouteCatalogCachePath(), { force: true });
|
|
43968
|
+
}
|
|
43969
|
+
function daemonRouteCatalogCachePath() {
|
|
43970
|
+
return join(daemonRuntimeDataPath(), ROUTE_CATALOG_CACHE_FILE);
|
|
43971
|
+
}
|
|
43972
|
+
function normalizeServiceBundleId(value) {
|
|
43973
|
+
return String(value ?? "").trim();
|
|
43974
|
+
}
|
|
43975
|
+
function serializeRouteConfig(route) {
|
|
43976
|
+
return {
|
|
43977
|
+
agentControllerRef: route.agentControllerRef,
|
|
43978
|
+
contextIdMappingSpec: route.contextIdMappingSpec,
|
|
43979
|
+
...route.launchContract ? { launchContract: route.launchContract } : {},
|
|
43980
|
+
profileId: route.profileId,
|
|
43981
|
+
streamingMode: route.streamingMode,
|
|
43982
|
+
transportMode: route.transportMode
|
|
43983
|
+
};
|
|
43984
|
+
}
|
|
43985
|
+
function deserializeRouteCatalog(cache) {
|
|
43986
|
+
const routeByProfileId = /* @__PURE__ */ new Map();
|
|
43987
|
+
for (const route of cache.routes) routeByProfileId.set(route.profileId, {
|
|
43988
|
+
agentControllerRef: route.agentControllerRef,
|
|
43989
|
+
contextIdMappingSpec: route.contextIdMappingSpec,
|
|
43990
|
+
...route.launchContract ? { launchContract: route.launchContract } : {},
|
|
43991
|
+
profileId: route.profileId,
|
|
43992
|
+
streamingMode: route.streamingMode,
|
|
43993
|
+
transportMode: route.transportMode
|
|
43994
|
+
});
|
|
43995
|
+
return {
|
|
43996
|
+
profileIds: [...cache.profileIds],
|
|
43997
|
+
routeByProfileId,
|
|
43998
|
+
skippedProfiles: [...cache.skippedProfiles]
|
|
43999
|
+
};
|
|
44000
|
+
}
|
|
44001
|
+
|
|
43836
44002
|
//#endregion
|
|
43837
44003
|
//#region src/daemon/state/runtime-state-tracker.ts
|
|
43838
44004
|
function createDaemonRuntimeStateTracker(input) {
|
|
@@ -44007,12 +44173,13 @@ const runDaemonServiceLoop = async (input) => {
|
|
|
44007
44173
|
code: "daemon.run.adapter_missing",
|
|
44008
44174
|
message: "no local adapters configured for daemon runtime"
|
|
44009
44175
|
});
|
|
44010
|
-
const
|
|
44176
|
+
const serviceBundleId = daemonServiceContract?.bundleId ?? null;
|
|
44177
|
+
const routeCatalog = await loadInitialDaemonRouteCatalog({
|
|
44178
|
+
allowEmpty: true,
|
|
44011
44179
|
localAdapterContainer,
|
|
44012
|
-
localReplyStateMode: "repair",
|
|
44013
44180
|
ownerUserId,
|
|
44014
44181
|
presenter: input.presenter,
|
|
44015
|
-
|
|
44182
|
+
serviceBundleId
|
|
44016
44183
|
});
|
|
44017
44184
|
const routeCatalogState = createMutableRouteCatalogState(routeCatalog);
|
|
44018
44185
|
let stopRequested = false;
|
|
@@ -44150,6 +44317,13 @@ const runDaemonServiceLoop = async (input) => {
|
|
|
44150
44317
|
ownerUserId,
|
|
44151
44318
|
profileOwnerName,
|
|
44152
44319
|
presenter: input.presenter,
|
|
44320
|
+
persistRouteCatalogCache: async (catalog) => {
|
|
44321
|
+
await persistDaemonRouteCatalogCache({
|
|
44322
|
+
presenter: input.presenter,
|
|
44323
|
+
routeCatalog: catalog,
|
|
44324
|
+
serviceBundleId
|
|
44325
|
+
});
|
|
44326
|
+
},
|
|
44153
44327
|
reconnectAttempt,
|
|
44154
44328
|
routeCatalogState,
|
|
44155
44329
|
socket: ws,
|
|
@@ -44219,6 +44393,44 @@ const runDaemonServiceLoop = async (input) => {
|
|
|
44219
44393
|
text: "daemon service loop stopped"
|
|
44220
44394
|
});
|
|
44221
44395
|
};
|
|
44396
|
+
async function loadInitialDaemonRouteCatalog(input) {
|
|
44397
|
+
try {
|
|
44398
|
+
return await loadDaemonRouteCatalog({
|
|
44399
|
+
allowEmpty: input.allowEmpty,
|
|
44400
|
+
localAdapterContainer: input.localAdapterContainer,
|
|
44401
|
+
localReplyStateMode: "repair",
|
|
44402
|
+
ownerUserId: input.ownerUserId,
|
|
44403
|
+
presenter: input.presenter
|
|
44404
|
+
});
|
|
44405
|
+
} catch (error) {
|
|
44406
|
+
const cached = await readDaemonRouteCatalogCache({ serviceBundleId: input.serviceBundleId });
|
|
44407
|
+
if (!cached) throw error;
|
|
44408
|
+
emitRunLine({
|
|
44409
|
+
presenter: input.presenter,
|
|
44410
|
+
code: "daemon.run.route_catalog_cache_recovered",
|
|
44411
|
+
text: `using last known route catalog after initial catalog load failed: ${toErrorMessage$34(error)}`,
|
|
44412
|
+
payload: {
|
|
44413
|
+
profileIds: cached.profileIds,
|
|
44414
|
+
reason: "initial_load_failed"
|
|
44415
|
+
}
|
|
44416
|
+
});
|
|
44417
|
+
return cached;
|
|
44418
|
+
}
|
|
44419
|
+
}
|
|
44420
|
+
async function persistDaemonRouteCatalogCache(input) {
|
|
44421
|
+
try {
|
|
44422
|
+
await writeDaemonRouteCatalogCache({
|
|
44423
|
+
routeCatalog: input.routeCatalog,
|
|
44424
|
+
serviceBundleId: input.serviceBundleId
|
|
44425
|
+
});
|
|
44426
|
+
} catch (error) {
|
|
44427
|
+
emitRunLine({
|
|
44428
|
+
presenter: input.presenter,
|
|
44429
|
+
code: "daemon.run.route_catalog_cache_write_failed",
|
|
44430
|
+
text: `route catalog cache write failed: ${toErrorMessage$34(error)}`
|
|
44431
|
+
});
|
|
44432
|
+
}
|
|
44433
|
+
}
|
|
44222
44434
|
function resolveDaemonServiceLane(contract) {
|
|
44223
44435
|
if (contract?.lane) return contract.lane;
|
|
44224
44436
|
throw new DaemonServiceRunError({
|
|
@@ -95687,7 +95899,7 @@ function emitSpaceStatusAgentOutput(input) {
|
|
|
95687
95899
|
const spaceLabel = input.status.name?.trim() || input.status.spaceId;
|
|
95688
95900
|
input.presenter.line({
|
|
95689
95901
|
code: "space.status",
|
|
95690
|
-
text: `space status: ${spaceLabel}, members=${input.status.members.totalCount}, agents=${input.status.members.agentCount}
|
|
95902
|
+
text: `space status: ${spaceLabel}, members=${input.status.members.totalCount}, agents=${input.status.members.agentCount}`,
|
|
95691
95903
|
data: {
|
|
95692
95904
|
spaceId: input.status.spaceId,
|
|
95693
95905
|
spaceName: input.status.name ?? null,
|
|
@@ -95696,9 +95908,7 @@ function emitSpaceStatusAgentOutput(input) {
|
|
|
95696
95908
|
humanCount: input.status.members.humanCount,
|
|
95697
95909
|
agentCount: input.status.members.agentCount,
|
|
95698
95910
|
liveHumanCount: input.status.members.liveHumanCount,
|
|
95699
|
-
liveAgentCount: input.status.members.liveAgentCount
|
|
95700
|
-
wakeableAgentCount: input.status.members.wakeableAgentCount,
|
|
95701
|
-
offlineAgentCount: input.status.members.offlineAgentCount
|
|
95911
|
+
liveAgentCount: input.status.members.liveAgentCount
|
|
95702
95912
|
},
|
|
95703
95913
|
latestVisibleUpdate: input.status.latestVisibleUpdate ? {
|
|
95704
95914
|
signalId: input.status.latestVisibleUpdate.signalId,
|
|
@@ -95771,10 +95981,6 @@ function buildSpaceStatusMembersRows(status) {
|
|
|
95771
95981
|
{
|
|
95772
95982
|
label: pc.dim("Connected agents"),
|
|
95773
95983
|
value: pc.bold(String(status.members.liveAgentCount))
|
|
95774
|
-
},
|
|
95775
|
-
{
|
|
95776
|
-
label: pc.dim("Wakeable agents"),
|
|
95777
|
-
value: pc.bold(String(status.members.wakeableAgentCount))
|
|
95778
95984
|
}
|
|
95779
95985
|
];
|
|
95780
95986
|
}
|