openmeld 0.3.164 → 0.3.166
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/{add-me-membership-qKR8PKLL.js → add-me-membership-BamyweUP.js} +2 -2
- package/dist/{add-me-membership-qKR8PKLL.js.map → add-me-membership-BamyweUP.js.map} +1 -1
- package/dist/{api-client-foundation-C0Zq2voT.js → api-client-foundation-BhZNjDtp.js} +9 -4
- package/dist/api-client-foundation-BhZNjDtp.js.map +1 -0
- package/dist/{api-client-foundation-BQyVR0ev.js → api-client-foundation-D9GZ4h3w.js} +1 -1
- package/dist/{auth-session-xj7oUO1L.js → auth-session-Czzsww9v.js} +2 -2
- package/dist/{auth-session-xj7oUO1L.js.map → auth-session-Czzsww9v.js.map} +1 -1
- package/dist/auth-session-D9M2sqUr.js +4 -0
- package/dist/{command-BmHKOgIq.js → command-Cp-Euzki.js} +25 -10
- package/dist/{command-BmHKOgIq.js.map → command-Cp-Euzki.js.map} +1 -1
- package/dist/{dist-BZQBQLYA.js → dist-CxpovZqh.js} +1 -1
- package/dist/{dist-C7GcYLZj.js → dist-D1Kzdu9F.js} +297 -26
- package/dist/dist-D1Kzdu9F.js.map +1 -0
- package/dist/{elapsed-time-BDn2tDRl.js → elapsed-time-BZYBcHbZ.js} +3 -3
- package/dist/{elapsed-time-BDn2tDRl.js.map → elapsed-time-BZYBcHbZ.js.map} +1 -1
- package/dist/{installer-CnGp0v9d.js → installer-CftRW1NY.js} +3 -3
- package/dist/{installer-CnGp0v9d.js.map → installer-CftRW1NY.js.map} +1 -1
- package/dist/{openmeld-boZ4gJqB.js → openmeld-DpDrTP1I.js} +62 -119
- package/dist/openmeld-DpDrTP1I.js.map +1 -0
- package/dist/{openmeld-maintenance-worker-DqwYU6nm.js → openmeld-maintenance-worker-ePwchRg-.js} +3 -3
- package/dist/{openmeld-maintenance-worker-DqwYU6nm.js.map → openmeld-maintenance-worker-ePwchRg-.js.map} +1 -1
- package/dist/{openmeld-tools-update-coordinator-yGkv7wqt.js → openmeld-tools-update-coordinator-m83r0NWy.js} +407 -312
- package/dist/openmeld-tools-update-coordinator-m83r0NWy.js.map +1 -0
- package/dist/openmeld.js +3 -3
- package/dist/{runtime-transport-w7zmmzEz.js → runtime-transport-C5MSLm_z.js} +2 -2
- package/dist/{runtime-transport-w7zmmzEz.js.map → runtime-transport-C5MSLm_z.js.map} +1 -1
- package/dist/upgrade-Bp2K1fhy.js +4 -0
- package/dist/{upgrade-BQcbRIT0.js → upgrade-CKqTnwEX.js} +4 -4
- package/dist/{upgrade-BQcbRIT0.js.map → upgrade-CKqTnwEX.js.map} +1 -1
- package/package.json +3 -3
- package/dist/api-client-foundation-C0Zq2voT.js.map +0 -1
- package/dist/auth-session-DWjyI9bE.js +0 -4
- package/dist/dist-C7GcYLZj.js.map +0 -1
- package/dist/openmeld-boZ4gJqB.js.map +0 -1
- package/dist/openmeld-tools-update-coordinator-yGkv7wqt.js.map +0 -1
- package/dist/upgrade-BO2qPMmW.js +0 -4
|
@@ -4,17 +4,17 @@ import { n as toDaemonRouteObservationUrl, t as normalizeBaseUrl } from "./urls-
|
|
|
4
4
|
import { t as isLoopbackHostname } from "./loopback-hostname-DHQPKq8N.js";
|
|
5
5
|
import { $ as openMeldManagedVersionBinaryPath, B as deviceOpenClawProfileWorkspaceDir, F as accountProfileWorkspacePath, G as isPublishedOpenMeldHome, J as normalizeAccountKey, M as accountProfileLocalMetaPath, P as accountProfileViewPath, Q as openMeldManagedBinaryPath, R as deviceOpenClawProfileBootstrapPath, S as isProcessIdentityAlive, X as openMeldBackupsDir, Y as normalizeOpenMeldProfileId, Z as openMeldBinDir, _ as resolveCliContextId, dt as resolveOpenMeldRootDir, et as openMeldManagedVersionDir, ft as runtimeDir, g as resolveCliContext, gt as systemDir, h as readCliContextState, i as isOpenMeldOrphanedLockError, j as OPENMELD_HOME_ENV_KEY, lt as resolveOpenMeldEnvPreset, m as listCliContextStates, nt as openMeldVersionsDir, r as isOpenMeldLockError, t as acquireLock, tt as openMeldRootDir, u as runWithHeldLock, v as writeCliContextState, x as CURRENT_PROCESS_START_IDENTITY, z as deviceOpenClawProfileDir } from "./lock-VfUd0-tH.js";
|
|
6
6
|
import { _ as canonicalizeBuiltinAgentControllerRef, b as parseAgentControllerRef$1, d as resolveBuiltinAgentControllerConversationKind, f as HOSTED_CENTER_AGENT_CONTROLLER_REF, g as canonicalizeAgentControllerRef, h as buildAgentControllerRoutingKey, l as buildAgentControllerConversationRef, n as runtimeAgentControllerConversationIdMappingSpecSchema, o as runtimeStreamingModeSchema, p as HOSTED_CENTER_AGENT_CONTROLLER_REF_ID, r as runtimeAgentControllerLaunchContractSchema, s as runtimeTransportModeSchema, u as conversationPolicySchema, y as normalizeKnownBuiltinAgentControllerId } from "./controller-contract-CvjP4mYj.js";
|
|
7
|
-
import { Er as profileErrorResponseSchema, Lt as createAgentProfileBindingApi, Pn as OPENMELD_HEADER_PROFILE_ID, Si as agentControllerCollaborationModeSchema, Sr as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_MESSAGE, Tr as profileCapabilitiesResponseSchema, Ut as createCurrentDeviceApi, Xt as createLocalRuntimeExpectedRoutesApi, bn as toStructuredApiClientFailure, lr as modelCatalogSchema, mi as openCodePermissionConfigSchema, t as OpenMeldApiClientHttpError, wr as authProfileManagedRoleSchema, xi as agentControllerPermissionModeSchema, xr as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_CODE, zn as toErrorMessage$24 } from "./dist-
|
|
8
|
-
import {
|
|
7
|
+
import { Er as profileErrorResponseSchema, Lt as createAgentProfileBindingApi, Pn as OPENMELD_HEADER_PROFILE_ID, Si as agentControllerCollaborationModeSchema, Sr as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_MESSAGE, Tr as profileCapabilitiesResponseSchema, Ut as createCurrentDeviceApi, Xt as createLocalRuntimeExpectedRoutesApi, bi as localAgentCatalogSchema, bn as toStructuredApiClientFailure, lr as modelCatalogSchema, mi as openCodePermissionConfigSchema, t as OpenMeldApiClientHttpError, wr as authProfileManagedRoleSchema, xi as agentControllerPermissionModeSchema, xr as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_CODE, zn as toErrorMessage$24 } from "./dist-D1Kzdu9F.js";
|
|
8
|
+
import { $r as openMeldProfileIdSchema, D as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, En as formatCanonicalMentionLiteral, H as openMeldDaemonProviderAccessEvidenceSchema, M as runtimeTransportRejectedProfileRegistrationSchema, R as OPENMELD_ORIGINAL_ERROR_MAX_LENGTH, U as openMeldDaemonTaskResultEnvelopeWriteSchema, Vn as agentInteractionResolutionSchema, W as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, _i as resolvePublicAgentAvailabilityCopy, an as openMeldDaemonControlPlaneResponseSchema, ar as openMeldToolsUpdateRequestSourceSchema, ci as profileWorkspaceModeSchema, cn as providerDispatchRuntimeContextSchema, g as runtimeTransportErrorCodeSchema, i as localWakeRouteReportSchema, in as openMeldDaemonControlPlaneRequestSchema, kn as normalizeMessageEnvelope, ln as conversationExecutionStateSchema, n as daemonExecutionCompatibilitySchema, ni as agentProfileIdSchema, nr as openMeldToolsUpdateOperationPhaseSchema, o as runtimeTransportCapabilitiesSchema, ri as normalizeOptionalWorkingDirectory, sn as skippedDaemonProfileSchema, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, ti as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, tr as openMeldToolsUpdateAttemptSchema, vi as resolvePublicAgentFailureRecovery, wi as resolveCommandAgentWorkActivity, z as isOriginalErrorSafeForMessageDetails } from "./runtime-transport-C5MSLm_z.js";
|
|
9
9
|
import { r as daemonServiceLaneSchema, t as daemonServiceContractSchema } from "./service-contract-CRyDcIIf.js";
|
|
10
10
|
import { a as readDaemonLocalStateFile, o as writeDaemonLocalStateFile, r as readDaemonRuntimeLease } from "./daemon-runtime-lease-D_CULMR8.js";
|
|
11
11
|
import { i as windowsTaskActionArguments, n as runWindowsUserTask, r as windowsPowerShellPath } from "./windows-user-task-DqJWtlAm.js";
|
|
12
|
-
import { A as HEARTBEAT_RESPONSE_TIMEOUT_MS$1, B as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS$1, C as DAEMON_RUNTIME_CONTRACT_EPOCH$1, D as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, E as DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS$1, F as OPENCLAW_CLI_TIMEOUT_MS$1, H as RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS$1, I as PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS$1, L as PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS$1, N as MIN_HEARTBEAT_INTERVAL_MS$2, O as DEFAULT_HEARTBEAT_INTERVAL_MS$1, R as REGISTER_RESPONSE_TIMEOUT_MS$1, S as CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS$1, T as DAEMON_STREAM_KEEPALIVE_INTERVAL_MS$1, V as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS$1, j as MAX_HEARTBEAT_INTERVAL_MS$2, l as getAuthSessionState, v as isBinaryDistribution, w as DAEMON_STREAM_CONNECT_TIMEOUT_MS$1, x as CATALOG_SYNC_RETRY_INTERVAL_MS$1, y as resolveOpenMeldDistribution } from "./auth-session-
|
|
12
|
+
import { A as HEARTBEAT_RESPONSE_TIMEOUT_MS$1, B as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS$1, C as DAEMON_RUNTIME_CONTRACT_EPOCH$1, D as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, E as DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS$1, F as OPENCLAW_CLI_TIMEOUT_MS$1, H as RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS$1, I as PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS$1, L as PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS$1, N as MIN_HEARTBEAT_INTERVAL_MS$2, O as DEFAULT_HEARTBEAT_INTERVAL_MS$1, R as REGISTER_RESPONSE_TIMEOUT_MS$1, S as CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS$1, T as DAEMON_STREAM_KEEPALIVE_INTERVAL_MS$1, V as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS$1, j as MAX_HEARTBEAT_INTERVAL_MS$2, l as getAuthSessionState, v as isBinaryDistribution, w as DAEMON_STREAM_CONNECT_TIMEOUT_MS$1, x as CATALOG_SYNC_RETRY_INTERVAL_MS$1, y as resolveOpenMeldDistribution } from "./auth-session-Czzsww9v.js";
|
|
13
13
|
import { C as updateConfiguredDeviceRuntimeState, T as updateConfiguredSkillsConfig, _ as getConfiguredViewCustomization, a as resolveBaseUrl, c as resolveExplicitGatewayUrlOrThrow, d as createDefaultRuntimeAgentControllerSettings, g as getConfiguredSkillsConfig, h as getConfiguredOpenMeldToolsMaintenance, i as normalizeGatewayBaseUrlOrNull, o as resolveBaseUrlOrNull, p as getConfiguredDeviceRuntimeState, r as normalizeGatewayBaseUrl, s as resolveDefaultGatewayBaseUrl, v as getRuntimeConfigReadHealth, x as setConfiguredOpenMeldToolsMaintenance, y as resolveRuntimeSkillsCustomTargetId } from "./base-url-CgF_v0Ue.js";
|
|
14
14
|
import { n as toErrorMessage$25, t as sleep } from "./dist-o3UL1EGQ.js";
|
|
15
|
-
import { c as buildRequestAuthHeaders, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation, u as buildOpenMeldRequestContextFromProfile } from "./api-client-foundation-C0Zq2voT.js";
|
|
16
15
|
import { A as installDaemon, B as rotateDaemonControlPlaneTokenIfExpired, C as daemonServiceStableExecutableWrapperPath, E as daemonStatePath, F as readDaemonServiceRuntimeSnapshot, H as uninstallDaemon, L as resolveDaemonControlPlaneEndpoint, M as readDaemonControlPlaneToken, N as readDaemonServiceLifecycleLockMeta, O as getDaemonRuntimeStatus, P as readDaemonServiceLifecycleLockMetaWithCleanup, S as daemonServiceStableBinaryExecutablePath, T as daemonServiceUpdateWorkerBinaryExecutablePath, U as withDaemonServiceReconcileLock, _ as daemonServiceActiveBundleStatePath, a as DAEMON_SERVICE_RUNTIME_MODE_ENV, b as daemonServiceRecognizedExecutablePaths$1, d as daemonLifecycleJournalPath, f as daemonRuntimeBundlesPath, g as daemonRuntimeStateRootPath, h as daemonRuntimeServiceManagerPath, i as DAEMON_SERVICE_RUNTIME_DETACHED_ENV, k as getDaemonStatus, l as clearDaemonServiceRuntimeState, m as daemonRuntimeRootPath, n as DAEMON_SERVICE_RUNTIME_AUTO_START_ENV, p as daemonRuntimeDataPath, r as DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV, s as DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV, t as DAEMON_HEARTBEAT_STALE_MS, v as daemonServiceExecutableWrapperPaths$1, w as daemonServiceStableLauncherPath, y as daemonServiceLegacyExecutableWrapperPath, z as restoreDaemonInstallStateSnapshot } from "./daemon-state-C_KmI_0F.js";
|
|
17
16
|
import { C as assertNoPublishedProductionMutationDuringTests, E as isTestProcess, S as resolveDaemonServiceIdentity, T as isPublishedProductionOpenMeldRoot, a as disableDaemonServiceAutostartIfConfigured, b as resolveDaemonServiceManager, c as getDaemonSystemServiceLogPath, o as formatDaemonServiceJobDiagnosticsEvidence, s as getDaemonServiceLaunchdLabel, w as assertSafePublishedProductionServiceRegistrationMutation } from "./daemon-service-manager-DRzfyljb.js";
|
|
17
|
+
import { c as buildRequestAuthHeaders, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation, u as buildOpenMeldRequestContextFromProfile } from "./api-client-foundation-BhZNjDtp.js";
|
|
18
18
|
import { createRequire } from "node:module";
|
|
19
19
|
import { homedir, tmpdir, userInfo } from "node:os";
|
|
20
20
|
import path, { basename, delimiter, dirname, extname, isAbsolute, join, normalize, parse, relative, resolve, sep } from "node:path";
|
|
@@ -594,9 +594,370 @@ function normalizeOptionalText$54(value) {
|
|
|
594
594
|
return normalized.length > 0 ? normalized : null;
|
|
595
595
|
}
|
|
596
596
|
//#endregion
|
|
597
|
+
//#region src/config/daemon-service-contract.ts
|
|
598
|
+
const DAEMON_SERVICE_CONTRACT_FILENAME = "service-contract.json";
|
|
599
|
+
function daemonServiceContractPath(pathInput = {}) {
|
|
600
|
+
return join(daemonRuntimeStateRootPath(pathInput), DAEMON_SERVICE_CONTRACT_FILENAME);
|
|
601
|
+
}
|
|
602
|
+
async function readDaemonServiceContract(pathInput = {}) {
|
|
603
|
+
return await readDaemonLocalStateFile({
|
|
604
|
+
path: daemonServiceContractPath(pathInput),
|
|
605
|
+
schema: daemonServiceContractSchema
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
async function upsertDaemonServiceContract(input, pathInput = {}) {
|
|
609
|
+
assertDaemonServiceContractMutationAllowed(pathInput);
|
|
610
|
+
const current = await readDaemonServiceContract(pathInput);
|
|
611
|
+
const candidate = buildContractCandidate(input, pathInput, current);
|
|
612
|
+
assertDaemonServiceContractIdentityAllowed(candidate, pathInput);
|
|
613
|
+
if (current && isSameContractState(current, candidate)) return current;
|
|
614
|
+
const next = {
|
|
615
|
+
...candidate,
|
|
616
|
+
generation: current ? current.generation + 1 : 1,
|
|
617
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
618
|
+
};
|
|
619
|
+
await writeDaemonLocalStateFile({
|
|
620
|
+
path: daemonServiceContractPath(pathInput),
|
|
621
|
+
schema: daemonServiceContractSchema,
|
|
622
|
+
value: next,
|
|
623
|
+
mode: 384
|
|
624
|
+
});
|
|
625
|
+
return next;
|
|
626
|
+
}
|
|
627
|
+
async function clearDaemonServiceContract(pathInput = {}) {
|
|
628
|
+
assertDaemonServiceContractMutationAllowed(pathInput);
|
|
629
|
+
await rm(daemonServiceContractPath(pathInput), { force: true });
|
|
630
|
+
}
|
|
631
|
+
function assertDaemonServiceContractMutationAllowed(pathInput) {
|
|
632
|
+
assertNoPublishedProductionMutationDuringTests(pathInput, "OpenMeld Service contract");
|
|
633
|
+
}
|
|
634
|
+
function assertDaemonServiceContractIdentityAllowed(candidate, pathInput) {
|
|
635
|
+
if (!isUnsafeProductionDaemonServiceContractIdentity(candidate)) return;
|
|
636
|
+
if (isTestProcess(pathInput) && !isPublishedProductionOpenMeldRoot(pathInput)) return;
|
|
637
|
+
throw new Error(["Refusing to write OpenMeld Service contract with a test fixture identity in the published production lane.", "Run `openmeld service repair --profile <profile-id>` from the signed-in production lane, or clear the polluted local service state before retrying."].join(" "));
|
|
638
|
+
}
|
|
639
|
+
function isDaemonServiceContractIdentityReusable(contract, pathInput = {}) {
|
|
640
|
+
if (!contract) return false;
|
|
641
|
+
if (contract.lane !== resolveOpenMeldEnvPreset(pathInput)) return false;
|
|
642
|
+
return !isUnsafeProductionDaemonServiceContractIdentity(contract);
|
|
643
|
+
}
|
|
644
|
+
function isUnsafeProductionDaemonServiceContractIdentity(contract) {
|
|
645
|
+
if (contract.lane !== "prod") return false;
|
|
646
|
+
return isUnsafeProductionDeviceId(contract.deviceId) || (contract.profileId ? isUnsafeProductionProfileId(contract.profileId) : false);
|
|
647
|
+
}
|
|
648
|
+
function isUnsafeProductionDeviceId(deviceId) {
|
|
649
|
+
return normalizeFixtureText(deviceId) === "device_123";
|
|
650
|
+
}
|
|
651
|
+
function isUnsafeProductionProfileId(profileId) {
|
|
652
|
+
return UNSAFE_PRODUCTION_PROFILE_IDS.has(normalizeFixtureText(profileId));
|
|
653
|
+
}
|
|
654
|
+
const UNSAFE_PRODUCTION_PROFILE_IDS = /* @__PURE__ */ new Set([
|
|
655
|
+
"agt_existing",
|
|
656
|
+
"11111111-1111-1111-1111-111111111111",
|
|
657
|
+
"agt_11111111-1111-1111-1111-111111111111",
|
|
658
|
+
"11111111-1111-4111-8111-111111111111",
|
|
659
|
+
"agt_11111111-1111-4111-8111-111111111111"
|
|
660
|
+
]);
|
|
661
|
+
function normalizeFixtureText(value) {
|
|
662
|
+
return value.trim().toLowerCase();
|
|
663
|
+
}
|
|
664
|
+
function buildContractCandidate(input, pathInput, current) {
|
|
665
|
+
const lane = input.lane ?? resolveOpenMeldEnvPreset(pathInput);
|
|
666
|
+
const connectedComputerId = input.connectedComputerId ?? (current && canReuseConnectedComputerEvidence(current, input, lane) ? current.connectedComputerId : void 0);
|
|
667
|
+
return {
|
|
668
|
+
schema: "openmeld-daemon-service-contract-v1",
|
|
669
|
+
v: 1,
|
|
670
|
+
lane,
|
|
671
|
+
daemonVersion: input.daemonVersion,
|
|
672
|
+
bundleId: input.bundleId,
|
|
673
|
+
desiredState: input.desiredState,
|
|
674
|
+
serviceController: input.serviceController,
|
|
675
|
+
autoStart: input.autoStart,
|
|
676
|
+
gatewayUrl: input.gatewayUrl,
|
|
677
|
+
...input.ownerUserId ? { ownerUserId: input.ownerUserId } : {},
|
|
678
|
+
...input.profileId ? { profileId: input.profileId } : {},
|
|
679
|
+
deviceId: input.deviceId,
|
|
680
|
+
...connectedComputerId ? { connectedComputerId } : {},
|
|
681
|
+
heartbeatMs: input.heartbeatMs
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
function canReuseConnectedComputerEvidence(current, input, lane) {
|
|
685
|
+
if (current.lane !== lane || current.gatewayUrl !== input.gatewayUrl || current.deviceId !== input.deviceId) return false;
|
|
686
|
+
if (current.ownerUserId && input.ownerUserId) return current.ownerUserId === input.ownerUserId;
|
|
687
|
+
if (current.profileId && input.profileId) return current.profileId === input.profileId;
|
|
688
|
+
return !(current.ownerUserId || input.ownerUserId);
|
|
689
|
+
}
|
|
690
|
+
function isSameContractState(current, candidate) {
|
|
691
|
+
return current.schema === candidate.schema && current.v === candidate.v && current.lane === candidate.lane && current.daemonVersion === candidate.daemonVersion && current.bundleId === candidate.bundleId && current.desiredState === candidate.desiredState && current.serviceController === candidate.serviceController && current.autoStart === candidate.autoStart && current.gatewayUrl === candidate.gatewayUrl && current.ownerUserId === candidate.ownerUserId && current.profileId === candidate.profileId && current.deviceId === candidate.deviceId && current.connectedComputerId === candidate.connectedComputerId && current.heartbeatMs === candidate.heartbeatMs;
|
|
692
|
+
}
|
|
693
|
+
//#endregion
|
|
694
|
+
//#region src/local-service/core/constants.ts
|
|
695
|
+
const CATALOG_SYNC_RETRY_INTERVAL_MS = CATALOG_SYNC_RETRY_INTERVAL_MS$1;
|
|
696
|
+
const CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS = CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS$1;
|
|
697
|
+
const DAEMON_RUNTIME_CONTRACT_EPOCH = DAEMON_RUNTIME_CONTRACT_EPOCH$1;
|
|
698
|
+
const DAEMON_STREAM_CONNECT_TIMEOUT_MS = DAEMON_STREAM_CONNECT_TIMEOUT_MS$1;
|
|
699
|
+
const DAEMON_STREAM_KEEPALIVE_INTERVAL_MS = DAEMON_STREAM_KEEPALIVE_INTERVAL_MS$1;
|
|
700
|
+
const DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS = DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS$1;
|
|
701
|
+
const DEFAULT_HEARTBEAT_INTERVAL_MS = DEFAULT_HEARTBEAT_INTERVAL_MS$1;
|
|
702
|
+
const HEARTBEAT_RESPONSE_TIMEOUT_MS = HEARTBEAT_RESPONSE_TIMEOUT_MS$1;
|
|
703
|
+
const MAX_HEARTBEAT_INTERVAL_MS$1 = MAX_HEARTBEAT_INTERVAL_MS$2;
|
|
704
|
+
const MIN_HEARTBEAT_INTERVAL_MS$1 = MIN_HEARTBEAT_INTERVAL_MS$2;
|
|
705
|
+
const PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS = PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS$1;
|
|
706
|
+
const PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS = PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS$1;
|
|
707
|
+
const REGISTER_RESPONSE_TIMEOUT_MS = REGISTER_RESPONSE_TIMEOUT_MS$1;
|
|
708
|
+
const RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS = RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS$1;
|
|
709
|
+
const RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS = RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS$1;
|
|
710
|
+
const RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS = RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS$1;
|
|
711
|
+
const DEFAULT_RECONNECT_DELAY_MS = 1e3;
|
|
712
|
+
const MAX_RECONNECT_DELAY_MS = 1e4;
|
|
713
|
+
const CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS = 5e3;
|
|
714
|
+
const CONTROLLED_SHUTDOWN_SOCKET_CLOSE_TIMEOUT_MS = 5e3;
|
|
715
|
+
const CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS = 15e3;
|
|
716
|
+
const DAEMON_DEVICE_ID_FILE = "daemon-device-id.txt";
|
|
717
|
+
const CONTEXT_STORE_FILE = "daemon-context-map.json";
|
|
718
|
+
const LEDGER_DIR_NAME = "openMeldDaemon-ledger";
|
|
719
|
+
const DAEMON_RUNTIME_CONTRACT_META_FILE = "runtime-contract-meta.json";
|
|
720
|
+
const DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE = "runtime-contract-repair-report.json";
|
|
721
|
+
//#endregion
|
|
722
|
+
//#region src/local-service/core/logger.ts
|
|
723
|
+
function emitRunLine(input) {
|
|
724
|
+
if (input.presenter.view === "agent") {
|
|
725
|
+
input.presenter.data({
|
|
726
|
+
code: input.code,
|
|
727
|
+
payload: {
|
|
728
|
+
message: input.text,
|
|
729
|
+
...input.payload === void 0 ? {} : { payload: input.payload }
|
|
730
|
+
}
|
|
731
|
+
});
|
|
732
|
+
return;
|
|
733
|
+
}
|
|
734
|
+
input.presenter.line({
|
|
735
|
+
code: input.code,
|
|
736
|
+
text: input.text
|
|
737
|
+
});
|
|
738
|
+
}
|
|
739
|
+
function clampInteger$1(value, min, max) {
|
|
740
|
+
return Math.min(max, Math.max(min, Math.trunc(value)));
|
|
741
|
+
}
|
|
742
|
+
function normalizeHeartbeatIntervalMs(value) {
|
|
743
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return DEFAULT_HEARTBEAT_INTERVAL_MS;
|
|
744
|
+
return clampInteger$1(value, MIN_HEARTBEAT_INTERVAL_MS$1, MAX_HEARTBEAT_INTERVAL_MS$1);
|
|
745
|
+
}
|
|
746
|
+
function parseTransportMode$1(value) {
|
|
747
|
+
const parsed = runtimeTransportModeSchema.safeParse(value);
|
|
748
|
+
return parsed.success ? parsed.data : null;
|
|
749
|
+
}
|
|
750
|
+
function parseStreamingMode$1(value) {
|
|
751
|
+
if (value === "final" || value === "stream") return value;
|
|
752
|
+
return null;
|
|
753
|
+
}
|
|
754
|
+
function parseRuntimeTransportMode(value) {
|
|
755
|
+
return parseTransportMode$1(value);
|
|
756
|
+
}
|
|
757
|
+
function parseContextIdMappingSpec(value) {
|
|
758
|
+
const record = asRecord(value);
|
|
759
|
+
if (!record) return null;
|
|
760
|
+
const sourceField = normalizeOptionalText$53(record.sourceField);
|
|
761
|
+
const mappingVersion = normalizePositiveInteger$1(record.mappingVersion);
|
|
762
|
+
if (!(sourceField && mappingVersion)) return null;
|
|
763
|
+
return {
|
|
764
|
+
sourceField,
|
|
765
|
+
mappingVersion
|
|
766
|
+
};
|
|
767
|
+
}
|
|
768
|
+
function parsePositiveInteger(value) {
|
|
769
|
+
if (!(typeof value === "number" && Number.isInteger(value) && value > 0)) return null;
|
|
770
|
+
return value;
|
|
771
|
+
}
|
|
772
|
+
function normalizeNonNegativeInteger(value) {
|
|
773
|
+
if (!(typeof value === "number" && Number.isInteger(value) && value >= 0)) return null;
|
|
774
|
+
return value;
|
|
775
|
+
}
|
|
776
|
+
function normalizePositiveInteger$1(value) {
|
|
777
|
+
return parsePositiveInteger(value);
|
|
778
|
+
}
|
|
779
|
+
function asRecord(value) {
|
|
780
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
781
|
+
return value;
|
|
782
|
+
}
|
|
783
|
+
function normalizeText$11(value) {
|
|
784
|
+
return String(value ?? "").trim();
|
|
785
|
+
}
|
|
786
|
+
function normalizeOptionalText$53(value) {
|
|
787
|
+
const normalized = normalizeText$11(value);
|
|
788
|
+
return normalized.length > 0 ? normalized : null;
|
|
789
|
+
}
|
|
790
|
+
function nowIsoString() {
|
|
791
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
792
|
+
}
|
|
793
|
+
function warnDaemonEvent(eventName, fields) {
|
|
794
|
+
const definedFields = Object.fromEntries(Object.entries(fields).filter((entry) => entry[1] !== void 0));
|
|
795
|
+
console.warn(`${nowIsoString()} ${eventName} ${JSON.stringify(definedFields)}`);
|
|
796
|
+
}
|
|
797
|
+
const toErrorMessage$23 = toErrorMessage$25;
|
|
798
|
+
function dirnamePath(path) {
|
|
799
|
+
const lastSlash = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
|
|
800
|
+
if (lastSlash <= 0) return ".";
|
|
801
|
+
return path.slice(0, lastSlash);
|
|
802
|
+
}
|
|
803
|
+
//#endregion
|
|
804
|
+
//#region src/local-service/state/daemon-device-id.ts
|
|
805
|
+
function resolvePreferredDaemonDeviceId(input) {
|
|
806
|
+
return normalizeOptionalText$53(input.explicitDeviceId) ?? normalizeOptionalText$53(input.contractDeviceId) ?? void 0;
|
|
807
|
+
}
|
|
808
|
+
async function resolveDaemonDeviceId(input) {
|
|
809
|
+
const explicit = normalizeOptionalText$53(input.deviceId);
|
|
810
|
+
if (explicit) {
|
|
811
|
+
await persistDaemonDeviceIdIfNeeded({
|
|
812
|
+
deviceId: explicit,
|
|
813
|
+
deviceIdPath: input.deviceIdPath
|
|
814
|
+
});
|
|
815
|
+
return explicit;
|
|
816
|
+
}
|
|
817
|
+
const persisted = normalizeOptionalText$53(await readFile(input.deviceIdPath, "utf8").catch(() => ""));
|
|
818
|
+
if (persisted && !(input.shouldDiscardPersistedDeviceId?.(persisted) ?? false)) return persisted;
|
|
819
|
+
const generated = randomUUID();
|
|
820
|
+
await writeDaemonDeviceId({
|
|
821
|
+
deviceId: generated,
|
|
822
|
+
deviceIdPath: input.deviceIdPath
|
|
823
|
+
});
|
|
824
|
+
return generated;
|
|
825
|
+
}
|
|
826
|
+
async function ensureDaemonRuntimePaths() {
|
|
827
|
+
const dataRootPath = join(daemonRuntimeRootPath(), "data");
|
|
828
|
+
const contextStorePath = join(dataRootPath, CONTEXT_STORE_FILE);
|
|
829
|
+
const deviceIdPath = daemonDeviceIdPath();
|
|
830
|
+
const legacyDeviceIdPath = join(dataRootPath, DAEMON_DEVICE_ID_FILE);
|
|
831
|
+
const ledgerRootPath = join(dataRootPath, LEDGER_DIR_NAME);
|
|
832
|
+
await mkdir(dataRootPath, { recursive: true });
|
|
833
|
+
await mkdir(ledgerRootPath, { recursive: true });
|
|
834
|
+
await mkdir(dirnamePath(deviceIdPath), { recursive: true });
|
|
835
|
+
await migrateLegacyDaemonDeviceId({
|
|
836
|
+
deviceIdPath,
|
|
837
|
+
legacyDeviceIdPath
|
|
838
|
+
});
|
|
839
|
+
return {
|
|
840
|
+
contractMetaPath: join(dataRootPath, DAEMON_RUNTIME_CONTRACT_META_FILE),
|
|
841
|
+
contractRepairReportPath: join(dataRootPath, DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE),
|
|
842
|
+
contextStorePath,
|
|
843
|
+
dataRootPath,
|
|
844
|
+
deviceIdPath,
|
|
845
|
+
ledgerRootPath
|
|
846
|
+
};
|
|
847
|
+
}
|
|
848
|
+
function daemonDeviceIdPath() {
|
|
849
|
+
return join(systemDir(), DAEMON_DEVICE_ID_FILE);
|
|
850
|
+
}
|
|
851
|
+
function buildLedgerPaths(ledgerRootPath) {
|
|
852
|
+
return {
|
|
853
|
+
backupStateFilePath: join(ledgerRootPath, "state.backup.json"),
|
|
854
|
+
historyFilePath: join(ledgerRootPath, "history.ndjson"),
|
|
855
|
+
historyTempFilePath: join(ledgerRootPath, "history.tmp"),
|
|
856
|
+
rootDirPath: ledgerRootPath,
|
|
857
|
+
stateFilePath: join(ledgerRootPath, "state.json"),
|
|
858
|
+
stateTempFilePath: join(ledgerRootPath, "state.tmp")
|
|
859
|
+
};
|
|
860
|
+
}
|
|
861
|
+
async function persistDaemonDeviceIdIfNeeded(input) {
|
|
862
|
+
if (normalizeOptionalText$53(await readFile(input.deviceIdPath, "utf8").catch(() => "")) === input.deviceId) return;
|
|
863
|
+
await writeDaemonDeviceId(input);
|
|
864
|
+
}
|
|
865
|
+
async function writeDaemonDeviceId(input) {
|
|
866
|
+
await mkdir(dirnamePath(input.deviceIdPath), { recursive: true });
|
|
867
|
+
await writeFile(input.deviceIdPath, `${input.deviceId}\n`, "utf8");
|
|
868
|
+
}
|
|
869
|
+
async function migrateLegacyDaemonDeviceId(input) {
|
|
870
|
+
if (normalizeOptionalText$53(await readFile(input.deviceIdPath, "utf8").catch(() => ""))) return;
|
|
871
|
+
const legacy = normalizeOptionalText$53(await readFile(input.legacyDeviceIdPath, "utf8").catch(() => ""));
|
|
872
|
+
if (!legacy) return;
|
|
873
|
+
await writeDaemonDeviceId({
|
|
874
|
+
deviceId: legacy,
|
|
875
|
+
deviceIdPath: input.deviceIdPath
|
|
876
|
+
});
|
|
877
|
+
}
|
|
878
|
+
//#endregion
|
|
879
|
+
//#region src/local-service/state/current-device-identity.ts
|
|
880
|
+
function buildLocalAgentCatalogFromReadiness(readiness) {
|
|
881
|
+
const entries = readiness.agents.candidates.map(buildLocalAgentCatalogEntryFromCandidate);
|
|
882
|
+
const catalog = {
|
|
883
|
+
...summarizeLocalAgentCatalogEntries(entries),
|
|
884
|
+
entries
|
|
885
|
+
};
|
|
886
|
+
const parsed = localAgentCatalogSchema.safeParse(catalog);
|
|
887
|
+
if (!parsed.success) throw new Error(`OpenMeld setup built an invalid local-agent catalog before reporting it: ${formatLocalAgentCatalogValidationError(parsed.error.issues)}`);
|
|
888
|
+
return parsed.data;
|
|
889
|
+
}
|
|
890
|
+
function buildLocalAgentCatalogEntryFromCandidate(candidate) {
|
|
891
|
+
if (candidate.lifecycleStatus === "suspended") return {
|
|
892
|
+
agentId: candidate.agentId,
|
|
893
|
+
displayName: candidate.displayName,
|
|
894
|
+
targetKind: "builtin",
|
|
895
|
+
detected: candidate.detected,
|
|
896
|
+
enabled: candidate.enabled,
|
|
897
|
+
launchStatus: "not_available",
|
|
898
|
+
selectable: false,
|
|
899
|
+
selectableReason: candidate.detected ? "not_supported_yet" : "not_detected"
|
|
900
|
+
};
|
|
901
|
+
if (candidate.launchStatus === "needs_repair" && !candidate.enabled) return {
|
|
902
|
+
agentId: candidate.agentId,
|
|
903
|
+
displayName: candidate.displayName,
|
|
904
|
+
targetKind: "builtin",
|
|
905
|
+
detected: candidate.detected,
|
|
906
|
+
enabled: candidate.enabled,
|
|
907
|
+
launchStatus: "not_available",
|
|
908
|
+
selectable: false,
|
|
909
|
+
selectableReason: "needs_repair"
|
|
910
|
+
};
|
|
911
|
+
return {
|
|
912
|
+
agentId: candidate.agentId,
|
|
913
|
+
displayName: candidate.displayName,
|
|
914
|
+
targetKind: "builtin",
|
|
915
|
+
detected: candidate.detected,
|
|
916
|
+
enabled: candidate.enabled,
|
|
917
|
+
launchStatus: candidate.launchStatus,
|
|
918
|
+
selectable: candidate.selectable,
|
|
919
|
+
selectableReason: normalizeSelectableReason(candidate.selectableReason)
|
|
920
|
+
};
|
|
921
|
+
}
|
|
922
|
+
function summarizeLocalAgentCatalogEntries(entries) {
|
|
923
|
+
return {
|
|
924
|
+
totalBuiltins: entries.length,
|
|
925
|
+
detectedSupported: entries.filter((entry) => entry.detected && entry.launchStatus === "ready").length,
|
|
926
|
+
needsChoice: entries.filter((entry) => entry.detected && entry.launchStatus === "needs_choice").length,
|
|
927
|
+
needsRepair: entries.filter((entry) => entry.detected && entry.launchStatus === "needs_repair").length,
|
|
928
|
+
detectedNotSupportedYet: entries.filter((entry) => entry.detected && entry.launchStatus === "not_available" && entry.selectableReason === "not_supported_yet").length,
|
|
929
|
+
notDetected: entries.filter((entry) => !entry.detected).length
|
|
930
|
+
};
|
|
931
|
+
}
|
|
932
|
+
async function readCurrentLocalDeviceId(input = {}) {
|
|
933
|
+
const contractDeviceId = (input.serviceContract === void 0 ? await readDaemonServiceContract().catch(() => null) : input.serviceContract)?.deviceId;
|
|
934
|
+
if (typeof contractDeviceId === "string" && contractDeviceId.trim().length) return contractDeviceId.trim();
|
|
935
|
+
return await resolveDaemonDeviceId({ deviceIdPath: (await ensureDaemonRuntimePaths()).deviceIdPath });
|
|
936
|
+
}
|
|
937
|
+
function normalizeSelectableReason(selectableReason) {
|
|
938
|
+
switch (selectableReason) {
|
|
939
|
+
case null:
|
|
940
|
+
case "not_detected":
|
|
941
|
+
case "not_supported_yet":
|
|
942
|
+
case "needs_repair":
|
|
943
|
+
case "custom_coming_soon": return selectableReason;
|
|
944
|
+
default: throw new Error(`Unsupported local-agent selectableReason: ${selectableReason}`);
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
function formatLocalAgentCatalogValidationError(issues) {
|
|
948
|
+
return issues.slice(0, 3).map((issue) => {
|
|
949
|
+
return `${issue.path.length ? issue.path.join(".") : "catalog"}: ${issue.message}`;
|
|
950
|
+
}).join("; ");
|
|
951
|
+
}
|
|
952
|
+
//#endregion
|
|
597
953
|
//#region src/system/current-local-runtime-reply-readiness.ts
|
|
598
954
|
async function readCurrentLocalRuntimeReplyReadiness(input) {
|
|
599
|
-
|
|
955
|
+
const deviceId = await readCurrentLocalDeviceId();
|
|
956
|
+
if (!deviceId) throw new Error("This installation has no computer identity. Run openmeld setup to connect it.");
|
|
957
|
+
return await createCurrentDeviceApi(createCliApiClientFoundation(input.gatewayUrl)).getPeopleComputerReplyReadiness({
|
|
958
|
+
deviceId,
|
|
959
|
+
runtimeLane: resolveOpenMeldEnvPreset()
|
|
960
|
+
});
|
|
600
961
|
}
|
|
601
962
|
//#endregion
|
|
602
963
|
//#region src/command-entry-checks/server-required-version-assessment.ts
|
|
@@ -913,7 +1274,7 @@ async function requestLatestPackageInfo(packageName) {
|
|
|
913
1274
|
minRequiredCliVersion: readMinRequiredCliVersion(parsed.openmeld)
|
|
914
1275
|
};
|
|
915
1276
|
} catch (error) {
|
|
916
|
-
throw new Error(`version check failed: invalid registry response: ${toErrorMessage$
|
|
1277
|
+
throw new Error(`version check failed: invalid registry response: ${toErrorMessage$22(error)}`);
|
|
917
1278
|
}
|
|
918
1279
|
}
|
|
919
1280
|
const CLI_BINARY_MANIFEST_URL = toNonEmptyString(process$1.env.OPENMELD_CLI_BINARY_MANIFEST_URL) ?? "https://openmeld.ai/cli/manifest.json";
|
|
@@ -934,7 +1295,7 @@ async function requestCliBinaryManifest() {
|
|
|
934
1295
|
try {
|
|
935
1296
|
return parseCliBinaryManifest(raw);
|
|
936
1297
|
} catch (error) {
|
|
937
|
-
throw new Error(`version check failed: invalid CLI manifest response: ${toErrorMessage$
|
|
1298
|
+
throw new Error(`version check failed: invalid CLI manifest response: ${toErrorMessage$22(error)}`);
|
|
938
1299
|
}
|
|
939
1300
|
}
|
|
940
1301
|
function parseCliBinaryManifest(raw) {
|
|
@@ -1020,7 +1381,7 @@ function toNonEmptyString(value) {
|
|
|
1020
1381
|
const normalized = value.trim();
|
|
1021
1382
|
return normalized.length > 0 ? normalized : null;
|
|
1022
1383
|
}
|
|
1023
|
-
function toErrorMessage$
|
|
1384
|
+
function toErrorMessage$22(error) {
|
|
1024
1385
|
if (error instanceof Error) return error.message;
|
|
1025
1386
|
return String(error);
|
|
1026
1387
|
}
|
|
@@ -2296,7 +2657,7 @@ function resolveOpenMeldAccountContext(input) {
|
|
|
2296
2657
|
};
|
|
2297
2658
|
}
|
|
2298
2659
|
async function resolveCurrentOpenMeldAccountContext() {
|
|
2299
|
-
const { getAuthSessionMetadata } = await import("./auth-session-
|
|
2660
|
+
const { getAuthSessionMetadata } = await import("./auth-session-D9M2sqUr.js");
|
|
2300
2661
|
return resolveOpenMeldAccountContext({ session: await getAuthSessionMetadata().catch(() => null) });
|
|
2301
2662
|
}
|
|
2302
2663
|
function resolveHostKey(baseUrl) {
|
|
@@ -2738,8 +3099,8 @@ function parseJson$1(raw) {
|
|
|
2738
3099
|
var package_default = {
|
|
2739
3100
|
$schema: "https://www.schemastore.org/package.json",
|
|
2740
3101
|
name: "openmeld",
|
|
2741
|
-
version: "0.3.
|
|
2742
|
-
openMeldReleaseDate: "2026-09-
|
|
3102
|
+
version: "0.3.166",
|
|
3103
|
+
openMeldReleaseDate: "2026-09-07",
|
|
2743
3104
|
description: "OpenMeld CLI - https://openmeld.ai",
|
|
2744
3105
|
license: "MIT",
|
|
2745
3106
|
type: "module",
|
|
@@ -2816,7 +3177,7 @@ var package_default = {
|
|
|
2816
3177
|
},
|
|
2817
3178
|
openmeld: {
|
|
2818
3179
|
"releaseLine": "openmeld-greenfield-2026-07",
|
|
2819
|
-
"minRequiredCliVersion": "0.3.
|
|
3180
|
+
"minRequiredCliVersion": "0.3.165"
|
|
2820
3181
|
}
|
|
2821
3182
|
};
|
|
2822
3183
|
//#endregion
|
|
@@ -2838,213 +3199,6 @@ function resolveCurrentDaemonExpectedVersion() {
|
|
|
2838
3199
|
return OPENMELD_VERSION;
|
|
2839
3200
|
}
|
|
2840
3201
|
//#endregion
|
|
2841
|
-
//#region src/config/daemon-service-contract.ts
|
|
2842
|
-
const DAEMON_SERVICE_CONTRACT_FILENAME = "service-contract.json";
|
|
2843
|
-
function daemonServiceContractPath(pathInput = {}) {
|
|
2844
|
-
return join(daemonRuntimeStateRootPath(pathInput), DAEMON_SERVICE_CONTRACT_FILENAME);
|
|
2845
|
-
}
|
|
2846
|
-
async function readDaemonServiceContract(pathInput = {}) {
|
|
2847
|
-
return await readDaemonLocalStateFile({
|
|
2848
|
-
path: daemonServiceContractPath(pathInput),
|
|
2849
|
-
schema: daemonServiceContractSchema
|
|
2850
|
-
});
|
|
2851
|
-
}
|
|
2852
|
-
async function upsertDaemonServiceContract(input, pathInput = {}) {
|
|
2853
|
-
assertDaemonServiceContractMutationAllowed(pathInput);
|
|
2854
|
-
const current = await readDaemonServiceContract(pathInput);
|
|
2855
|
-
const candidate = buildContractCandidate(input, pathInput, current);
|
|
2856
|
-
assertDaemonServiceContractIdentityAllowed(candidate, pathInput);
|
|
2857
|
-
if (current && isSameContractState(current, candidate)) return current;
|
|
2858
|
-
const next = {
|
|
2859
|
-
...candidate,
|
|
2860
|
-
generation: current ? current.generation + 1 : 1,
|
|
2861
|
-
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2862
|
-
};
|
|
2863
|
-
await writeDaemonLocalStateFile({
|
|
2864
|
-
path: daemonServiceContractPath(pathInput),
|
|
2865
|
-
schema: daemonServiceContractSchema,
|
|
2866
|
-
value: next,
|
|
2867
|
-
mode: 384
|
|
2868
|
-
});
|
|
2869
|
-
return next;
|
|
2870
|
-
}
|
|
2871
|
-
async function clearDaemonServiceContract(pathInput = {}) {
|
|
2872
|
-
assertDaemonServiceContractMutationAllowed(pathInput);
|
|
2873
|
-
await rm(daemonServiceContractPath(pathInput), { force: true });
|
|
2874
|
-
}
|
|
2875
|
-
function assertDaemonServiceContractMutationAllowed(pathInput) {
|
|
2876
|
-
assertNoPublishedProductionMutationDuringTests(pathInput, "OpenMeld Service contract");
|
|
2877
|
-
}
|
|
2878
|
-
function assertDaemonServiceContractIdentityAllowed(candidate, pathInput) {
|
|
2879
|
-
if (!isUnsafeProductionDaemonServiceContractIdentity(candidate)) return;
|
|
2880
|
-
if (isTestProcess(pathInput) && !isPublishedProductionOpenMeldRoot(pathInput)) return;
|
|
2881
|
-
throw new Error(["Refusing to write OpenMeld Service contract with a test fixture identity in the published production lane.", "Run `openmeld service repair --profile <profile-id>` from the signed-in production lane, or clear the polluted local service state before retrying."].join(" "));
|
|
2882
|
-
}
|
|
2883
|
-
function isDaemonServiceContractIdentityReusable(contract, pathInput = {}) {
|
|
2884
|
-
if (!contract) return false;
|
|
2885
|
-
if (contract.lane !== resolveOpenMeldEnvPreset(pathInput)) return false;
|
|
2886
|
-
return !isUnsafeProductionDaemonServiceContractIdentity(contract);
|
|
2887
|
-
}
|
|
2888
|
-
function isUnsafeProductionDaemonServiceContractIdentity(contract) {
|
|
2889
|
-
if (contract.lane !== "prod") return false;
|
|
2890
|
-
return isUnsafeProductionDeviceId(contract.deviceId) || (contract.profileId ? isUnsafeProductionProfileId(contract.profileId) : false);
|
|
2891
|
-
}
|
|
2892
|
-
function isUnsafeProductionDeviceId(deviceId) {
|
|
2893
|
-
return normalizeFixtureText(deviceId) === "device_123";
|
|
2894
|
-
}
|
|
2895
|
-
function isUnsafeProductionProfileId(profileId) {
|
|
2896
|
-
return UNSAFE_PRODUCTION_PROFILE_IDS.has(normalizeFixtureText(profileId));
|
|
2897
|
-
}
|
|
2898
|
-
const UNSAFE_PRODUCTION_PROFILE_IDS = /* @__PURE__ */ new Set([
|
|
2899
|
-
"agt_existing",
|
|
2900
|
-
"11111111-1111-1111-1111-111111111111",
|
|
2901
|
-
"agt_11111111-1111-1111-1111-111111111111",
|
|
2902
|
-
"11111111-1111-4111-8111-111111111111",
|
|
2903
|
-
"agt_11111111-1111-4111-8111-111111111111"
|
|
2904
|
-
]);
|
|
2905
|
-
function normalizeFixtureText(value) {
|
|
2906
|
-
return value.trim().toLowerCase();
|
|
2907
|
-
}
|
|
2908
|
-
function buildContractCandidate(input, pathInput, current) {
|
|
2909
|
-
const lane = input.lane ?? resolveOpenMeldEnvPreset(pathInput);
|
|
2910
|
-
const connectedComputerId = input.connectedComputerId ?? (current && canReuseConnectedComputerEvidence(current, input, lane) ? current.connectedComputerId : void 0);
|
|
2911
|
-
return {
|
|
2912
|
-
schema: "openmeld-daemon-service-contract-v1",
|
|
2913
|
-
v: 1,
|
|
2914
|
-
lane,
|
|
2915
|
-
daemonVersion: input.daemonVersion,
|
|
2916
|
-
bundleId: input.bundleId,
|
|
2917
|
-
desiredState: input.desiredState,
|
|
2918
|
-
serviceController: input.serviceController,
|
|
2919
|
-
autoStart: input.autoStart,
|
|
2920
|
-
gatewayUrl: input.gatewayUrl,
|
|
2921
|
-
...input.ownerUserId ? { ownerUserId: input.ownerUserId } : {},
|
|
2922
|
-
...input.profileId ? { profileId: input.profileId } : {},
|
|
2923
|
-
deviceId: input.deviceId,
|
|
2924
|
-
...connectedComputerId ? { connectedComputerId } : {},
|
|
2925
|
-
heartbeatMs: input.heartbeatMs
|
|
2926
|
-
};
|
|
2927
|
-
}
|
|
2928
|
-
function canReuseConnectedComputerEvidence(current, input, lane) {
|
|
2929
|
-
if (current.lane !== lane || current.gatewayUrl !== input.gatewayUrl || current.deviceId !== input.deviceId) return false;
|
|
2930
|
-
if (current.ownerUserId && input.ownerUserId) return current.ownerUserId === input.ownerUserId;
|
|
2931
|
-
if (current.profileId && input.profileId) return current.profileId === input.profileId;
|
|
2932
|
-
return !(current.ownerUserId || input.ownerUserId);
|
|
2933
|
-
}
|
|
2934
|
-
function isSameContractState(current, candidate) {
|
|
2935
|
-
return current.schema === candidate.schema && current.v === candidate.v && current.lane === candidate.lane && current.daemonVersion === candidate.daemonVersion && current.bundleId === candidate.bundleId && current.desiredState === candidate.desiredState && current.serviceController === candidate.serviceController && current.autoStart === candidate.autoStart && current.gatewayUrl === candidate.gatewayUrl && current.ownerUserId === candidate.ownerUserId && current.profileId === candidate.profileId && current.deviceId === candidate.deviceId && current.connectedComputerId === candidate.connectedComputerId && current.heartbeatMs === candidate.heartbeatMs;
|
|
2936
|
-
}
|
|
2937
|
-
//#endregion
|
|
2938
|
-
//#region src/local-service/core/constants.ts
|
|
2939
|
-
const CATALOG_SYNC_RETRY_INTERVAL_MS = CATALOG_SYNC_RETRY_INTERVAL_MS$1;
|
|
2940
|
-
const CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS = CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS$1;
|
|
2941
|
-
const DAEMON_RUNTIME_CONTRACT_EPOCH = DAEMON_RUNTIME_CONTRACT_EPOCH$1;
|
|
2942
|
-
const DAEMON_STREAM_CONNECT_TIMEOUT_MS = DAEMON_STREAM_CONNECT_TIMEOUT_MS$1;
|
|
2943
|
-
const DAEMON_STREAM_KEEPALIVE_INTERVAL_MS = DAEMON_STREAM_KEEPALIVE_INTERVAL_MS$1;
|
|
2944
|
-
const DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS = DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS$1;
|
|
2945
|
-
const DEFAULT_HEARTBEAT_INTERVAL_MS = DEFAULT_HEARTBEAT_INTERVAL_MS$1;
|
|
2946
|
-
const HEARTBEAT_RESPONSE_TIMEOUT_MS = HEARTBEAT_RESPONSE_TIMEOUT_MS$1;
|
|
2947
|
-
const MAX_HEARTBEAT_INTERVAL_MS$1 = MAX_HEARTBEAT_INTERVAL_MS$2;
|
|
2948
|
-
const MIN_HEARTBEAT_INTERVAL_MS$1 = MIN_HEARTBEAT_INTERVAL_MS$2;
|
|
2949
|
-
const PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS = PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS$1;
|
|
2950
|
-
const PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS = PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS$1;
|
|
2951
|
-
const REGISTER_RESPONSE_TIMEOUT_MS = REGISTER_RESPONSE_TIMEOUT_MS$1;
|
|
2952
|
-
const RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS = RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS$1;
|
|
2953
|
-
const RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS = RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS$1;
|
|
2954
|
-
const RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS = RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS$1;
|
|
2955
|
-
const DEFAULT_RECONNECT_DELAY_MS = 1e3;
|
|
2956
|
-
const MAX_RECONNECT_DELAY_MS = 1e4;
|
|
2957
|
-
const CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS = 5e3;
|
|
2958
|
-
const CONTROLLED_SHUTDOWN_SOCKET_CLOSE_TIMEOUT_MS = 5e3;
|
|
2959
|
-
const CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS = 15e3;
|
|
2960
|
-
const DAEMON_DEVICE_ID_FILE = "daemon-device-id.txt";
|
|
2961
|
-
const CONTEXT_STORE_FILE = "daemon-context-map.json";
|
|
2962
|
-
const LEDGER_DIR_NAME = "openMeldDaemon-ledger";
|
|
2963
|
-
const DAEMON_RUNTIME_CONTRACT_META_FILE = "runtime-contract-meta.json";
|
|
2964
|
-
const DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE = "runtime-contract-repair-report.json";
|
|
2965
|
-
//#endregion
|
|
2966
|
-
//#region src/local-service/core/logger.ts
|
|
2967
|
-
function emitRunLine(input) {
|
|
2968
|
-
if (input.presenter.view === "agent") {
|
|
2969
|
-
input.presenter.data({
|
|
2970
|
-
code: input.code,
|
|
2971
|
-
payload: {
|
|
2972
|
-
message: input.text,
|
|
2973
|
-
...input.payload === void 0 ? {} : { payload: input.payload }
|
|
2974
|
-
}
|
|
2975
|
-
});
|
|
2976
|
-
return;
|
|
2977
|
-
}
|
|
2978
|
-
input.presenter.line({
|
|
2979
|
-
code: input.code,
|
|
2980
|
-
text: input.text
|
|
2981
|
-
});
|
|
2982
|
-
}
|
|
2983
|
-
function clampInteger$1(value, min, max) {
|
|
2984
|
-
return Math.min(max, Math.max(min, Math.trunc(value)));
|
|
2985
|
-
}
|
|
2986
|
-
function normalizeHeartbeatIntervalMs(value) {
|
|
2987
|
-
if (typeof value !== "number" || !Number.isFinite(value)) return DEFAULT_HEARTBEAT_INTERVAL_MS;
|
|
2988
|
-
return clampInteger$1(value, MIN_HEARTBEAT_INTERVAL_MS$1, MAX_HEARTBEAT_INTERVAL_MS$1);
|
|
2989
|
-
}
|
|
2990
|
-
function parseTransportMode$1(value) {
|
|
2991
|
-
const parsed = runtimeTransportModeSchema.safeParse(value);
|
|
2992
|
-
return parsed.success ? parsed.data : null;
|
|
2993
|
-
}
|
|
2994
|
-
function parseStreamingMode$1(value) {
|
|
2995
|
-
if (value === "final" || value === "stream") return value;
|
|
2996
|
-
return null;
|
|
2997
|
-
}
|
|
2998
|
-
function parseRuntimeTransportMode(value) {
|
|
2999
|
-
return parseTransportMode$1(value);
|
|
3000
|
-
}
|
|
3001
|
-
function parseContextIdMappingSpec(value) {
|
|
3002
|
-
const record = asRecord(value);
|
|
3003
|
-
if (!record) return null;
|
|
3004
|
-
const sourceField = normalizeOptionalText$53(record.sourceField);
|
|
3005
|
-
const mappingVersion = normalizePositiveInteger$1(record.mappingVersion);
|
|
3006
|
-
if (!(sourceField && mappingVersion)) return null;
|
|
3007
|
-
return {
|
|
3008
|
-
sourceField,
|
|
3009
|
-
mappingVersion
|
|
3010
|
-
};
|
|
3011
|
-
}
|
|
3012
|
-
function parsePositiveInteger(value) {
|
|
3013
|
-
if (!(typeof value === "number" && Number.isInteger(value) && value > 0)) return null;
|
|
3014
|
-
return value;
|
|
3015
|
-
}
|
|
3016
|
-
function normalizeNonNegativeInteger(value) {
|
|
3017
|
-
if (!(typeof value === "number" && Number.isInteger(value) && value >= 0)) return null;
|
|
3018
|
-
return value;
|
|
3019
|
-
}
|
|
3020
|
-
function normalizePositiveInteger$1(value) {
|
|
3021
|
-
return parsePositiveInteger(value);
|
|
3022
|
-
}
|
|
3023
|
-
function asRecord(value) {
|
|
3024
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
3025
|
-
return value;
|
|
3026
|
-
}
|
|
3027
|
-
function normalizeText$11(value) {
|
|
3028
|
-
return String(value ?? "").trim();
|
|
3029
|
-
}
|
|
3030
|
-
function normalizeOptionalText$53(value) {
|
|
3031
|
-
const normalized = normalizeText$11(value);
|
|
3032
|
-
return normalized.length > 0 ? normalized : null;
|
|
3033
|
-
}
|
|
3034
|
-
function nowIsoString() {
|
|
3035
|
-
return (/* @__PURE__ */ new Date()).toISOString();
|
|
3036
|
-
}
|
|
3037
|
-
function warnDaemonEvent(eventName, fields) {
|
|
3038
|
-
const definedFields = Object.fromEntries(Object.entries(fields).filter((entry) => entry[1] !== void 0));
|
|
3039
|
-
console.warn(`${nowIsoString()} ${eventName} ${JSON.stringify(definedFields)}`);
|
|
3040
|
-
}
|
|
3041
|
-
const toErrorMessage$22 = toErrorMessage$25;
|
|
3042
|
-
function dirnamePath(path) {
|
|
3043
|
-
const lastSlash = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
|
|
3044
|
-
if (lastSlash <= 0) return ".";
|
|
3045
|
-
return path.slice(0, lastSlash);
|
|
3046
|
-
}
|
|
3047
|
-
//#endregion
|
|
3048
3202
|
//#region src/local-service/core/types.ts
|
|
3049
3203
|
var DaemonServiceRunError = class extends Error {
|
|
3050
3204
|
code;
|
|
@@ -3247,7 +3401,7 @@ const backupAndCleanRuntimeState = async (input) => {
|
|
|
3247
3401
|
appliedAt: input.nowIso,
|
|
3248
3402
|
backupPaths,
|
|
3249
3403
|
cleanedPaths,
|
|
3250
|
-
errorMessage: toErrorMessage$
|
|
3404
|
+
errorMessage: toErrorMessage$23(error),
|
|
3251
3405
|
fromEpoch: input.fromEpoch,
|
|
3252
3406
|
reason: input.reason,
|
|
3253
3407
|
status: "failed",
|
|
@@ -3337,7 +3491,7 @@ async function resolveDaemonRuntimeContractCompatibility(input) {
|
|
|
3337
3491
|
observedEpoch: null,
|
|
3338
3492
|
updatedAt: null,
|
|
3339
3493
|
reasonCode: "daemon.runtime_contract.unavailable",
|
|
3340
|
-
errorMessage: toErrorMessage$
|
|
3494
|
+
errorMessage: toErrorMessage$23(error)
|
|
3341
3495
|
};
|
|
3342
3496
|
}
|
|
3343
3497
|
if (!meta) return {
|
|
@@ -5920,7 +6074,8 @@ function formatDaemonOwnerKinds(ownerKinds) {
|
|
|
5920
6074
|
}
|
|
5921
6075
|
function resolveActiveOwnerKinds(input) {
|
|
5922
6076
|
const owners = /* @__PURE__ */ new Set();
|
|
5923
|
-
|
|
6077
|
+
const verifiedDirectRuntimePid = input.runtimeStatus.status === "running" && !input.runtimeStatus.managedBySystemService && input.runtimeStatus.serviceController === "unknown" ? input.runtimeStatus.pid : null;
|
|
6078
|
+
if (input.serviceManagerStatus?.running === true || input.ownedProcesses.some((processInfo) => processInfo.ownership === "stable_launcher" && processInfo.pid !== verifiedDirectRuntimePid) || input.runtimeStatus.managedBySystemService && input.effectiveRuntimeStatus === "running") owners.add("system_service");
|
|
5924
6079
|
if (input.ownedProcesses.some((processInfo) => processInfo.ownership === "legacy_detached") || input.runtimeStatus.serviceController === "legacy-detached" && input.effectiveRuntimeStatus === "running") owners.add("legacy_detached");
|
|
5925
6080
|
if (input.ownedProcesses.some((processInfo) => processInfo.ownership === "cli_direct" || processInfo.ownership === "unknown") || !input.runtimeStatus.managedBySystemService && input.runtimeStatus.serviceController !== "legacy-detached" && input.effectiveRuntimeStatus === "running") owners.add("cli_direct");
|
|
5926
6081
|
return Array.from(owners).sort();
|
|
@@ -6012,8 +6167,6 @@ async function inspectDaemonServiceInventory(input) {
|
|
|
6012
6167
|
runtimeState: runtimeStatus,
|
|
6013
6168
|
serviceManagerStatus: scopedServiceManager.serviceManagerStatus
|
|
6014
6169
|
}),
|
|
6015
|
-
unscopedServiceManager: observedServiceManager,
|
|
6016
|
-
unscopedServiceManagerStatus: observedServiceManagerStatus,
|
|
6017
6170
|
serviceContract,
|
|
6018
6171
|
serviceManager: scopedServiceManager.serviceManager,
|
|
6019
6172
|
serviceManagerStatus: scopedServiceManager.serviceManagerStatus,
|
|
@@ -6131,8 +6284,8 @@ function buildRuntimeHealthAnomalies(input) {
|
|
|
6131
6284
|
const anomalies = [];
|
|
6132
6285
|
const ownerSnapshot = buildDaemonOwnerSnapshotFromObservedState({
|
|
6133
6286
|
runtimeStatus: input.runtimeStatus,
|
|
6134
|
-
serviceManager: input.
|
|
6135
|
-
serviceManagerStatus: input.
|
|
6287
|
+
serviceManager: input.serviceManager,
|
|
6288
|
+
serviceManagerStatus: input.serviceManagerStatus,
|
|
6136
6289
|
effectiveRuntimeStatus: input.effectiveRuntimeStatus,
|
|
6137
6290
|
ownedProcesses: input.ownedProcesses
|
|
6138
6291
|
});
|
|
@@ -6156,7 +6309,7 @@ function buildRuntimeHealthAnomalies(input) {
|
|
|
6156
6309
|
code: "service_manager_path_drift",
|
|
6157
6310
|
message: "The OS service manager is still pointing at an old CLI path instead of the OpenMeld-managed stable launcher."
|
|
6158
6311
|
});
|
|
6159
|
-
if ((input.runtimeStatus.status === "running" || input.runtimeStatus.status === "stale") && hasRuntimeBundleMismatch({
|
|
6312
|
+
if ((input.runtimeStatus.status === "running" || input.runtimeStatus.status === "stale") && (input.runtimeStatus.reason !== "process_not_alive" || input.ownedProcesses.some((processInfo) => processInfo.pid === input.runtimeStatus.pid)) && hasRuntimeBundleMismatch({
|
|
6160
6313
|
activeBundleEntryPath: input.activeBundleEntryPath,
|
|
6161
6314
|
activeBundleSourceEntryPath: input.activeBundleSourceEntryPath,
|
|
6162
6315
|
runtimeCommandEntryPath: input.runtimeCommandEntryPath,
|
|
@@ -23555,6 +23708,23 @@ function normalizeOptionalText$12(value) {
|
|
|
23555
23708
|
const normalized = String(value ?? "").trim();
|
|
23556
23709
|
return normalized.length > 0 ? normalized : null;
|
|
23557
23710
|
}
|
|
23711
|
+
function projectPeopleComputersToLegacyLocalRuntimes(inventory, target) {
|
|
23712
|
+
return {
|
|
23713
|
+
currentDeviceId: target?.deviceId ?? null,
|
|
23714
|
+
currentRuntimeLane: target?.runtimeLane ?? null,
|
|
23715
|
+
localRuntimes: inventory.computers.map(({ identityStatus: _identity, connection: _connection, ...computer }) => ({
|
|
23716
|
+
...computer,
|
|
23717
|
+
isCurrent: target !== null && peopleComputerContainsDevice(computer, target.deviceId),
|
|
23718
|
+
executionTargets: computer.executionTargets.map((entry) => ({
|
|
23719
|
+
...entry,
|
|
23720
|
+
isCurrent: entry.deviceId === target?.deviceId && entry.runtimeLane === target?.runtimeLane
|
|
23721
|
+
}))
|
|
23722
|
+
}))
|
|
23723
|
+
};
|
|
23724
|
+
}
|
|
23725
|
+
function peopleComputerContainsDevice(computer, deviceId) {
|
|
23726
|
+
return computer.deviceId === deviceId || computer.legacyDeviceIds?.includes(deviceId) === true || computer.executionTargets.some((target) => target.deviceId === deviceId);
|
|
23727
|
+
}
|
|
23558
23728
|
[.../* @__PURE__ */ new Set([
|
|
23559
23729
|
"bind_agent_profile",
|
|
23560
23730
|
"create_binding",
|
|
@@ -32595,9 +32765,9 @@ function createModelCatalogReadSession(input) {
|
|
|
32595
32765
|
async function readModelCatalogOnce(baseUrl) {
|
|
32596
32766
|
try {
|
|
32597
32767
|
const [apiClient, baseUrlModule, clientFoundationModule] = await Promise.all([
|
|
32598
|
-
import("./dist-
|
|
32768
|
+
import("./dist-CxpovZqh.js"),
|
|
32599
32769
|
import("./base-url-iT1pbiC4.js"),
|
|
32600
|
-
import("./api-client-foundation-
|
|
32770
|
+
import("./api-client-foundation-D9GZ4h3w.js")
|
|
32601
32771
|
]);
|
|
32602
32772
|
if (typeof apiClient.createConfigApi !== "function") throw new Error("config api client is unavailable");
|
|
32603
32773
|
const resolvedBaseUrl = baseUrl ?? await baseUrlModule.resolveBaseUrl();
|
|
@@ -33236,7 +33406,7 @@ async function repairLocalReplyStateOrThrow(input) {
|
|
|
33236
33406
|
mode: "repair"
|
|
33237
33407
|
});
|
|
33238
33408
|
} catch (error) {
|
|
33239
|
-
const errorMessage = toErrorMessage$
|
|
33409
|
+
const errorMessage = toErrorMessage$23(error);
|
|
33240
33410
|
emitRunLine({
|
|
33241
33411
|
presenter: input.presenter,
|
|
33242
33412
|
code: "daemon.run.projection_sync_failed",
|
|
@@ -33253,7 +33423,7 @@ async function repairLocalReplyStateOrThrow(input) {
|
|
|
33253
33423
|
try {
|
|
33254
33424
|
await syncProfileWorkspaceState({ mode: "repair" });
|
|
33255
33425
|
} catch (error) {
|
|
33256
|
-
const errorMessage = toErrorMessage$
|
|
33426
|
+
const errorMessage = toErrorMessage$23(error);
|
|
33257
33427
|
emitRunLine({
|
|
33258
33428
|
presenter: input.presenter,
|
|
33259
33429
|
code: "daemon.run.profile_workspace_sync_failed",
|
|
@@ -33311,7 +33481,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
33311
33481
|
return {
|
|
33312
33482
|
status: "failed",
|
|
33313
33483
|
reason: "load_failed",
|
|
33314
|
-
errorMessage: toErrorMessage$
|
|
33484
|
+
errorMessage: toErrorMessage$23(error)
|
|
33315
33485
|
};
|
|
33316
33486
|
}
|
|
33317
33487
|
const nextFingerprint = buildRouteCatalogFingerprint(nextCatalog);
|
|
@@ -33324,7 +33494,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
33324
33494
|
return {
|
|
33325
33495
|
status: "failed",
|
|
33326
33496
|
reason: "register_failed",
|
|
33327
|
-
errorMessage: toErrorMessage$
|
|
33497
|
+
errorMessage: toErrorMessage$23(error)
|
|
33328
33498
|
};
|
|
33329
33499
|
}
|
|
33330
33500
|
applyAcceptedLeases({
|
|
@@ -33363,7 +33533,7 @@ async function syncDaemonRouteCatalogState(input) {
|
|
|
33363
33533
|
return {
|
|
33364
33534
|
status: "failed",
|
|
33365
33535
|
reason: "register_failed",
|
|
33366
|
-
errorMessage: toErrorMessage$
|
|
33536
|
+
errorMessage: toErrorMessage$23(error)
|
|
33367
33537
|
};
|
|
33368
33538
|
}
|
|
33369
33539
|
const diff = buildRouteCatalogDiff({
|
|
@@ -33570,7 +33740,7 @@ async function resolveLocalServiceDemand(input) {
|
|
|
33570
33740
|
decision: "indeterminate",
|
|
33571
33741
|
hasLocalExecutionRoute: false,
|
|
33572
33742
|
repairableReplyCandidateCount: 0,
|
|
33573
|
-
reason: `failed to load local daemon routes: ${toErrorMessage$
|
|
33743
|
+
reason: `failed to load local daemon routes: ${toErrorMessage$23(error)}`,
|
|
33574
33744
|
localExecutionRouteCount: 0,
|
|
33575
33745
|
projection
|
|
33576
33746
|
};
|
|
@@ -37561,81 +37731,6 @@ function toErrorMessage(error) {
|
|
|
37561
37731
|
return String(error);
|
|
37562
37732
|
}
|
|
37563
37733
|
//#endregion
|
|
37564
|
-
//#region src/local-service/state/daemon-device-id.ts
|
|
37565
|
-
function resolvePreferredDaemonDeviceId(input) {
|
|
37566
|
-
return normalizeOptionalText$53(input.explicitDeviceId) ?? normalizeOptionalText$53(input.contractDeviceId) ?? void 0;
|
|
37567
|
-
}
|
|
37568
|
-
async function resolveDaemonDeviceId(input) {
|
|
37569
|
-
const explicit = normalizeOptionalText$53(input.deviceId);
|
|
37570
|
-
if (explicit) {
|
|
37571
|
-
await persistDaemonDeviceIdIfNeeded({
|
|
37572
|
-
deviceId: explicit,
|
|
37573
|
-
deviceIdPath: input.deviceIdPath
|
|
37574
|
-
});
|
|
37575
|
-
return explicit;
|
|
37576
|
-
}
|
|
37577
|
-
const persisted = normalizeOptionalText$53(await readFile(input.deviceIdPath, "utf8").catch(() => ""));
|
|
37578
|
-
if (persisted && !(input.shouldDiscardPersistedDeviceId?.(persisted) ?? false)) return persisted;
|
|
37579
|
-
const generated = randomUUID();
|
|
37580
|
-
await writeDaemonDeviceId({
|
|
37581
|
-
deviceId: generated,
|
|
37582
|
-
deviceIdPath: input.deviceIdPath
|
|
37583
|
-
});
|
|
37584
|
-
return generated;
|
|
37585
|
-
}
|
|
37586
|
-
async function ensureDaemonRuntimePaths() {
|
|
37587
|
-
const dataRootPath = join(daemonRuntimeRootPath(), "data");
|
|
37588
|
-
const contextStorePath = join(dataRootPath, CONTEXT_STORE_FILE);
|
|
37589
|
-
const deviceIdPath = daemonDeviceIdPath();
|
|
37590
|
-
const legacyDeviceIdPath = join(dataRootPath, DAEMON_DEVICE_ID_FILE);
|
|
37591
|
-
const ledgerRootPath = join(dataRootPath, LEDGER_DIR_NAME);
|
|
37592
|
-
await mkdir(dataRootPath, { recursive: true });
|
|
37593
|
-
await mkdir(ledgerRootPath, { recursive: true });
|
|
37594
|
-
await mkdir(dirnamePath(deviceIdPath), { recursive: true });
|
|
37595
|
-
await migrateLegacyDaemonDeviceId({
|
|
37596
|
-
deviceIdPath,
|
|
37597
|
-
legacyDeviceIdPath
|
|
37598
|
-
});
|
|
37599
|
-
return {
|
|
37600
|
-
contractMetaPath: join(dataRootPath, DAEMON_RUNTIME_CONTRACT_META_FILE),
|
|
37601
|
-
contractRepairReportPath: join(dataRootPath, DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE),
|
|
37602
|
-
contextStorePath,
|
|
37603
|
-
dataRootPath,
|
|
37604
|
-
deviceIdPath,
|
|
37605
|
-
ledgerRootPath
|
|
37606
|
-
};
|
|
37607
|
-
}
|
|
37608
|
-
function daemonDeviceIdPath() {
|
|
37609
|
-
return join(systemDir(), DAEMON_DEVICE_ID_FILE);
|
|
37610
|
-
}
|
|
37611
|
-
function buildLedgerPaths(ledgerRootPath) {
|
|
37612
|
-
return {
|
|
37613
|
-
backupStateFilePath: join(ledgerRootPath, "state.backup.json"),
|
|
37614
|
-
historyFilePath: join(ledgerRootPath, "history.ndjson"),
|
|
37615
|
-
historyTempFilePath: join(ledgerRootPath, "history.tmp"),
|
|
37616
|
-
rootDirPath: ledgerRootPath,
|
|
37617
|
-
stateFilePath: join(ledgerRootPath, "state.json"),
|
|
37618
|
-
stateTempFilePath: join(ledgerRootPath, "state.tmp")
|
|
37619
|
-
};
|
|
37620
|
-
}
|
|
37621
|
-
async function persistDaemonDeviceIdIfNeeded(input) {
|
|
37622
|
-
if (normalizeOptionalText$53(await readFile(input.deviceIdPath, "utf8").catch(() => "")) === input.deviceId) return;
|
|
37623
|
-
await writeDaemonDeviceId(input);
|
|
37624
|
-
}
|
|
37625
|
-
async function writeDaemonDeviceId(input) {
|
|
37626
|
-
await mkdir(dirnamePath(input.deviceIdPath), { recursive: true });
|
|
37627
|
-
await writeFile(input.deviceIdPath, `${input.deviceId}\n`, "utf8");
|
|
37628
|
-
}
|
|
37629
|
-
async function migrateLegacyDaemonDeviceId(input) {
|
|
37630
|
-
if (normalizeOptionalText$53(await readFile(input.deviceIdPath, "utf8").catch(() => ""))) return;
|
|
37631
|
-
const legacy = normalizeOptionalText$53(await readFile(input.legacyDeviceIdPath, "utf8").catch(() => ""));
|
|
37632
|
-
if (!legacy) return;
|
|
37633
|
-
await writeDaemonDeviceId({
|
|
37634
|
-
deviceId: legacy,
|
|
37635
|
-
deviceIdPath: input.deviceIdPath
|
|
37636
|
-
});
|
|
37637
|
-
}
|
|
37638
|
-
//#endregion
|
|
37639
37734
|
//#region src/local-service/state/runtime-data-preservation.ts
|
|
37640
37735
|
const DAEMON_RUNTIME_DATA_BACKUP_PREFIX = "openmeld-daemon-runtime-data-";
|
|
37641
37736
|
const DAEMON_RUNTIME_DATA_DIR_NAME = "data";
|
|
@@ -40443,6 +40538,6 @@ function projectServiceJob(job) {
|
|
|
40443
40538
|
};
|
|
40444
40539
|
}
|
|
40445
40540
|
//#endregion
|
|
40446
|
-
export { resolveCurrentReplyReadinessSnapshot as $, buildDaemonRouteObservationPresentation as $a, emitDaemonLifecycleEvent as $i, resolveLocalRegistryAgentIdFromAgentControllerRef as $n, hasIndependentMaintenanceRegistration as $o, listAgentControllerPermissionModeOptions as $r, removeMissingProjectConnections as $t, formatDaemonFailureContextText as A, CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS as Aa, formatDaemonOwnerSummaryLabel as Ai, canManageRegistryAgentSkillTargets as An, createAuthenticationError as Ao, buildTaskResultEnvelope as Ar, resolveLocalRuntimeControllerSupport as At, buildDaemonServiceUpdateRequiredNextStep as B, PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS as Ba, resolveDaemonRuntimeState as Bi, requestLocalDaemonShutdown as Bn, DAEMON_SERVICE_AUTO_HEAL_ANOMALIES as Bo, buildAuthenticatedControlPlaneResponse as Br, resolveConfiguredProfileWorkspacePathForAccount as Bt, ensureDaemonSystemServiceCommandFiles as C, normalizeText$11 as Ca, resolveInstalledClaudeCodeLaunchCandidates as Ci, reconcileNewRunnableBuiltinAgentRegistrations as Cn, clearSelectedOpenMeldProfileId as Co, resolveDispatchQueueLogMeta as Cr, createRouteCatalogFromMutableState as Ct, resolvePreferredDaemonDeviceId as D, CATALOG_SYNC_RETRY_INTERVAL_MS as Da, materializeCliLaunchCommand as Di, setAgentRegistrationEnabled as Dn, buildAuthenticationStatusLabel as Do, resolveLatestScopedConversationExecutionState as Dr, buildRuntimeRouteTargets as Dt, resolveDaemonDeviceId as E, warnDaemonEvent as Ea, buildCliLaunchInvocation as Ei, resolveAgentTargetState as En, buildAgentAuthenticationGuide as Eo, resolveCompatibleConversationExecutionState as Er, syncDaemonRouteCatalogState as Et, resolveServiceReadinessFromServiceStatus as F, DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS as Fa, summarizeDaemonOwnerSnapshot as Fi, resolveRegistryRuntimeAdapterCapabilitySnapshot as Fn, resolveAuthenticationReasonFromState as Fo, resolveConversationExecutionStateByLookupKey as Fr, ensureOpenMeldManagedProfileWorkspace as Ft, clearDaemonStartFailureState as G, clearDaemonServiceContract as Ga, assertDaemonMaintenanceInstallationOwnership as Gi, sortAgentRegistrations as Gn, classifyDaemonServiceWakeability as Go, buildInformationProtectionPromptPlan as Gr, ProjectBindingOperationError as Gt, formatDaemonServiceUpdateRequiredMessage as H, RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS as Ha, waitForDaemonSystemServiceToStop as Hi, normalizeAgentId as Hn, DAEMON_SERVICE_REPAIR_ANOMALIES as Ho, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as Hr, setOpenMeldManagedProfileWorkspace as Ht, buildDaemonServiceRefreshNextStep as I, DEFAULT_RECONNECT_DELAY_MS as Ia, clearDaemonRuntimeStateIfDefinitelyStopped as Ii, resolveRegistryRuntimeAdapterContractByAgentControllerRef as In, buildDaemonServiceTargetSpec as Io, seedLegacyAgentContext as Ir, normalizeCustomProfileWorkspacePath as It, buildDaemonServiceDependencyMeaning as J, upsertDaemonServiceContract as Ja, cleanupInactiveDaemonServiceBundles as Ji, resolveBuiltinAgentControllerDefinition as Jn, ensureVersionStateReady as Jo, createAgentExecutionStatusDisplayRows as Jr, isProjectBound as Jt, writeDaemonStartFailureState as K, isDaemonServiceContractIdentityReusable as Ka, extractDaemonCommandEntryPath as Ki, repairBuiltinControllerInstall as Kn, buildNextVersionState as Ko, buildWorkingLanguagePromptPlan as Kr, ProjectBindingStoreUpdateRequiredError as Kt, buildDaemonServiceRefreshPromptMessage as L, HEARTBEAT_RESPONSE_TIMEOUT_MS as La, getEffectiveDaemonRuntimeStatus as Li, notifyDaemonRouteCatalogChanged as Ln, resolveDaemonServiceAlignmentDecision as Lo, settleInflightTask as Lr, readProfileWorkspaceConfig as Lt, resolveDaemonStatusAttention as M, DAEMON_RUNTIME_CONTRACT_EPOCH as Ma, readCurrentDaemonOwnerSnapshot as Mi, resolveSkillsAgentRegistry as Mn, resolveAuthenticationGuidance as Mo, commitResolvedAgentContext as Mr, createModelCatalogReadSession as Mt, resolveDaemonStatusAuthenticationAttention as N, DAEMON_STREAM_CONNECT_TIMEOUT_MS as Na, resolveDaemonStopStrategy as Ni, listBuiltinAgentsRegistryEntries as Nn, resolveAuthenticationGuidanceFromError as No, loadLedgerState as Nr, resolveCurrentEffectiveProfileWorkingFolderRuntime as Nt, captureDaemonServiceEvidence as O, CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS as Oa, inspectDaemonServiceInventory as Oi, updateAgentCustomTarget as On, buildCommandAuthenticationPromptMessage as Oo, runRuntimeTask as Or, readLocalEnabledControllers as Ot, resolveServiceReadiness as P, DAEMON_STREAM_KEEPALIVE_INTERVAL_MS as Pa, resolveStoppedContractWriteBlockedReason as Pi, resolveRegistryOriginLaunchCommand as Pn, resolveAuthenticationGuidanceFromMessage as Po, removeConversationExecutionState as Pr, resolveProfileWorkspaceRuntime as Pt, resolveDaemonServiceDependencyDiagnostics as Q, PREPARE_SESSION_RECONNECT_GRACE_MS as Qa, resolveDaemonBundleEntryPathFromState as Qi, isPnpmGlobalCommandPath as Qn, writeVersionState as Qo, isAgentExecutionReadyOrConnecting as Qr, removeAgentActivityBindingsWhileDeliveryLocked as Qt, buildDaemonServiceRepairGuidance as R, MAX_RECONNECT_DELAY_MS as Ra, readCurrentDaemonRuntimeContext as Ri, LocalDaemonControlPlaneClientError as Rn, isVersionDowngrade as Ro, upsertConversationExecutionState as Rr, readProfileWorkspaceConfigForAccount as Rt, buildDaemonSystemServiceCommandSpec as S, normalizeOptionalText$53 as Sa, verifyCodexAppServerThread as Si, readAgentRuntimeConfigHealth as Sn, clearAllSelectedOpenMeldProfileIds as So, resolveCatalogSyncIntervalMs as Sr, createMutableRouteCatalogState as St, ensureDaemonRuntimePaths as T, toErrorMessage$22 as Ta, createUnsupportedProviderUsageLimits as Ti, removeAgentCustomTarget as Tn, setSelectedOpenMeldProfileId as To, resolveCompatibleAgentContextMatch as Tr, summarizeSkippedDaemonProfiles as Tt, buildDaemonServiceFreshnessPromptLines as U, RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS as Ua, cleanupLegacySharedDaemonServiceState as Ui, normalizeAgentIds as Un, DAEMON_SERVICE_WAKEABILITY_ADVISORY_ANOMALIES as Uo, areAgentControllerInterfaceAccountsSame as Ur, validateCustomProfileWorkspacePath as Ut, formatDaemonServiceRefreshReliabilityMessage as V, REGISTER_RESPONSE_TIMEOUT_MS as Va, resolveDaemonServiceManagerForRuntimeState as Vi, sendLocalDaemonControlPlaneRequest as Vn, DAEMON_SERVICE_FULL_ALIGNMENT_ANOMALIES as Vo, buildAgentContextLookupKey as Vr, setCustomProfileWorkspace as Vt, resolveDaemonServiceFreshnessWarning as W, RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS as Wa, listDaemonOwnedProcesses as Wi, parseAgentEnabledOption as Wn, classifyDaemonServiceRunStartability as Wo, buildAgentControllerRef as Wr, describeProfileWorkspacePathValidationFailure as Wt, buildDaemonServiceDependencySummary as X, OPENMELD_VERSION as Xa, readDaemonActiveBundleState as Xi, isHomebrewCommandPath as Xn, fetchLatestPackageInfo as Xo, getAgentControllerPermissionModeDisplayMetadata as Xr, listProjectConnectionsWithStatus as Xt, buildDaemonServiceDependencyNextStep as Y, resolveCurrentDaemonExpectedVersion as Ya, prepareDaemonServiceBundle as Yi, isBunGlobalCommandPath as Yn, fetchLatestCliBinaryRelease as Yo, createAuthorityOpenMeldServiceRuntimeId as Yr, listProjectBindings as Yt, buildDaemonServiceDependencyTitle as Z, package_default as Za, resolveAlignedDaemonActiveBundleEntryPath as Zi, isNpmGlobalCommandPath as Zn, readVersionState as Zo, getAgentControllerPermissionModeFieldLabel as Zr, migrateProjectBindingStore as Zt, isDaemonInventoryRunningAndStartReady as _, asRecord as _a, resolveInstalledGrokBuildLaunchCandidates as _i, createRegistrationFromCatalogTarget as _n, resolveOpenMeldProfile as _o, MIN_HEARTBEAT_INTERVAL_MS as _r, normalizeOpenClawSpaceIdPrefix as _t, resolveOpenMeldToolsMaintenanceProjection as a, runDaemonServiceManagerAction as aa, resolveAgentProfileEditCapabilities as ai, canonicalizeLocalProjectPath as an, getProfileDefaultView as ao, resolveRouteRegistrationReconcileDecision as ar, formatInlineOpenMeldCliCommands as as, REPLY_READINESS_COPY as at, waitForSystemServiceStartup as b, normalizeHeartbeatIntervalMs as ba, resolveInstalledCodexLaunchCandidates as bi, listAgentTargetStates as bn, readDaemonCatalogSyncSignal as bo, pruneStaleLeases as br, writeDaemonRouteCatalogCache as bt, isCliUpdateCheckApplicable as c, performManagedInstall as ca, resolveSelectableCandidates as ci, withAgentActivityLocalStateLock as cn, isSelectedOpenMeldProfileRequiredError as co, normalizeDispatchPostMessageAction as cr, formatOpenMeldCliLine as cs, resolveReplyReadinessGuidanceSummaryCopy as ct, scheduleDaemonServiceUpdate as d, resolveDaemonServiceUpdateOperation as da, createLocalAdapterEntries as di, emitDriftDetectedEvidence as dn, createOpenMeldAgentProfile as do, createLocalTaskInterruptSender as dr, formatProfileAwareOpenMeldCliCommands as ds, resolveGatewayChainReadiness as dt, formatDaemonLifecycleOriginSummary as ea, parseAgentControllerRef as ei, removeProjectConnection as en, buildOnboardingPlan as eo, normalizeDispatchThreadAction as er, resolveServiceUpdateUrgency as es, formatAgentReplyReadinessLabel as et, DaemonServiceLifecycleDrainTimeoutError as f, resolveDaemonRuntimeContractCompatibility as fa, parseOpenCodeGoUsageResponse as fi, emitReconcileCompletedEvidence as fn, createOpenMeldHumanProfile as fo, buildLocalServiceDiagnosticsPayload as fr, resolveSetupFollowUpCliEntryCommand as fs, resolveGatewayChainRepairGuidance as ft, uninstallDaemonServiceUpdateWorker as g, DaemonServiceRunError as ga, probeGrokBuildAcpInterface as gi, addAgentCustomTarget as gn, primeOpenMeldProfilesSessionCache as go, MAX_HEARTBEAT_INTERVAL_MS as gr, resolveBuiltinAgentControllerBrand as gs, buildOpenClawSpaceSessionKey as gt, prepareDaemonServiceUpdateWorkerCarrier as h, readDaemonRuntimeContractRepairReport as ha, GrokBuildAcpTransportError as hi, resolveAgentProfilePrimaryAgentControllerReport as hn, listOpenMeldProfiles as ho, ADAPTIVE_HEARTBEAT_JITTER_RATIO as hr, compareAgentControllerRefsForDisplay as hs, prepareProviderRuntime as ht, readOpenMeldToolsMaintenancePolicy as i, resolveRecentDaemonSignalStopCause as ia, resolveAgentExecutionStatus as ii, unbindProject as in, resolveViewProfileKey as io, isDaemonReconcileInProgressError as ir, resolveAuthBaseUrl as is, mapAgentReplyReadinessToLegacyAutoReply as it, resolveDaemonStatusSnapshot as j, CONTROLLED_SHUTDOWN_SOCKET_CLOSE_TIMEOUT_MS as ja, hasActiveDaemonOwners as ji, detectInstalledSkillsAgents as jn, extractAuthenticationPromptAction as jo, appendLedgerHistoryEntry as jr, syncProfileWorkspaceState as jt, captureDaemonServiceEvidenceBestEffort as k, CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS as ka, buildDaemonOwnerSnapshotFromObservedState as ki, updateAgentRegistrations as kn, buildHumanAuthenticationCard as ko, buildRuntimeWorkspaceFingerprint as kr, resolveLocalController as kt, readOpenMeldToolsUpdateContextFromEnv as l, readLastDaemonServiceUpdate as la, resolveCatalogSyncSkippedProfilesLogState as li, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as ln, requireOpenMeldProfile as lo, createPendingAgentInteractionRegistry as lr, formatOpenMeldCliTextBlock as ls, resolveOpenClawDiagnosticsGuidance as lt, ensureDaemonServiceMaintenanceInstalled as m, ensureDaemonRuntimeContractState as ma, resolveInstalledOpenCodeLaunchCandidates as mi, createPrimaryBindingReadSession as mn, getOpenMeldProfileCapabilities as mo, createInflightTaskControlRegistry as mr, cliBinaryDeltaPatchSchema as ms, resolveOpenClawLocalDiagnosticsValue as mt, readLastOpenMeldToolsUpdateAttempt as n, readLatestDaemonLifecycleOriginEvent as na, renderWorkingLanguagePrompt as ni, runIfAgentActivityBindingGenerationIsCurrent as nn, parseCliViewMode as no, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as nr, describeServerRequiredVersionUnavailableReason as ns, formatHumanReplyReadinessReason as nt, writeOpenMeldToolsMaintenancePolicy as o, runWithDaemonLifecycleCommandJournal as oa, resolveEvidenceSyncHealth as oi, resolveLocalProjectConnectionForPath as on, setProfileDefaultView as oo, createSerialAgentInteractionCallback as or, formatOpenMeldCliCommand as os, formatSpaceMemberCommandRecoveryCopy as ot, runDaemonServiceLifecycle as p, toStartBackgroundHelperExecutionCompatibility as pa, forkOpenCodeServerSession as pi, emitReconcileStartedEvidence as pn, deleteOpenMeldProfile as po, createLocalExecutionSlots as pr, resolveUserFacingCliEntryCommand as ps, resolveGatewayChainRetryGuidance as pt, buildDaemonServiceDependencyDetails as q, readDaemonServiceContract as qa, resolveDaemonBundleIdFromEntryPath as qi, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as qn, compareSemver as qo, createAgentControllerInterfaceDisplayRows as qr, bindProject as qt, readPendingOpenMeldToolsUpdateAttempt as r, readRecentDaemonLifecycleEvents as ra, resolveAgentControllerPermissionModeForController as ri, setDefaultProjectConnection as rn, resolveRuntimeContext as ro, SPACE_ACTION_TARGET_GUIDANCE_LINES as rr, resolveOpenMeldEnvironmentTarget as rs, formatReplyReadinessSummary as rt, assessCliUpdate as s, buildInstallSelfJsonPayload as sa, resolveNativeAgentControllerPermissionModeForController as si, withAgentActivityDeliveryLock as sn, resolveCurrentOpenMeldAccountContext as so, buildDispatchReplyContextSummary as sr, formatOpenMeldCliCommands as ss, resolveReplyReadinessAvailabilityReasonCopy as st, createOpenMeldToolsUpdateCoordinator as t, readLatestDaemonLifecycleConnectionStateEvent as ta, renderInformationProtectionPrompt as ti, resolveProjectBindingForPath as tn, getSetupFlowCopy as to, syncRuntimeEventToInflightTaskControlRegistry as tr, assessServerRequiredVersion as ts, formatDeviceReplyReadinessLabel as tt, runPendingDaemonServiceUpdate as u, readPendingDaemonServiceUpdate as ua, createLocalAdapterContainer as ui, syncDeviceRuntimeStateProjection as un, resolveOpenMeldProfileOrNull as uo, mergeOpenClawGatewayVisibility as ur, formatProfileAwareOpenMeldCliCommand as us, classifyGatewayChainFailure as ut, isSystemServiceStartupTimeoutError as v, dirnamePath as va, projectCodexUsageLimits as vi, listAgentCustomTargets as vn, updateOpenMeldProfile as vo, applyAcceptedLeases as vr, slugifyOpenClawNamePart as vt, buildLedgerPaths as w, nowIsoString as wa, createUnavailableProviderUsageLimits as wi, reconcileNewRunnableBuiltinAgentsForSetup as wn, getSelectedOpenMeldProfileId as wo, resolveDispatchContinuityObservation as wr, loadDaemonRouteCatalog as wt, writeDaemonServiceContract as x, normalizeNonNegativeInteger as xa, forkCodexAppServerThread as xi, manageAgentRegistrationInstallation as xn, alignSelectedOpenMeldProfileStorage as xo, resolveAdaptiveHeartbeatIntervalMs as xr, resolveLocalServiceDemand as xt, resolveSystemServiceStartupWaitMs as y, emitRunLine as ya, resolveCodexTimeoutMs as yi, listAgentRegistrations as yn, assertAdditionalHumanProfileCreationEnabled as yo, applyIntervalJitterMs as yr, readDaemonRouteCatalogCache as yt, buildDaemonServiceStatusReadOnlyDetail as z, PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS as za, readCurrentObservedDaemonRuntimeStatus as zi, requestLocalAgentActivitySync as zn, resolveVersionChangeDirection as zo, withLedgerStateTransaction as zr, resolveConfiguredProfileWorkspacePath as zt };
|
|
40541
|
+
export { formatReplyReadinessSummary as $, resolveAuthenticationGuidanceFromError as $a, readLatestDaemonLifecycleConnectionStateEvent as $i, SPACE_ACTION_TARGET_GUIDANCE_LINES as $n, REGISTER_RESPONSE_TIMEOUT_MS as $o, renderInformationProtectionPrompt as $r, setDefaultProjectConnection as $t, resolveServiceReadiness as A, resolveOpenMeldProfileOrNull as Aa, readCurrentDaemonOwnerSnapshot as Ai, resolveRegistryOriginLaunchCommand as An, dirnamePath as Ao, removeConversationExecutionState as Ar, resolveProfileWorkspaceRuntime as At, resolveDaemonServiceFreshnessWarning as B, readDaemonCatalogSyncSignal as Ba, waitForDaemonSystemServiceToStop as Bi, parseAgentEnabledOption as Bn, CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS as Bo, buildAgentControllerRef as Br, describeProfileWorkspacePathValidationFailure as Bt, ensureDaemonSystemServiceCommandFiles as C, resolveRuntimeContext as Ca, createUnsupportedProviderUsageLimits as Ci, setAgentRegistrationEnabled as Cn, buildLocalAgentCatalogFromReadiness as Co, resolveLatestScopedConversationExecutionState as Cr, buildRuntimeRouteTargets as Ct, resolveDaemonStatusSnapshot as D, resolveCurrentOpenMeldAccountContext as Da, buildDaemonOwnerSnapshotFromObservedState as Di, detectInstalledSkillsAgents as Dn, resolveDaemonDeviceId as Do, appendLedgerHistoryEntry as Dr, syncProfileWorkspaceState as Dt, formatDaemonFailureContextText as E, setProfileDefaultView as Ea, inspectDaemonServiceInventory as Ei, canManageRegistryAgentSkillTargets as En, ensureDaemonRuntimePaths as Eo, buildTaskResultEnvelope as Er, resolveLocalRuntimeControllerSupport as Et, buildDaemonServiceStatusReadOnlyDetail as F, listOpenMeldProfiles as Fa, getEffectiveDaemonRuntimeStatus as Fi, requestLocalAgentActivitySync as Fn, normalizeText$11 as Fo, withLedgerStateTransaction as Fr, resolveConfiguredProfileWorkspacePath as Ft, buildDaemonServiceDependencyNextStep as G, setSelectedOpenMeldProfileId as Ga, resolveDaemonBundleIdFromEntryPath as Gi, isBunGlobalCommandPath as Gn, DAEMON_STREAM_CONNECT_TIMEOUT_MS as Go, createAuthorityOpenMeldServiceRuntimeId as Gr, listProjectBindings as Gt, writeDaemonStartFailureState as H, clearAllSelectedOpenMeldProfileIds as Ha, listDaemonOwnedProcesses as Hi, repairBuiltinControllerInstall as Hn, CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS as Ho, buildWorkingLanguagePromptPlan as Hr, ProjectBindingStoreUpdateRequiredError as Ht, buildDaemonServiceUpdateRequiredNextStep as I, primeOpenMeldProfilesSessionCache as Ia, readCurrentDaemonRuntimeContext as Ii, requestLocalDaemonShutdown as In, nowIsoString as Io, buildAuthenticatedControlPlaneResponse as Ir, resolveConfiguredProfileWorkspacePathForAccount as It, resolveDaemonServiceDependencyDiagnostics as J, buildCommandAuthenticationPromptMessage as Ja, readDaemonActiveBundleState as Ji, isPnpmGlobalCommandPath as Jn, DEFAULT_RECONNECT_DELAY_MS as Jo, isAgentExecutionReadyOrConnecting as Jr, removeAgentActivityBindingsWhileDeliveryLocked as Jt, buildDaemonServiceDependencySummary as K, buildAgentAuthenticationGuide as Ka, cleanupInactiveDaemonServiceBundles as Ki, isHomebrewCommandPath as Kn, DAEMON_STREAM_KEEPALIVE_INTERVAL_MS as Ko, getAgentControllerPermissionModeDisplayMetadata as Kr, listProjectConnectionsWithStatus as Kt, formatDaemonServiceRefreshReliabilityMessage as L, resolveOpenMeldProfile as La, readCurrentObservedDaemonRuntimeStatus as Li, sendLocalDaemonControlPlaneRequest as Ln, toErrorMessage$23 as Lo, buildAgentContextLookupKey as Lr, setCustomProfileWorkspace as Lt, buildDaemonServiceRefreshNextStep as M, createOpenMeldHumanProfile as Ma, resolveStoppedContractWriteBlockedReason as Mi, resolveRegistryRuntimeAdapterContractByAgentControllerRef as Mn, normalizeHeartbeatIntervalMs as Mo, seedLegacyAgentContext as Mr, normalizeCustomProfileWorkspacePath as Mt, buildDaemonServiceRefreshPromptMessage as N, deleteOpenMeldProfile as Na, summarizeDaemonOwnerSnapshot as Ni, notifyDaemonRouteCatalogChanged as Nn, normalizeNonNegativeInteger as No, settleInflightTask as Nr, readProfileWorkspaceConfig as Nt, resolveDaemonStatusAttention as O, isSelectedOpenMeldProfileRequiredError as Oa, formatDaemonOwnerSummaryLabel as Oi, resolveSkillsAgentRegistry as On, resolvePreferredDaemonDeviceId as Oo, commitResolvedAgentContext as Or, createModelCatalogReadSession as Ot, buildDaemonServiceRepairGuidance as P, getOpenMeldProfileCapabilities as Pa, clearDaemonRuntimeStateIfDefinitelyStopped as Pi, LocalDaemonControlPlaneClientError as Pn, normalizeOptionalText$53 as Po, upsertConversationExecutionState as Pr, readProfileWorkspaceConfigForAccount as Pt, formatHumanReplyReadinessReason as Q, resolveAuthenticationGuidance as Qa, formatDaemonLifecycleOriginSummary as Qi, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as Qn, PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS as Qo, projectPeopleComputersToLegacyLocalRuntimes as Qr, runIfAgentActivityBindingGenerationIsCurrent as Qt, formatDaemonServiceUpdateRequiredMessage as R, updateOpenMeldProfile as Ra, resolveDaemonRuntimeState as Ri, normalizeAgentId as Rn, warnDaemonEvent as Ro, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as Rr, setOpenMeldManagedProfileWorkspace as Rt, buildDaemonSystemServiceCommandSpec as S, parseCliViewMode as Sa, createUnavailableProviderUsageLimits as Si, resolveAgentTargetState as Sn, describeServerRequiredVersionUnavailableReason as So, resolveCompatibleConversationExecutionState as Sr, syncDaemonRouteCatalogState as St, captureDaemonServiceEvidenceBestEffort as T, getProfileDefaultView as Ta, materializeCliLaunchCommand as Ti, updateAgentRegistrations as Tn, buildLedgerPaths as To, buildRuntimeWorkspaceFingerprint as Tr, resolveLocalController as Tt, buildDaemonServiceDependencyDetails as U, clearSelectedOpenMeldProfileId as Ua, assertDaemonMaintenanceInstallationOwnership as Ui, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as Un, CONTROLLED_SHUTDOWN_SOCKET_CLOSE_TIMEOUT_MS as Uo, createAgentControllerInterfaceDisplayRows as Ur, bindProject as Ut, clearDaemonStartFailureState as V, alignSelectedOpenMeldProfileStorage as Va, cleanupLegacySharedDaemonServiceState as Vi, sortAgentRegistrations as Vn, CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS as Vo, buildInformationProtectionPromptPlan as Vr, ProjectBindingOperationError as Vt, buildDaemonServiceDependencyMeaning as W, getSelectedOpenMeldProfileId as Wa, extractDaemonCommandEntryPath as Wi, resolveBuiltinAgentControllerDefinition as Wn, DAEMON_RUNTIME_CONTRACT_EPOCH as Wo, createAgentExecutionStatusDisplayRows as Wr, isProjectBound as Wt, formatAgentReplyReadinessLabel as X, createAuthenticationError as Xa, resolveDaemonBundleEntryPathFromState as Xi, normalizeDispatchThreadAction as Xn, MAX_RECONNECT_DELAY_MS as Xo, parseAgentControllerRef as Xr, removeProjectConnection as Xt, resolveCurrentReplyReadinessSnapshot as Y, buildHumanAuthenticationCard as Ya, resolveAlignedDaemonActiveBundleEntryPath as Yi, resolveLocalRegistryAgentIdFromAgentControllerRef as Yn, HEARTBEAT_RESPONSE_TIMEOUT_MS as Yo, listAgentControllerPermissionModeOptions as Yr, removeMissingProjectConnections as Yt, formatDeviceReplyReadinessLabel as Z, extractAuthenticationPromptAction as Za, emitDaemonLifecycleEvent as Zi, syncRuntimeEventToInflightTaskControlRegistry as Zn, PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS as Zo, peopleComputerContainsDevice as Zr, resolveProjectBindingForPath as Zt, isDaemonInventoryRunningAndStartReady as _, package_default as _a, resolveCodexTimeoutMs as _i, manageAgentRegistrationInstallation as _n, readVersionState as _o, resolveAdaptiveHeartbeatIntervalMs as _r, resolveUserFacingCliEntryCommand as _s, resolveLocalServiceDemand as _t, resolveOpenMeldToolsMaintenanceProjection as a, buildInstallSelfJsonPayload as aa, resolveNativeAgentControllerPermissionModeForController as ai, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as an, resolveVersionChangeDirection as ao, createPendingAgentInteractionRegistry as ar, readDaemonServiceContract as as, resolveOpenClawDiagnosticsGuidance as at, waitForSystemServiceStartup as b, buildOnboardingPlan as ba, verifyCodexAppServerThread as bi, reconcileNewRunnableBuiltinAgentsForSetup as bn, resolveServiceUpdateUrgency as bo, resolveDispatchContinuityObservation as br, resolveBuiltinAgentControllerBrand as bs, loadDaemonRouteCatalog as bt, isCliUpdateCheckApplicable as c, readPendingDaemonServiceUpdate as ca, createLocalAdapterContainer as ci, emitReconcileCompletedEvidence as cn, DAEMON_SERVICE_REPAIR_ANOMALIES as co, buildLocalServiceDiagnosticsPayload as cr, resolveAuthBaseUrl as cs, resolveGatewayChainRepairGuidance as ct, scheduleDaemonServiceUpdate as d, toStartBackgroundHelperExecutionCompatibility as da, forkOpenCodeServerSession as di, resolveAgentProfilePrimaryAgentControllerReport as dn, classifyDaemonServiceWakeability as do, ADAPTIVE_HEARTBEAT_JITTER_RATIO as dr, formatOpenMeldCliCommands as ds, prepareProviderRuntime as dt, readLatestDaemonLifecycleOriginEvent as ea, renderWorkingLanguagePrompt as ei, unbindProject as en, resolveAuthenticationGuidanceFromMessage as eo, isDaemonReconcileInProgressError as er, RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS as es, mapAgentReplyReadinessToLegacyAutoReply as et, DaemonServiceLifecycleDrainTimeoutError as f, ensureDaemonRuntimeContractState as fa, resolveInstalledOpenCodeLaunchCandidates as fi, addAgentCustomTarget as fn, buildNextVersionState as fo, MAX_HEARTBEAT_INTERVAL_MS as fr, formatOpenMeldCliLine as fs, buildOpenClawSpaceSessionKey as ft, uninstallDaemonServiceUpdateWorker as g, OPENMELD_VERSION as ga, projectCodexUsageLimits as gi, listAgentTargetStates as gn, fetchLatestPackageInfo as go, pruneStaleLeases as gr, resolveSetupFollowUpCliEntryCommand as gs, writeDaemonRouteCatalogCache as gt, prepareDaemonServiceUpdateWorkerCarrier as h, resolveCurrentDaemonExpectedVersion as ha, resolveInstalledGrokBuildLaunchCandidates as hi, listAgentRegistrations as hn, fetchLatestCliBinaryRelease as ho, applyIntervalJitterMs as hr, formatProfileAwareOpenMeldCliCommands as hs, readDaemonRouteCatalogCache as ht, readOpenMeldToolsMaintenancePolicy as i, runWithDaemonLifecycleCommandJournal as ia, resolveEvidenceSyncHealth as ii, withAgentActivityLocalStateLock as in, isVersionDowngrade as io, normalizeDispatchPostMessageAction as ir, isDaemonServiceContractIdentityReusable as is, resolveReplyReadinessGuidanceSummaryCopy as it, resolveServiceReadinessFromServiceStatus as j, createOpenMeldAgentProfile as ja, resolveDaemonStopStrategy as ji, resolveRegistryRuntimeAdapterCapabilitySnapshot as jn, emitRunLine as jo, resolveConversationExecutionStateByLookupKey as jr, ensureOpenMeldManagedProfileWorkspace as jt, resolveDaemonStatusAuthenticationAttention as k, requireOpenMeldProfile as ka, hasActiveDaemonOwners as ki, listBuiltinAgentsRegistryEntries as kn, asRecord as ko, loadLedgerState as kr, resolveCurrentEffectiveProfileWorkingFolderRuntime as kt, readOpenMeldToolsUpdateContextFromEnv as l, resolveDaemonServiceUpdateOperation as la, createLocalAdapterEntries as li, emitReconcileStartedEvidence as ln, DAEMON_SERVICE_WAKEABILITY_ADVISORY_ANOMALIES as lo, createLocalExecutionSlots as lr, formatInlineOpenMeldCliCommands as ls, resolveGatewayChainRetryGuidance as lt, ensureDaemonServiceMaintenanceInstalled as m, DaemonServiceRunError as ma, probeGrokBuildAcpInterface as mi, listAgentCustomTargets as mn, ensureVersionStateReady as mo, applyAcceptedLeases as mr, formatProfileAwareOpenMeldCliCommand as ms, slugifyOpenClawNamePart as mt, readLastOpenMeldToolsUpdateAttempt as n, resolveRecentDaemonSignalStopCause as na, resolveAgentExecutionStatus as ni, resolveLocalProjectConnectionForPath as nn, buildDaemonServiceTargetSpec as no, createSerialAgentInteractionCallback as nr, RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS as ns, formatSpaceMemberCommandRecoveryCopy as nt, writeOpenMeldToolsMaintenancePolicy as o, performManagedInstall as oa, resolveSelectableCandidates as oi, syncDeviceRuntimeStateProjection as on, DAEMON_SERVICE_AUTO_HEAL_ANOMALIES as oo, mergeOpenClawGatewayVisibility as or, upsertDaemonServiceContract as os, classifyGatewayChainFailure as ot, runDaemonServiceLifecycle as p, readDaemonRuntimeContractRepairReport as pa, GrokBuildAcpTransportError as pi, createRegistrationFromCatalogTarget as pn, compareSemver as po, MIN_HEARTBEAT_INTERVAL_MS as pr, formatOpenMeldCliTextBlock as ps, normalizeOpenClawSpaceIdPrefix as pt, buildDaemonServiceDependencyTitle as q, buildAuthenticationStatusLabel as qa, prepareDaemonServiceBundle as qi, isNpmGlobalCommandPath as qn, DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS as qo, getAgentControllerPermissionModeFieldLabel as qr, migrateProjectBindingStore as qt, readPendingOpenMeldToolsUpdateAttempt as r, runDaemonServiceManagerAction as ra, resolveAgentProfileEditCapabilities as ri, withAgentActivityDeliveryLock as rn, resolveDaemonServiceAlignmentDecision as ro, buildDispatchReplyContextSummary as rr, clearDaemonServiceContract as rs, resolveReplyReadinessAvailabilityReasonCopy as rt, assessCliUpdate as s, readLastDaemonServiceUpdate as sa, resolveCatalogSyncSkippedProfilesLogState as si, emitDriftDetectedEvidence as sn, DAEMON_SERVICE_FULL_ALIGNMENT_ANOMALIES as so, createLocalTaskInterruptSender as sr, resolveOpenMeldEnvironmentTarget as ss, resolveGatewayChainReadiness as st, createOpenMeldToolsUpdateCoordinator as t, readRecentDaemonLifecycleEvents as ta, resolveAgentControllerPermissionModeForController as ti, canonicalizeLocalProjectPath as tn, resolveAuthenticationReasonFromState as to, resolveRouteRegistrationReconcileDecision as tr, RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS as ts, REPLY_READINESS_COPY as tt, runPendingDaemonServiceUpdate as u, resolveDaemonRuntimeContractCompatibility as ua, parseOpenCodeGoUsageResponse as ui, createPrimaryBindingReadSession as un, classifyDaemonServiceRunStartability as uo, createInflightTaskControlRegistry as ur, formatOpenMeldCliCommand as us, resolveOpenClawLocalDiagnosticsValue as ut, isSystemServiceStartupTimeoutError as v, PREPARE_SESSION_RECONNECT_GRACE_MS as va, resolveInstalledCodexLaunchCandidates as vi, readAgentRuntimeConfigHealth as vn, writeVersionState as vo, resolveCatalogSyncIntervalMs as vr, cliBinaryDeltaPatchSchema as vs, createMutableRouteCatalogState as vt, captureDaemonServiceEvidence as w, resolveViewProfileKey as wa, buildCliLaunchInvocation as wi, updateAgentCustomTarget as wn, readCurrentLocalDeviceId as wo, runRuntimeTask as wr, readLocalEnabledControllers as wt, writeDaemonServiceContract as x, getSetupFlowCopy as xa, resolveInstalledClaudeCodeLaunchCandidates as xi, removeAgentCustomTarget as xn, assessServerRequiredVersion as xo, resolveCompatibleAgentContextMatch as xr, summarizeSkippedDaemonProfiles as xt, resolveSystemServiceStartupWaitMs as y, buildDaemonRouteObservationPresentation as ya, forkCodexAppServerThread as yi, reconcileNewRunnableBuiltinAgentRegistrations as yn, hasIndependentMaintenanceRegistration as yo, resolveDispatchQueueLogMeta as yr, compareAgentControllerRefsForDisplay as ys, createRouteCatalogFromMutableState as yt, buildDaemonServiceFreshnessPromptLines as z, assertAdditionalHumanProfileCreationEnabled as za, resolveDaemonServiceManagerForRuntimeState as zi, normalizeAgentIds as zn, CATALOG_SYNC_RETRY_INTERVAL_MS as zo, areAgentControllerInterfaceAccountsSame as zr, validateCustomProfileWorkspacePath as zt };
|
|
40447
40542
|
|
|
40448
|
-
//# sourceMappingURL=openmeld-tools-update-coordinator-
|
|
40543
|
+
//# sourceMappingURL=openmeld-tools-update-coordinator-m83r0NWy.js.map
|