openmeld 0.3.97 → 0.3.98

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.
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { A as toSpaceCursorUrl, At as openMeldManagedBinaryPath, B as toSpaceUpdatesUrl, C as updateConfiguredSkillsConfig, Ct as deviceOpenClawProfileWorkspaceDir, Dt as normalizeOpenMeldProfileId, E as toDaemonRouteObservationUrl, Et as normalizeAccountKey, F as toSpaceMembersUrl, G as isOpenMeldOrphanedLockError, Gt as runtimeLogsDir, H as acquireLock, Ht as resolveOpenMeldPresetOwnedPathInput, I as toSpaceMetaUrl, Jt as systemDir, Kt as skillsDir, L as toSpacePasswordUrl, Mt as openMeldManagedVersionDir, Nt as openMeldRootDir, Ot as openMeldBackupsDir, P as toSpaceLeaveUrl, Pt as openMeldVersionsDir, Qt as runtimeAgentControllerLaunchContractSchema, R as toSpaceRemoveMembersUrl, Rt as resolveDefaultOpenMeldHomeDirname, St as deviceOpenClawProfileDir, T as normalizeBaseUrl, Tt as legacyAccountProfileSpacesDir, Ut as resolveOpenMeldRootDir, V as toSpaceWsUrl, Vt as resolveOpenMeldEnvPreset, W as isOpenMeldLockError, Wt as runtimeDir, X as resolveOpenMeldOrphanedLockIssue, Yt as formatLocalMachineIssueMessage, Z as runWithHeldLock, Zt as runtimeAgentControllerConversationIdMappingSpecSchema, _ as getRuntimeConfigReadHealth, _t as accountProfileSpaceCacheDir, a as resolveBaseUrl, an as resolveBuiltinAgentControllerConversationKind, at as writeCliContextState, b as setConfiguredSkillsConfig, bt as accountsDir, c as resolveExplicitGatewayUrlOrThrow, d as createDefaultRuntimeAgentControllerSettings, dn as canonicalizeBuiltinAgentControllerRef, dt as createBackgroundExecutionBlockedIssue, en as runtimeStreamingModeSchema, f as getConfiguredDaemonDispatchLimits, fn as normalizeBuiltinAgentControllerId, g as getConfiguredViewCustomization, gt as accountProfileLocalMetaPath, h as getConfiguredSkillsConfig, ht as OPENMELD_HOME_ENV_KEY, i as normalizeGatewayBaseUrlOrNull, in as conversationPolicySchema, it as resolveCliContextId, j as toSpaceDeleteUrl, jt as openMeldManagedVersionBinaryPath, k as toSpaceCreateUrl, kt as openMeldBinDir, l as DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE, ln as buildAgentControllerRoutingKey, lt as assessLocalMachineFailure, mn as parseAgentControllerRef$1, nt as readCliContextState, o as resolveBaseUrlOrNull, on as HOSTED_CENTER_AGENT_CONTROLLER_REF, p as getConfiguredDeviceRuntimeState, pn as normalizeKnownBuiltinAgentControllerId, r as normalizeGatewayBaseUrl, rn as buildAgentControllerConversationRef, rt as resolveCliContext, s as resolveDefaultGatewayBaseUrl, sn as HOSTED_CENTER_AGENT_CONTROLLER_REF_ID, st as resolveOpenMeldLaneDescriptor, tn as runtimeTransportModeSchema, tt as listCliContextStates, un as canonicalizeAgentControllerRef, v as resolveRuntimeSkillsCustomTargetId, vt as accountProfileViewPath, wt as isPublishedOpenMeldHome, x as updateConfiguredDeviceRuntimeState, xt as deviceOpenClawProfileBootstrapPath, yt as accountProfileWorkspacePath, zt as resolveExplicitOpenMeldEnvPreset } from "./base-url-Cv9x5Es9.js";
4
- import { A as MAX_TEXT_LENGTH, At as createCenterAgentRoutineResponseSchema, B as sleep, C as createSpaceApi, D as toStructuredApiClientFailure, Dt as organizationComputersResponseSchema, E as resolveProfileSpaceHistoryGatewayHost, Et as profileErrorResponseSchema, F as OPENMELD_HEADER_PROFILE_ID, Ft as resumeCenterAgentRoutineResponseSchema, Gt as localProjectControlDaemonFrameSchema, H as getSpaceUpdatesResponseSchema, It as updateCenterAgentRoutineResponseSchema, Jt as postSpaceMembersResponseSchema, Kt as localProjectControlDiscoverProjectsResponseSchema, L as OPENMELD_HEADER_REQUEST_ID, M as parseIncoming$1, Mt as listCenterAgentRoutineRunsResponseSchema, N as parseServerErrorFrame$1, Nt as listCenterAgentRoutinesResponseSchema, O as DAEMON_STREAM_KEEPALIVE_PING, Ot as submitFeedbackIssueRequestSchema, P as resolveCustomMentionAliasOverride, Pt as pauseCenterAgentRoutineResponseSchema, Q as submitAgentControllerTaskLifecycleEventItemSchema, Rt as AGENT_ACTIVITY_PRESENCE_TTL_MAX_MS, S as createRuntimeReportingApi, St as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_MESSAGE, T as resolveAccountSpaceIndexGatewayHost, Tt as profileCapabilitiesResponseSchema, U as SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS, Ut as agentActivitySnapshotResponseSchema, V as toErrorMessage$41, Wt as localProjectControlConnectionSchema, Xt as spaceMemberDirectoryEntrySchema, Yt as removeSpaceMembersResponseSchema, Zt as spaceMemberDirectorySchema, _n as agentControllerPermissionModeSchema, _t as organizationSkillReleaseSummarySchema, a as buildSpaceAttachmentDownloadPath, an as createProjectResponseSchema, at as COMPUTER_FILE_ACCESS_RUNTIME_CAPABILITY, bt as organizationDirectoryResponseSchema, c as createAgentProfileBindingApi, cn as updateProjectResponseSchema, ct as computerFileAccessPolicyInputSchema, d as createCurrentDeviceApi, dt as organizationSpaceDirectoryWithMemberCountsResponseSchema, ft as spaceCreatorSchema, g as createOrganizationApi, h as createOpenMeldApiClient, ht as listOrganizationSkillsResponseSchema, i as buildProfileSpaceHistoryUpsertPath, in as archiveProjectResponseSchema, it as gatewayErrorEnvelopeSchema, j as parseEnvelope$1, jt as deleteCenterAgentRoutineResponseSchema, kt as submitFeedbackIssueResponseSchema, ln as centerAgentToolSpeakerSchema, lt as computerFileAccessPolicySchema, m as createLocalRuntimeExpectedRoutesApi, mt as getOrganizationSkillResponseSchema, n as OpenMeldApiClientInvalidResponseError, o as createAccountSpaceIndexApi, on as listProjectsResponseSchema, ot as OPENMELD_RUNTIME_CAPABILITIES_HEADER, p as createFetchTransport, pt as spaceMetaSchema, qt as leaveSpaceResponseSchema, r as buildProfileSpaceHistoryStatusPath, rn as observedLocalAgentSessionSchema, s as createAgentActivityApi, sn as projectSchema, st as computerFileAccessDaemonFrameSchema, t as OpenMeldApiClientHttpError, tn as agentActivitySessionInventoryResponseSchema, un as openCodePermissionConfigSchema, ut as modelCatalogSchema, vn as agentControllerCollaborationModeSchema, vt as organizationSkillSummarySchema, wt as authProfileManagedRoleSchema, xt as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_CODE, y as createProfileSpaceHistoryApi, yn as toLegacySpaceAddressingWireValue, z as toErrorMessage$42, zt as agentActivityEventSchema } from "./dist-BH4D3j09.js";
5
- import { $t as conversationExecutionStateSchema, A as runtimeTransportResumeControllerConversationFramePayloadSchema, An as agentInteractionRequestSchema, Ar as resolvePublicAgentAvailabilityCopy, B as openMeldSpaceEgressActionSchema, C as runtimeTransportLocalAgentControlRefreshCatalogFramePayloadSchema, D as runtimeTransportRegisterSessionRequestSchema, Dr as MAX_TEXT_LENGTH$1, E as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, Er as trimmedStringFromUnknown, Fn as formatLocalSetupActionDescription, G as localFolderPickerHelperResultSchema, H as OPENMELD_LOCAL_FOLDER_PICKER_CAPABILITY_HEADER, Hn as localServiceComponentUpdateProjectionSchema, Ht as spaceFileNameSchema, I as openMeldDaemonTaskResultEnvelopeWriteSchema, In as formatLocalSetupActionLabel, Ir as resolveCommandAgentWorkActivity, Jt as openMeldDaemonControlPlaneRequestSchema, Kn as parseOptionalClientMessageId, L as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, Ln as installedLocalComponentsSnapshotSchema, M as runtimeTransportRouteCatalogChangedFramePayloadSchema, Mr as shouldPreferMappedPublicAgentFailureReason, Mt as SPACE_FILE_MAX_SIZE_BYTES, Nn as formatLocalComponentsSummaryDescription, O as runtimeTransportRegisterSessionResponseSchema, On as AGENT_INTERACTION_DEFAULT_TIMEOUT_MS, Or as resolveDetailedPublicAgentFailureReason$1, P as runtimeTransportSubmitTaskResultRequestSchema, Pn as formatLocalComponentsSummaryLabel, Qt as providerDispatchRuntimeContextSchema, R as openMeldDaemonTaskResultPayloadSchema, Rn as localCliComponentUpdateProjectionSchema, Rt as resolveSpaceFileMimeType, S as runtimeTransportLocalAgentControlManageInstallationFramePayloadSchema, T as runtimeTransportLocalAgentControlSetProfileWorkspaceFramePayloadSchema, U as localFolderPickerDaemonFrameSchema, V as LOCAL_FOLDER_PICKER_RUNTIME_CAPABILITY, W as localFolderPickerHelperProtocolResultSchema, Xn as runtimeCoordinatorExecutionTokenEnvelopeSchema, Yt as openMeldDaemonControlPlaneResponseSchema, Zn as runtimeTransportDeliveryExecutionIdentitySchema, Zt as skippedDaemonProfileSchema, _ as runtimeTransportHeartbeatRequestSchema, _n as getSpaceMessageAddressingRelationSupportForTargetKind, _r as openMeldRuntimeProfileIdSchema, a as runtimeTransportCapabilitiesSchema, b as runtimeTransportLocalAgentControlForkSessionFramePayloadSchema, bn as resolveMessageEnvelopeTargetField, c as runtimeTransportDispatchInteractionRequestSchema, ct as CONVERSATION_CONTINUITY_WARNING_PURPOSE, d as runtimeTransportDispatchPreviewEndRequestSchema, er as normalizeSpacePasswordText, f as runtimeTransportDispatchPreviewRequestSchema, ft as SPACE_MEMBER_JOIN_NOTICE_PURPOSE, g as runtimeTransportForkAgentSessionResultSchema, gn as formatCanonicalMentionLiteral, gr as normalizeOptionalWorkingDirectory, gt as sanitizeSignalTextPreview, h as runtimeTransportErrorCodeSchema, hn as collectCanonicalMentionTextFragments, hr as agentProfileIdSchema, i as localWakeRouteReportSchema, j as runtimeTransportResumeControllerConversationResultFramePayloadSchema, jn as agentInteractionResolutionSchema, jr as resolvePublicAgentFailureRecovery, k as runtimeTransportRejectedProfileRegistrationSchema, kr as resolveMappedPublicAgentFailureReason, l as runtimeTransportDispatchInteractionResponseFramePayloadSchema, m as runtimeTransportDispatchToolActivityRequestSchema, mn as MESSAGE_MENTION_TYPE_VALUES, mr as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, mt as SPACE_MENTION_REJECT_NOTICE_PURPOSE, n as daemonExecutionCompatibilitySchema, nr as resolveSingleSpaceMentionLabels, o as runtimeTransportDeliverDispatchRequestSchema, p as runtimeTransportDispatchRuntimeEvidenceRequestSchema, pr as openMeldRequestContextSchema, pt as SPACE_MEMBER_REMOVE_NOTICE_PURPOSE, r as daemonStreamFrameSchema, rr as resolveSpaceMentionLabels, s as runtimeTransportDispatchInteractionDeliveredRequestSchema, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, u as runtimeTransportDispatchLifecycleRequestSchema, v as runtimeTransportHeartbeatResponseSchema, w as runtimeTransportLocalAgentControlSetEnabledFramePayloadSchema, x as runtimeTransportLocalAgentControlInterruptFramePayloadSchema, xr as profileWorkspaceModeSchema, y as runtimeTransportLocalAgentControlCancelFramePayloadSchema, yn as normalizeMessageEnvelope } from "./runtime-transport-J50KvRbm.js";
4
+ import { A as MAX_TEXT_LENGTH, At as createCenterAgentRoutineResponseSchema, B as sleep, C as createSpaceApi, D as toStructuredApiClientFailure, Dt as organizationComputersResponseSchema, E as resolveProfileSpaceHistoryGatewayHost, Et as profileErrorResponseSchema, F as OPENMELD_HEADER_PROFILE_ID, Ft as resumeCenterAgentRoutineResponseSchema, Gt as localProjectControlDaemonFrameSchema, H as getSpaceUpdatesResponseSchema, It as updateCenterAgentRoutineResponseSchema, Jt as postSpaceMembersResponseSchema, Kt as localProjectControlDiscoverProjectsResponseSchema, L as OPENMELD_HEADER_REQUEST_ID, M as parseIncoming$1, Mt as listCenterAgentRoutineRunsResponseSchema, N as parseServerErrorFrame$1, Nt as listCenterAgentRoutinesResponseSchema, O as DAEMON_STREAM_KEEPALIVE_PING, Ot as submitFeedbackIssueRequestSchema, P as resolveCustomMentionAliasOverride, Pt as pauseCenterAgentRoutineResponseSchema, Q as submitAgentControllerTaskLifecycleEventItemSchema, Rt as AGENT_ACTIVITY_PRESENCE_TTL_MAX_MS, S as createRuntimeReportingApi, St as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_MESSAGE, T as resolveAccountSpaceIndexGatewayHost, Tt as profileCapabilitiesResponseSchema, U as SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS, Ut as agentActivitySnapshotResponseSchema, V as toErrorMessage$42, Wt as localProjectControlConnectionSchema, Xt as spaceMemberDirectoryEntrySchema, Yt as removeSpaceMembersResponseSchema, Zt as spaceMemberDirectorySchema, _n as agentControllerPermissionModeSchema, _t as organizationSkillReleaseSummarySchema, a as buildSpaceAttachmentDownloadPath, an as createProjectResponseSchema, at as COMPUTER_FILE_ACCESS_RUNTIME_CAPABILITY, bt as organizationDirectoryResponseSchema, c as createAgentProfileBindingApi, cn as updateProjectResponseSchema, ct as computerFileAccessPolicyInputSchema, d as createCurrentDeviceApi, dt as organizationSpaceDirectoryWithMemberCountsResponseSchema, ft as spaceCreatorSchema, g as createOrganizationApi, h as createOpenMeldApiClient, ht as listOrganizationSkillsResponseSchema, i as buildProfileSpaceHistoryUpsertPath, in as archiveProjectResponseSchema, it as gatewayErrorEnvelopeSchema, j as parseEnvelope$1, jt as deleteCenterAgentRoutineResponseSchema, kt as submitFeedbackIssueResponseSchema, ln as centerAgentToolSpeakerSchema, lt as computerFileAccessPolicySchema, m as createLocalRuntimeExpectedRoutesApi, mt as getOrganizationSkillResponseSchema, n as OpenMeldApiClientInvalidResponseError, o as createAccountSpaceIndexApi, on as listProjectsResponseSchema, ot as OPENMELD_RUNTIME_CAPABILITIES_HEADER, p as createFetchTransport, pt as spaceMetaSchema, qt as leaveSpaceResponseSchema, r as buildProfileSpaceHistoryStatusPath, rn as observedLocalAgentSessionSchema, s as createAgentActivityApi, sn as projectSchema, st as computerFileAccessDaemonFrameSchema, t as OpenMeldApiClientHttpError, tn as agentActivitySessionInventoryResponseSchema, un as openCodePermissionConfigSchema, ut as modelCatalogSchema, vn as agentControllerCollaborationModeSchema, vt as organizationSkillSummarySchema, wt as authProfileManagedRoleSchema, xt as ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_CODE, y as createProfileSpaceHistoryApi, yn as toLegacySpaceAddressingWireValue, z as toErrorMessage$43, zt as agentActivityEventSchema } from "./dist-BKlTzgZt.js";
5
+ import { $t as conversationExecutionStateSchema, A as runtimeTransportResumeControllerConversationFramePayloadSchema, An as agentInteractionRequestSchema, Ar as resolvePublicAgentAvailabilityCopy, B as openMeldSpaceEgressActionSchema, C as runtimeTransportLocalAgentControlRefreshCatalogFramePayloadSchema, D as runtimeTransportRegisterSessionRequestSchema, Dr as MAX_TEXT_LENGTH$1, E as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, Er as trimmedStringFromUnknown, Fn as formatLocalSetupActionDescription, G as localFolderPickerHelperResultSchema, H as OPENMELD_LOCAL_FOLDER_PICKER_CAPABILITY_HEADER, Hn as localServiceComponentUpdateProjectionSchema, Ht as spaceFileNameSchema, I as openMeldDaemonTaskResultEnvelopeWriteSchema, In as formatLocalSetupActionLabel, Ir as resolveCommandAgentWorkActivity, Jt as openMeldDaemonControlPlaneRequestSchema, Kn as parseOptionalClientMessageId, L as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, Ln as installedLocalComponentsSnapshotSchema, M as runtimeTransportRouteCatalogChangedFramePayloadSchema, Mr as shouldPreferMappedPublicAgentFailureReason, Mt as SPACE_FILE_MAX_SIZE_BYTES, Nn as formatLocalComponentsSummaryDescription, O as runtimeTransportRegisterSessionResponseSchema, On as AGENT_INTERACTION_DEFAULT_TIMEOUT_MS, Or as resolveDetailedPublicAgentFailureReason$1, P as runtimeTransportSubmitTaskResultRequestSchema, Pn as formatLocalComponentsSummaryLabel, Qt as providerDispatchRuntimeContextSchema, R as openMeldDaemonTaskResultPayloadSchema, Rn as localCliComponentUpdateProjectionSchema, Rt as resolveSpaceFileMimeType, S as runtimeTransportLocalAgentControlManageInstallationFramePayloadSchema, T as runtimeTransportLocalAgentControlSetProfileWorkspaceFramePayloadSchema, U as localFolderPickerDaemonFrameSchema, V as LOCAL_FOLDER_PICKER_RUNTIME_CAPABILITY, W as localFolderPickerHelperProtocolResultSchema, Xn as runtimeCoordinatorExecutionTokenEnvelopeSchema, Yt as openMeldDaemonControlPlaneResponseSchema, Zn as runtimeTransportDeliveryExecutionIdentitySchema, Zt as skippedDaemonProfileSchema, _ as runtimeTransportHeartbeatRequestSchema, _n as getSpaceMessageAddressingRelationSupportForTargetKind, _r as openMeldRuntimeProfileIdSchema, a as runtimeTransportCapabilitiesSchema, b as runtimeTransportLocalAgentControlForkSessionFramePayloadSchema, bn as resolveMessageEnvelopeTargetField, c as runtimeTransportDispatchInteractionRequestSchema, ct as CONVERSATION_CONTINUITY_WARNING_PURPOSE, d as runtimeTransportDispatchPreviewEndRequestSchema, er as normalizeSpacePasswordText, f as runtimeTransportDispatchPreviewRequestSchema, ft as SPACE_MEMBER_JOIN_NOTICE_PURPOSE, g as runtimeTransportForkAgentSessionResultSchema, gn as formatCanonicalMentionLiteral, gr as normalizeOptionalWorkingDirectory, gt as sanitizeSignalTextPreview, h as runtimeTransportErrorCodeSchema, hn as collectCanonicalMentionTextFragments, hr as agentProfileIdSchema, i as localWakeRouteReportSchema, j as runtimeTransportResumeControllerConversationResultFramePayloadSchema, jn as agentInteractionResolutionSchema, jr as resolvePublicAgentFailureRecovery, k as runtimeTransportRejectedProfileRegistrationSchema, kr as resolveMappedPublicAgentFailureReason, l as runtimeTransportDispatchInteractionResponseFramePayloadSchema, m as runtimeTransportDispatchToolActivityRequestSchema, mn as MESSAGE_MENTION_TYPE_VALUES, mr as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, mt as SPACE_MENTION_REJECT_NOTICE_PURPOSE, n as daemonExecutionCompatibilitySchema, nr as resolveSingleSpaceMentionLabels, o as runtimeTransportDeliverDispatchRequestSchema, p as runtimeTransportDispatchRuntimeEvidenceRequestSchema, pr as openMeldRequestContextSchema, pt as SPACE_MEMBER_REMOVE_NOTICE_PURPOSE, r as daemonStreamFrameSchema, rr as resolveSpaceMentionLabels, s as runtimeTransportDispatchInteractionDeliveredRequestSchema, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, u as runtimeTransportDispatchLifecycleRequestSchema, v as runtimeTransportHeartbeatResponseSchema, w as runtimeTransportLocalAgentControlSetEnabledFramePayloadSchema, x as runtimeTransportLocalAgentControlInterruptFramePayloadSchema, xr as profileWorkspaceModeSchema, y as runtimeTransportLocalAgentControlCancelFramePayloadSchema, yn as normalizeMessageEnvelope } from "./runtime-transport-Ch3hTK9F.js";
6
6
  import { r as daemonServiceLaneSchema, t as daemonServiceContractSchema } from "./service-contract-DZWQdPz5.js";
7
7
  import { A as isDaemonServiceRuntimeHeartbeatStale, B as setDaemonServiceRuntimeState, C as daemonServiceStableExecutableWrapperPath, D as getDaemonRuntimeStatus, E as ensureDaemonControlPlaneToken, F as releaseDaemonServiceLifecycleLock, G as withDaemonServiceStopLock, H as withDaemonServiceReconcileLock, I as resolveDaemonControlPlaneEndpoint, K as readDaemonLocalStateFile, L as resolveDaemonServiceRuntimeMetadata, M as readDaemonServiceLifecycleLockMeta, N as readDaemonServiceLifecycleLockMetaWithCleanup, O as getDaemonStatus, P as readDaemonServiceRuntimeSnapshot, R as restoreDaemonInstallStateSnapshot, S as daemonServiceRepairJournalPath, T as daemonStatePath, U as withDaemonServiceRegistrationMutationLock, V as uninstallDaemon, W as withDaemonServiceRunLock, _ as daemonRuntimeServiceManagerPath, a as DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV, b as daemonServiceLegacyExecutableWrapperPath, c as DAEMON_SERVICE_RUNTIME_STATE_SCHEMA, d as clearDaemonServiceRuntimeState, f as daemonDispatchJournalPath, g as daemonRuntimeRootPath, h as daemonRuntimeDataPath, i as DAEMON_SERVICE_RUNTIME_AUTO_START_ENV, j as readDaemonControlPlaneToken, k as installDaemon, l as DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV, m as daemonRuntimeBundlesPath, n as writeDaemonRuntimeLease, o as DAEMON_SERVICE_RUNTIME_DETACHED_ENV, p as daemonLifecycleJournalPath, q as writeDaemonLocalStateFile, r as DAEMON_HEARTBEAT_STALE_MS, s as DAEMON_SERVICE_RUNTIME_MODE_ENV, t as readDaemonRuntimeLease, u as acquireDaemonServiceLifecycleLock, v as daemonRuntimeStateRootPath, w as daemonServiceStableLauncherPath, x as daemonServiceRecognizedExecutableWrapperPaths, y as daemonServiceActiveBundleStatePath, z as rotateDaemonControlPlaneTokenIfExpired } from "./daemon-runtime-lease-DiRoGxhm.js";
8
- import { A as REGISTER_RESPONSE_TIMEOUT_MS$1, C as MAX_HEARTBEAT_INTERVAL_MS$2, D as OPENCLAW_CLI_TIMEOUT_MS$1, M as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS$1, N as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS$1, O as PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS$1, P as RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS$1, S as HEARTBEAT_RESPONSE_TIMEOUT_MS$1, T as MIN_HEARTBEAT_INTERVAL_MS$2, _ as DAEMON_STREAM_KEEPALIVE_INTERVAL_MS$1, a as getAuthSessionState, b as DEFAULT_HEARTBEAT_INTERVAL_MS$1, c as setAuthSession, d as isBinaryDistribution, f as resolveOpenMeldDistribution, g as DAEMON_STREAM_CONNECT_TIMEOUT_MS$1, h as DAEMON_RUNTIME_CONTRACT_EPOCH$1, k as PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS$1, m as CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS$1, n as clearAuthSession, p as CATALOG_SYNC_RETRY_INTERVAL_MS$1, r as getAuthSession, v as DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS$1, y as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1 } from "./auth-session-BcT7IOfJ.js";
9
- import { a as buildOpenMeldProfileIdentityRequestHeadersWithAuth, c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, f as buildOpenMeldRequestContextFromProfileIdentity, i as resolveSpaceRequestTimeoutMsForDiagnostics, l as canAttachAuthTokenToRequest, m as resolveAuthRequestCompatibility, n as createCliApiClientFoundation, o as buildOpenMeldProfileRequestHeadersWithAuth, p as deriveAuthBaseUrlFromGatewayUrl, r as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, u as resolveAuthTokenAttachment } from "./api-client-foundation-BCbhO6xe.js";
8
+ import { D as PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS$1, E as OPENCLAW_CLI_TIMEOUT_MS$1, M as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS$1, N as RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS$1, O as PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS$1, S as MAX_HEARTBEAT_INTERVAL_MS$2, _ as DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS$1, d as resolveOpenMeldDistribution, f as CATALOG_SYNC_RETRY_INTERVAL_MS$1, g as DAEMON_STREAM_KEEPALIVE_INTERVAL_MS$1, h as DAEMON_STREAM_CONNECT_TIMEOUT_MS$1, i as getAuthSessionState, j as RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS$1, k as REGISTER_RESPONSE_TIMEOUT_MS$1, m as DAEMON_RUNTIME_CONTRACT_EPOCH$1, n as clearAuthSession, p as CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS$1, s as setAuthSession, u as isBinaryDistribution, v as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, w as MIN_HEARTBEAT_INTERVAL_MS$2, x as HEARTBEAT_RESPONSE_TIMEOUT_MS$1, y as DEFAULT_HEARTBEAT_INTERVAL_MS$1 } from "./auth-session-BH5KpxlR.js";
9
+ import { a as buildOpenMeldProfileIdentityRequestHeadersWithAuth, c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, f as buildOpenMeldRequestContextFromProfileIdentity, i as resolveSpaceRequestTimeoutMsForDiagnostics, l as canAttachAuthTokenToRequest, m as resolveAuthRequestCompatibility, n as createCliApiClientFoundation, o as buildOpenMeldProfileRequestHeadersWithAuth, p as deriveAuthBaseUrlFromGatewayUrl, r as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, u as resolveAuthTokenAttachment } from "./api-client-foundation-DhBFOgEh.js";
10
10
  import { createRequire } from "node:module";
11
11
  import { homedir, tmpdir, userInfo } from "node:os";
12
12
  import { z } from "zod/v4";
@@ -34,7 +34,7 @@ import { Box, Container, Editor, Key, ProcessTerminal, TUI, Text, getEditorKeybi
34
34
  var package_default = {
35
35
  $schema: "https://www.schemastore.org/package.json",
36
36
  name: "openmeld",
37
- version: "0.3.97",
37
+ version: "0.3.98",
38
38
  openMeldReleaseDate: "2026-08-24",
39
39
  description: "OpenMeld CLI - https://openmeld.ai",
40
40
  license: "MIT",
@@ -4687,6 +4687,9 @@ function materializeCliLaunchCommand(input) {
4687
4687
  bin: input.launchContract.nodePath
4688
4688
  };
4689
4689
  }
4690
+ function resolveLaunchContractEntrypointPath(launchContract) {
4691
+ return launchContract.kind === "executable" ? launchContract.commandPath : launchContract.scriptPath;
4692
+ }
4690
4693
  function buildCliLaunchInvocation(input) {
4691
4694
  const launchCommand = materializeCliLaunchCommand({ launchContract: input.launchContract });
4692
4695
  return {
@@ -4709,7 +4712,7 @@ async function verifyLaunchContractFiles(input) {
4709
4712
  };
4710
4713
  } catch (error) {
4711
4714
  return {
4712
- errorMessage: toErrorMessage$40(error),
4715
+ errorMessage: toErrorMessage$41(error),
4713
4716
  failureKind: "completed_negative",
4714
4717
  ok: false
4715
4718
  };
@@ -4738,7 +4741,7 @@ async function verifyCliLaunchContract(input) {
4738
4741
  return fileCheck;
4739
4742
  } catch (error) {
4740
4743
  return {
4741
- errorMessage: `${input.displayName} can't start on this device: ${toErrorMessage$40(error)}`,
4744
+ errorMessage: `${input.displayName} can't start on this device: ${toErrorMessage$41(error)}`,
4742
4745
  failureKind: classifyLaunchContractVerificationFailure(error),
4743
4746
  ok: false
4744
4747
  };
@@ -4776,10 +4779,12 @@ async function resolveInstalledNodeScriptLaunchContract(input) {
4776
4779
  };
4777
4780
  }
4778
4781
  async function resolveInstalledNodeScriptLaunchCandidates(input) {
4782
+ const preferredCommandPath = input.preferredLaunchContract ? resolveLaunchContractEntrypointPath(input.preferredLaunchContract) : null;
4779
4783
  const commandPaths = await resolveInstalledCommandPathsForLaunch({
4780
4784
  additionalCommandDirectories: input.additionalCommandDirectories ?? null,
4781
4785
  commandName: input.commandName,
4782
- configuredCommand: input.configuredCommand ?? null
4786
+ configuredCommand: input.configuredCommand ?? null,
4787
+ preferredCommandPath
4783
4788
  });
4784
4789
  if (commandPaths.length === 0) return {
4785
4790
  errorMessage: `${input.displayName} is not installed on this device.`,
@@ -4800,16 +4805,18 @@ async function resolveInstalledNodeScriptLaunchCandidates(input) {
4800
4805
  }
4801
4806
  if (candidateIds.has(candidate.dedupeId)) continue;
4802
4807
  candidateIds.add(candidate.dedupeId);
4803
- candidates.push(candidate);
4808
+ candidates.push({
4809
+ ...candidate,
4810
+ preferred: preferredCommandPath !== null && normalizePathForDetection(commandPath) === normalizePathForDetection(preferredCommandPath)
4811
+ });
4804
4812
  }
4805
4813
  if (candidates.length === 0) return {
4806
4814
  errorMessage: inspectionErrors[0] ?? `${input.displayName} is installed, but OpenMeld could not inspect its launch files.`,
4807
4815
  reason: "not_launchable",
4808
4816
  ok: false
4809
4817
  };
4810
- const stableCandidates = candidates.filter((candidate) => !candidate.transientWrapper);
4811
4818
  return {
4812
- candidates: finalizeLaunchCandidateDisplayMetadata((stableCandidates.length > 0 ? stableCandidates : candidates).map((candidate) => candidate.launchCandidate)),
4819
+ candidates: finalizeLaunchCandidateDisplayMetadata((candidates.filter((candidate) => !candidate.transientWrapper).length > 0 ? candidates.filter((candidate) => !candidate.transientWrapper || candidate.preferred) : candidates).map((candidate) => candidate.launchCandidate)),
4813
4820
  ok: true
4814
4821
  };
4815
4822
  }
@@ -4850,7 +4857,7 @@ async function inspectInstalledNodeScriptLaunchCandidate(input) {
4850
4857
  };
4851
4858
  } catch (error) {
4852
4859
  return {
4853
- errorMessage: `${input.displayName} is installed, but OpenMeld could not inspect its launch files: ${toErrorMessage$40(error)}`,
4860
+ errorMessage: `${input.displayName} is installed, but OpenMeld could not inspect its launch files: ${toErrorMessage$41(error)}`,
4854
4861
  ok: false
4855
4862
  };
4856
4863
  }
@@ -4868,19 +4875,21 @@ function resolveInstalledCommandPaths(input) {
4868
4875
  return resolveExecutablePathsOnPath(input.commandName);
4869
4876
  }
4870
4877
  async function resolveInstalledCommandPathsForLaunch(input) {
4878
+ const preferredCommandPath = normalizeOptionalText$71(input.preferredCommandPath);
4879
+ const preferredCommandPaths = preferredCommandPath && isAbsolute(preferredCommandPath) ? [preferredCommandPath] : [];
4871
4880
  const configuredCommand = normalizeOptionalText$71(input.configuredCommand);
4872
4881
  if (configuredCommand) {
4873
- if (isAbsolute(configuredCommand)) return [configuredCommand];
4874
- if (configuredCommand.includes("/") || configuredCommand.includes("\\")) return [];
4875
- return await resolveExecutablePathsFromSearchSurface({
4882
+ if (isAbsolute(configuredCommand)) return mergeUniquePaths(preferredCommandPaths, [configuredCommand]);
4883
+ if (configuredCommand.includes("/") || configuredCommand.includes("\\")) return preferredCommandPaths;
4884
+ return mergeUniquePaths(preferredCommandPaths, await resolveExecutablePathsFromSearchSurface({
4876
4885
  additionalCommandDirectories: input.additionalCommandDirectories ?? null,
4877
4886
  commandName: configuredCommand
4878
- });
4887
+ }));
4879
4888
  }
4880
- return await resolveExecutablePathsFromSearchSurface({
4889
+ return mergeUniquePaths(preferredCommandPaths, await resolveExecutablePathsFromSearchSurface({
4881
4890
  additionalCommandDirectories: input.additionalCommandDirectories ?? null,
4882
4891
  commandName: input.commandName
4883
- });
4892
+ }));
4884
4893
  }
4885
4894
  function resolveExecutableOnPath(commandName) {
4886
4895
  return resolveExecutablePathsOnPath(commandName)[0] ?? null;
@@ -5276,7 +5285,7 @@ function normalizePathForDetection(path) {
5276
5285
  function pathIsEqualOrDescendant(path, parentPath) {
5277
5286
  return path === parentPath || path.startsWith(`${parentPath}/`);
5278
5287
  }
5279
- function toErrorMessage$40(error) {
5288
+ function toErrorMessage$41(error) {
5280
5289
  return error instanceof Error ? error.message : String(error);
5281
5290
  }
5282
5291
  //#endregion
@@ -5554,7 +5563,7 @@ var AcpProcessSession = class {
5554
5563
  cause: error,
5555
5564
  code: "protocol.invalid",
5556
5565
  errorType: "adapter",
5557
- message: `protocol.invalid: ${this.#processLabel} ACP emitted non-JSON-RPC output (${toErrorMessage$39(error)})`
5566
+ message: `protocol.invalid: ${this.#processLabel} ACP emitted non-JSON-RPC output (${toErrorMessage$40(error)})`
5558
5567
  }));
5559
5568
  return;
5560
5569
  }
@@ -5716,7 +5725,7 @@ function normalizeOptionalText$70(value) {
5716
5725
  const normalized = String(value ?? "").trim();
5717
5726
  return normalized.length > 0 ? normalized : null;
5718
5727
  }
5719
- function toErrorMessage$39(error) {
5728
+ function toErrorMessage$40(error) {
5720
5729
  return error instanceof Error ? error.message : String(error);
5721
5730
  }
5722
5731
  //#endregion
@@ -6693,7 +6702,8 @@ async function resolveInstalledClaudeCodeLaunchCandidates(input) {
6693
6702
  const installedCandidates = await resolveInstalledNodeScriptLaunchCandidates({
6694
6703
  commandName: DEFAULT_CLAUDE_CODE_COMMAND,
6695
6704
  configuredCommand: normalizeOptionalText$66(process.env.OPENMELD_DAEMON_RUNTIME_CLAUDE_CODE_BIN),
6696
- displayName: "Claude Code"
6705
+ displayName: "Claude Code",
6706
+ preferredLaunchContract: input?.preferredLaunchContract
6697
6707
  });
6698
6708
  if (!installedCandidates.ok) return installedCandidates;
6699
6709
  const candidates = await resolveLaunchCandidatesAfterVerification({
@@ -8403,7 +8413,7 @@ async function invokeClaudeWithSingleContextHeal(input) {
8403
8413
  return new ClaudeRuntimeError({
8404
8414
  code: "context.rebuild_failed",
8405
8415
  errorType: "adapter",
8406
- message: `context.rebuild_failed: ${toErrorMessage$38(error)}`,
8416
+ message: `context.rebuild_failed: ${toErrorMessage$39(error)}`,
8407
8417
  ...providerAccessEvidence ? { providerAccessEvidence } : {},
8408
8418
  ...telemetry ? { telemetry } : {}
8409
8419
  });
@@ -8463,7 +8473,7 @@ async function invokeClaudeOnce(input) {
8463
8473
  throw new ClaudeRuntimeError({
8464
8474
  code: "upstream_unreachable",
8465
8475
  errorType: "adapter",
8466
- message: `upstream_unreachable: ${toErrorMessage$38(error)}`
8476
+ message: `upstream_unreachable: ${toErrorMessage$39(error)}`
8467
8477
  });
8468
8478
  }
8469
8479
  }
@@ -8516,7 +8526,7 @@ function getClaudeTelemetry(error) {
8516
8526
  const telemetry = error.telemetry;
8517
8527
  return telemetry && typeof telemetry === "object" ? telemetry : null;
8518
8528
  }
8519
- function toErrorMessage$38(error) {
8529
+ function toErrorMessage$39(error) {
8520
8530
  if (error instanceof Error) return error.message;
8521
8531
  return String(error);
8522
8532
  }
@@ -8656,73 +8666,6 @@ const normalizeOptionalText$60 = (value) => {
8656
8666
  return normalized.length > 0 ? normalized : null;
8657
8667
  };
8658
8668
  //#endregion
8659
- //#region ../../runtime/adapters/codex/dist/config/codex-runtime-config.js
8660
- const DEFAULT_CODEX_COMMAND = "codex";
8661
- const CODEX_APP_BUNDLE_RESOURCES_RELATIVE_PATH = join("Codex.app", "Contents", "Resources");
8662
- async function resolveInstalledCodexLaunchCandidates(input) {
8663
- const installedCandidates = await resolveInstalledNodeScriptLaunchCandidates({
8664
- additionalCommandDirectories: resolveCodexAppBundleCommandDirectories(),
8665
- commandName: DEFAULT_CODEX_COMMAND,
8666
- configuredCommand: normalizeOptionalText$59(process.env.OPENMELD_DAEMON_RUNTIME_CODEX_BIN),
8667
- displayName: "Codex"
8668
- });
8669
- if (!installedCandidates.ok) return installedCandidates;
8670
- const candidates = await resolveLaunchCandidatesAfterVerification({
8671
- candidates: installedCandidates.candidates,
8672
- verify: async (candidate) => await verifyCodexLaunchContract({
8673
- launchContract: candidate.launchContract,
8674
- timeoutMs: input?.timeoutMs
8675
- })
8676
- });
8677
- if (candidates.length === 0) return {
8678
- errorMessage: "Codex is installed, but OpenMeld can't start it on this device.",
8679
- reason: "not_launchable",
8680
- ok: false
8681
- };
8682
- return {
8683
- candidates,
8684
- ok: true
8685
- };
8686
- }
8687
- async function verifyCodexLaunchContract(input) {
8688
- return await verifyCliLaunchContract({
8689
- cwd: input.cwd ?? process.cwd(),
8690
- displayName: "Codex",
8691
- launchContract: input.launchContract,
8692
- probeArgs: ["--version"],
8693
- timeoutMs: input.timeoutMs ?? resolveCodexTimeoutMs()
8694
- });
8695
- }
8696
- function resolveCodexTimeoutMs() {
8697
- const raw = normalizeOptionalText$59(process.env.OPENMELD_DAEMON_RUNTIME_REQUEST_TIMEOUT_MS);
8698
- if (!raw) return null;
8699
- const parsed = Number.parseInt(raw, 10);
8700
- if (!Number.isFinite(parsed) || parsed <= 0) return null;
8701
- return parsed;
8702
- }
8703
- function resolveCodexAppBundleCommandDirectories() {
8704
- const home = normalizeOptionalText$59(process.env.HOME) ?? homedir();
8705
- return [join("/Applications", CODEX_APP_BUNDLE_RESOURCES_RELATIVE_PATH), join(home, "Applications", CODEX_APP_BUNDLE_RESOURCES_RELATIVE_PATH)];
8706
- }
8707
- function normalizeOptionalText$59(value) {
8708
- const normalized = String(value ?? "").trim();
8709
- return normalized.length > 0 ? normalized : null;
8710
- }
8711
- //#endregion
8712
- //#region ../../runtime/adapters/codex/dist/context/codex-context-heal.js
8713
- const CONTEXT_LOST_ERROR_PATTERNS = [
8714
- /thread.*not\s+found/i,
8715
- /session.*not\s+found/i,
8716
- /conversation.*not\s+found/i,
8717
- /unknown\s+thread/i,
8718
- /invalid\s+thread/i,
8719
- /cannot\s+resume/i,
8720
- /resume.*failed/i
8721
- ];
8722
- function isLikelyContextLostError(message) {
8723
- return CONTEXT_LOST_ERROR_PATTERNS.some((pattern) => pattern.test(message));
8724
- }
8725
- //#endregion
8726
8669
  //#region ../../runtime/adapters/codex/dist/output/codex-provider-failure.js
8727
8670
  /**
8728
8671
  * Codex provider-account failure classification shared by the CLI and
@@ -8752,7 +8695,7 @@ function isCodexAuthFailure(value) {
8752
8695
  * changes behavior.
8753
8696
  */
8754
8697
  function classifyCodexProviderAccountFailure(input) {
8755
- if (normalizeOptionalText$58(input.codexErrorInfo)?.toLowerCase() === "usagelimitexceeded") return {
8698
+ if (normalizeOptionalText$59(input.codexErrorInfo)?.toLowerCase() === "usagelimitexceeded") return {
8756
8699
  code: "quota.exceeded",
8757
8700
  errorType: "adapter"
8758
8701
  };
@@ -8771,7 +8714,7 @@ function classifyCodexProviderAccountFailure(input) {
8771
8714
  };
8772
8715
  return null;
8773
8716
  }
8774
- function normalizeOptionalText$58(value) {
8717
+ function normalizeOptionalText$59(value) {
8775
8718
  const normalized = String(value ?? "").trim();
8776
8719
  return normalized.length > 0 ? normalized : null;
8777
8720
  }
@@ -8803,7 +8746,7 @@ function extractCodexToolActivityEvent(value, fallbackObservedAtMs = Date.now())
8803
8746
  const params = toRecord$12(record.params);
8804
8747
  const item = toRecord$12(params?.item ?? record.item);
8805
8748
  const itemType = normalizeCompactName(item?.type);
8806
- const toolCallId = normalizeOptionalText$57(item?.id);
8749
+ const toolCallId = normalizeOptionalText$58(item?.id);
8807
8750
  if (!(item && toolCallId && CODEX_TOOL_ITEM_TYPES.has(itemType))) return null;
8808
8751
  const work = resolveAdapterToolWorkActivity(itemType, item);
8809
8752
  return {
@@ -8847,7 +8790,7 @@ function resolveObservedAtMs(input) {
8847
8790
  function normalizeCompactName(value) {
8848
8791
  return typeof value === "string" ? value.trim().toLowerCase() : "";
8849
8792
  }
8850
- function normalizeOptionalText$57(value) {
8793
+ function normalizeOptionalText$58(value) {
8851
8794
  const normalized = typeof value === "string" ? value.trim() : "";
8852
8795
  return normalized.length > 0 ? normalized : null;
8853
8796
  }
@@ -9095,6 +9038,7 @@ function tomlString(value) {
9095
9038
  }
9096
9039
  //#endregion
9097
9040
  //#region ../../runtime/adapters/codex/dist/transport/codex-app-server-transport.js
9041
+ const CODEX_APP_SERVER_VERSION_PATTERN = /\/([^\s]+)/u;
9098
9042
  const APP_SERVER_PROCESS_KILL_GRACE_MS = 1e3;
9099
9043
  const DEFAULT_APP_SERVER_STARTUP_TIMEOUT_MS = 15e3;
9100
9044
  var CodexAppServerTransportError = class extends Error {
@@ -9107,8 +9051,26 @@ var CodexAppServerTransportError = class extends Error {
9107
9051
  this.errorType = input.errorType;
9108
9052
  }
9109
9053
  };
9054
+ async function probeCodexAppServerAccount(input) {
9055
+ const timeoutMs = input.timeoutMs ?? DEFAULT_APP_SERVER_STARTUP_TIMEOUT_MS;
9056
+ return await withCodexAppServerSession({
9057
+ codexTimeoutMs: timeoutMs,
9058
+ codexWorkdir: tmpdir(),
9059
+ launchContract: input.launchContract,
9060
+ startupTimeoutMs: timeoutMs
9061
+ }, async (session, initialized) => {
9062
+ const response = toRecord$11(await session.request("account/read", {}));
9063
+ return {
9064
+ authStatus: resolveCodexAppServerAuthStatus({
9065
+ account: toRecord$11(response?.account),
9066
+ response
9067
+ }),
9068
+ version: parseCodexAppServerVersion(initialized)
9069
+ };
9070
+ });
9071
+ }
9110
9072
  async function invokeCodexAppServerTransport(input) {
9111
- const prompt = normalizeOptionalText$56(input.prompt);
9073
+ const prompt = normalizeOptionalText$57(input.prompt);
9112
9074
  if (!prompt) throw new CodexAppServerTransportError({
9113
9075
  code: "schema.invalid",
9114
9076
  errorType: "config",
@@ -9147,7 +9109,7 @@ async function invokeCodexAppServerTransport(input) {
9147
9109
  threadModel: threadContext.model
9148
9110
  });
9149
9111
  const executionThreadId = threadContext.threadId;
9150
- const continuityThreadId = input.executionMode === "repair" ? normalizeOptionalText$56(input.threadId) ?? executionThreadId : executionThreadId;
9112
+ const continuityThreadId = input.executionMode === "repair" ? normalizeOptionalText$57(input.threadId) ?? executionThreadId : executionThreadId;
9151
9113
  const turnPrompt = resolveCodexTurnPrompt({
9152
9114
  fallbackPrompt: prompt,
9153
9115
  instructionPrompt: input.instructionPrompt,
@@ -9191,7 +9153,7 @@ async function invokeCodexAppServerTransport(input) {
9191
9153
  errorType: "adapter",
9192
9154
  message: interactionFailure.message
9193
9155
  });
9194
- const output = normalizeOptionalText$56(readAgentMessageOutput(completedTurn) ?? session.readCollectedAgentMessageDeltaText());
9156
+ const output = normalizeOptionalText$57(readAgentMessageOutput(completedTurn) ?? session.readCollectedAgentMessageDeltaText());
9195
9157
  requireSuccessfulCodexTurn(completedTurn);
9196
9158
  if (output) session.markAgentOutputObserved();
9197
9159
  await emitPreviewIfRequested({
@@ -9204,7 +9166,7 @@ async function invokeCodexAppServerTransport(input) {
9204
9166
  telemetry: session.buildTelemetry({
9205
9167
  invokedAtMs,
9206
9168
  previewEmitted: input.streamingMode === "stream" && input.onPreview !== void 0,
9207
- resumedContext: normalizeOptionalText$56(input.threadId) !== null,
9169
+ resumedContext: normalizeOptionalText$57(input.threadId) !== null,
9208
9170
  streamingMode: input.streamingMode ?? "final"
9209
9171
  }),
9210
9172
  threadId: continuityThreadId
@@ -9239,7 +9201,7 @@ function requireSuccessfulCodexTurn(turn) {
9239
9201
  });
9240
9202
  }
9241
9203
  async function verifyCodexAppServerThread(input) {
9242
- const threadId = normalizeOptionalText$56(input.threadId);
9204
+ const threadId = normalizeOptionalText$57(input.threadId);
9243
9205
  if (!threadId) throw new CodexAppServerTransportError({
9244
9206
  code: "schema.invalid",
9245
9207
  errorType: "config",
@@ -9262,7 +9224,7 @@ async function verifyCodexAppServerThread(input) {
9262
9224
  });
9263
9225
  }
9264
9226
  async function forkCodexAppServerThread(input) {
9265
- const sourceThreadId = normalizeOptionalText$56(input.sourceThreadId);
9227
+ const sourceThreadId = normalizeOptionalText$57(input.sourceThreadId);
9266
9228
  if (!sourceThreadId) throw new CodexAppServerTransportError({
9267
9229
  code: "schema.invalid",
9268
9230
  errorType: "config",
@@ -9281,7 +9243,7 @@ async function forkCodexAppServerThread(input) {
9281
9243
  code: "context.fork_timeout",
9282
9244
  operation: "thread/fork"
9283
9245
  }));
9284
- const title = normalizeOptionalText$56(input.title);
9246
+ const title = normalizeOptionalText$57(input.title);
9285
9247
  if (title) try {
9286
9248
  await session.requestControl("thread/name/set", {
9287
9249
  name: title,
@@ -9300,7 +9262,7 @@ async function forkCodexAppServerThread(input) {
9300
9262
  });
9301
9263
  }
9302
9264
  async function resolveDispatchThreadContext(input) {
9303
- const existingThreadId = normalizeOptionalText$56(input.threadId);
9265
+ const existingThreadId = normalizeOptionalText$57(input.threadId);
9304
9266
  if (existingThreadId) {
9305
9267
  const dispatchThreadId = input.executionMode === "repair" ? await forkEphemeralCodexRepairThread({
9306
9268
  session: input.session,
@@ -9350,7 +9312,7 @@ function buildOpenMeldCodexThreadSource(instructionEpoch) {
9350
9312
  }
9351
9313
  async function resolveCodexAppServerCollaborationMode(input) {
9352
9314
  if (input.collaborationMode !== "plan") return null;
9353
- const model = normalizeOptionalText$56(input.model);
9315
+ const model = normalizeOptionalText$57(input.model);
9354
9316
  if (!model) throw new CodexAppServerTransportError({
9355
9317
  code: "protocol.invalid",
9356
9318
  errorType: "adapter",
@@ -9385,12 +9347,12 @@ async function resolveCodexAppServerTurnCollaborationMode(input) {
9385
9347
  }
9386
9348
  function readCodexAppServerCollaborationModePreset(value) {
9387
9349
  const preset = toRecord$11(value);
9388
- const mode = normalizeOptionalText$56(preset?.mode);
9350
+ const mode = normalizeOptionalText$57(preset?.mode);
9389
9351
  if (mode !== "default" && mode !== "plan") return null;
9390
9352
  return {
9391
9353
  mode,
9392
- model: normalizeOptionalText$56(preset?.model),
9393
- reasoningEffort: normalizeOptionalText$56(preset?.reasoning_effort)
9354
+ model: normalizeOptionalText$57(preset?.model),
9355
+ reasoningEffort: normalizeOptionalText$57(preset?.reasoning_effort)
9394
9356
  };
9395
9357
  }
9396
9358
  function resolveCodexAppServerPermissionModeParams(value, executionMode, hasComputerFileAccessBoundary = false) {
@@ -9445,17 +9407,16 @@ function resolveCodexAgentControllerPermissionMode$1(value) {
9445
9407
  }
9446
9408
  function resolveCodexAppServerConversationPolicyParams(conversationPolicy) {
9447
9409
  const params = {};
9448
- const model = normalizeOptionalText$56(conversationPolicy?.model);
9410
+ const model = normalizeOptionalText$57(conversationPolicy?.model);
9449
9411
  if (model) params.model = model;
9450
- const reasoningLevel = normalizeOptionalText$56(conversationPolicy?.reasoningLevel);
9412
+ const reasoningLevel = normalizeOptionalText$57(conversationPolicy?.reasoningLevel);
9451
9413
  if (reasoningLevel) params.effort = reasoningLevel;
9452
9414
  return params;
9453
9415
  }
9454
9416
  async function withCodexAppServerSession(input, callback) {
9455
9417
  const session = new CodexAppServerSession(input);
9456
9418
  try {
9457
- await session.start();
9458
- return await callback(session);
9419
+ return await callback(session, await session.start());
9459
9420
  } catch (error) {
9460
9421
  throw toCodexAppServerTransportError(error, input.codexTimeoutMs);
9461
9422
  } finally {
@@ -9651,20 +9612,21 @@ var CodexAppServerSession = class {
9651
9612
  this.#requestProcessTermination();
9652
9613
  }, this.#startupTimeoutMs);
9653
9614
  try {
9654
- await this.request("initialize", {
9615
+ const initialized = await this.request("initialize", {
9655
9616
  capabilities: { experimentalApi: true },
9656
9617
  clientInfo: {
9657
9618
  name: "openmeld",
9658
9619
  version: "0.0.0"
9659
9620
  }
9660
9621
  });
9622
+ this.notify("initialized", {});
9623
+ return initialized;
9661
9624
  } finally {
9662
9625
  if (this.#startupTimeout !== null) {
9663
9626
  clearTimeout(this.#startupTimeout);
9664
9627
  this.#startupTimeout = null;
9665
9628
  }
9666
9629
  }
9667
- this.notify("initialized", {});
9668
9630
  }
9669
9631
  async close() {
9670
9632
  this.#clearTimers();
@@ -9754,7 +9716,7 @@ var CodexAppServerSession = class {
9754
9716
  if (candidate.method !== "turn/completed") return false;
9755
9717
  const params = toRecord$11(candidate.params);
9756
9718
  const turn = toRecord$11(params?.turn);
9757
- return params?.threadId === input.threadId && normalizeOptionalText$56(turn?.id) === input.turnId;
9719
+ return params?.threadId === input.threadId && normalizeOptionalText$57(turn?.id) === input.turnId;
9758
9720
  })).params)?.turn);
9759
9721
  if (!turn) throw new CodexAppServerTransportError({
9760
9722
  code: "protocol.invalid",
@@ -9825,7 +9787,7 @@ var CodexAppServerSession = class {
9825
9787
  this.#failAll(new CodexAppServerTransportError({
9826
9788
  code: "protocol.invalid",
9827
9789
  errorType: "adapter",
9828
- message: `protocol.invalid: codex app-server emitted non-JSON output (${toErrorMessage$37(error)})`
9790
+ message: `protocol.invalid: codex app-server emitted non-JSON output (${toErrorMessage$38(error)})`
9829
9791
  }));
9830
9792
  return;
9831
9793
  }
@@ -9926,7 +9888,7 @@ var CodexAppServerSession = class {
9926
9888
  #collectAgentMessageDelta(message) {
9927
9889
  if (message.method !== "item/agentMessage/delta") return;
9928
9890
  const params = toRecord$11(message.params);
9929
- const itemId = normalizeOptionalText$56(params?.itemId);
9891
+ const itemId = normalizeOptionalText$57(params?.itemId);
9930
9892
  const delta = readAgentMessageDeltaText(params?.delta);
9931
9893
  if (!(itemId && delta)) return;
9932
9894
  this.markAgentOutputObserved();
@@ -9994,7 +9956,7 @@ var CodexAppServerSession = class {
9994
9956
  return this.#interactionFailure;
9995
9957
  }
9996
9958
  emitProviderConversationObserved(threadId) {
9997
- const agentControllerConversationId = normalizeOptionalText$56(threadId);
9959
+ const agentControllerConversationId = normalizeOptionalText$57(threadId);
9998
9960
  if (!agentControllerConversationId) return;
9999
9961
  this.#emitRuntimeEvent({
10000
9962
  agentControllerConversationId,
@@ -10012,9 +9974,9 @@ function readThreadIdFromResponse(value) {
10012
9974
  function readThreadContextFromResponse(value) {
10013
9975
  const response = toRecord$11(value);
10014
9976
  return {
10015
- model: normalizeOptionalText$56(response?.model),
9977
+ model: normalizeOptionalText$57(response?.model),
10016
9978
  threadId: readRequiredText(response?.thread?.id, "thread response thread.id"),
10017
- threadSource: normalizeOptionalText$56(response?.thread?.threadSource)
9979
+ threadSource: normalizeOptionalText$57(response?.thread?.threadSource)
10018
9980
  };
10019
9981
  }
10020
9982
  function readTurnStartResponse(value) {
@@ -10027,14 +9989,14 @@ function readTurnStartResponse(value) {
10027
9989
  return turn;
10028
9990
  }
10029
9991
  function readAgentMessageOutput(turn) {
10030
- const text = (Array.isArray(turn.items) ? turn.items : []).filter((item) => item.type === "agentMessage").map((item) => normalizeOptionalText$56(item.text)).filter((item) => item !== null).join("\n").trim();
9992
+ const text = (Array.isArray(turn.items) ? turn.items : []).filter((item) => item.type === "agentMessage").map((item) => normalizeOptionalText$57(item.text)).filter((item) => item !== null).join("\n").trim();
10031
9993
  return text.length > 0 ? text : null;
10032
9994
  }
10033
9995
  function readTurnFailureMessage(turn) {
10034
- return normalizeOptionalText$56(turn.error?.message) ?? "codex app-server turn failed";
9996
+ return normalizeOptionalText$57(turn.error?.message) ?? "codex app-server turn failed";
10035
9997
  }
10036
9998
  function readTurnFailureCodexErrorInfo(turn) {
10037
- return normalizeOptionalText$56(turn.error?.codexErrorInfo);
9999
+ return normalizeOptionalText$57(turn.error?.codexErrorInfo);
10038
10000
  }
10039
10001
  function readCodexTokenUsage(value) {
10040
10002
  const usage = toRecord$11(value);
@@ -10492,7 +10454,7 @@ function convertCodexMcpElicitationValues(values, schema) {
10492
10454
  return String(value);
10493
10455
  }
10494
10456
  function normalizeBoundedText$3(value, maxLength) {
10495
- const text = normalizeOptionalText$56(value);
10457
+ const text = normalizeOptionalText$57(value);
10496
10458
  return text ? text.slice(0, maxLength) : null;
10497
10459
  }
10498
10460
  function safeJsonStringify(value) {
@@ -10527,7 +10489,7 @@ function buildServerRequestDeclineResponse(method) {
10527
10489
  }
10528
10490
  }
10529
10491
  function toJsonRpcTransportError$1(error) {
10530
- const message = normalizeOptionalText$56(error.message) ?? "codex app-server error";
10492
+ const message = normalizeOptionalText$57(error.message) ?? "codex app-server error";
10531
10493
  const permissionDenial = classifyRuntimePermissionDenialMessage({
10532
10494
  message,
10533
10495
  source: "codex"
@@ -10567,19 +10529,19 @@ function toCodexAppServerTransportError(error, timeoutMs) {
10567
10529
  errorType: error.errorType,
10568
10530
  message: error.message
10569
10531
  });
10570
- if (timeoutMs !== null && toErrorMessage$37(error).includes("timed out")) return new CodexAppServerTransportError({
10532
+ if (timeoutMs !== null && toErrorMessage$38(error).includes("timed out")) return new CodexAppServerTransportError({
10571
10533
  code: "process.timeout",
10572
10534
  errorType: "timeout",
10573
- message: toErrorMessage$37(error)
10535
+ message: toErrorMessage$38(error)
10574
10536
  });
10575
10537
  return new CodexAppServerTransportError({
10576
10538
  code: "upstream_unreachable",
10577
10539
  errorType: "adapter",
10578
- message: `upstream_unreachable: failed to execute codex app-server (${toErrorMessage$37(error)})`
10540
+ message: `upstream_unreachable: failed to execute codex app-server (${toErrorMessage$38(error)})`
10579
10541
  });
10580
10542
  }
10581
10543
  function readRequiredText(value, label) {
10582
- const text = normalizeOptionalText$56(value);
10544
+ const text = normalizeOptionalText$57(value);
10583
10545
  if (text) return text;
10584
10546
  throw new CodexAppServerTransportError({
10585
10547
  code: "protocol.invalid",
@@ -10594,15 +10556,177 @@ function toRecord$11(value) {
10594
10556
  function normalizeText$11(value) {
10595
10557
  return String(value ?? "").trim();
10596
10558
  }
10597
- function normalizeOptionalText$56(value) {
10559
+ function normalizeOptionalText$57(value) {
10598
10560
  const normalized = normalizeText$11(value);
10599
10561
  return normalized.length > 0 ? normalized : null;
10600
10562
  }
10601
- function toErrorMessage$37(error) {
10563
+ function parseCodexAppServerVersion(response) {
10564
+ return normalizeOptionalText$57(toRecord$11(response)?.userAgent)?.match(CODEX_APP_SERVER_VERSION_PATTERN)?.[1] ?? null;
10565
+ }
10566
+ function resolveCodexAppServerAuthStatus(input) {
10567
+ if (input.account) return "authenticated";
10568
+ return input.response?.requiresOpenaiAuth === true ? "unauthenticated" : "unknown";
10569
+ }
10570
+ function toErrorMessage$38(error) {
10602
10571
  if (error instanceof Error) return error.message;
10603
10572
  return String(error);
10604
10573
  }
10605
10574
  //#endregion
10575
+ //#region ../../runtime/adapters/codex/dist/config/codex-runtime-config.js
10576
+ const DEFAULT_CODEX_COMMAND = "codex";
10577
+ const CODEX_APP_BUNDLE_NAMES = ["Codex.app", "ChatGPT.app"];
10578
+ const CODEX_CONTROL_PROBE_TIMEOUT_MS = 15e3;
10579
+ async function resolveInstalledCodexLaunchCandidates(input) {
10580
+ const installedCandidates = await resolveInstalledNodeScriptLaunchCandidates({
10581
+ additionalCommandDirectories: resolveCodexAppBundleCommandDirectories(input?.appBundleRoots),
10582
+ commandName: DEFAULT_CODEX_COMMAND,
10583
+ configuredCommand: normalizeOptionalText$56(process.env.OPENMELD_DAEMON_RUNTIME_CODEX_BIN),
10584
+ displayName: "Codex",
10585
+ preferredLaunchContract: input?.preferredLaunchContract
10586
+ });
10587
+ if (!installedCandidates.ok) return installedCandidates;
10588
+ const inspections = await Promise.all(installedCandidates.candidates.map(async (candidate, index) => ({
10589
+ candidate,
10590
+ index,
10591
+ inspection: await inspectCodexLaunchCandidate({
10592
+ candidate,
10593
+ timeoutMs: input?.timeoutMs
10594
+ })
10595
+ })));
10596
+ const completed = inspections.filter(({ inspection }) => inspection.ok);
10597
+ const selectedInspections = completed.length > 0 ? completed : inspections.filter(({ inspection }) => !inspection.ok && inspection.failureKind === "incomplete_check");
10598
+ const candidates = selectedInspections.map(({ candidate, inspection }) => inspection.ok ? decorateCodexLaunchCandidate({
10599
+ candidate,
10600
+ inspection
10601
+ }) : decorateCodexLaunchCandidate({
10602
+ candidate,
10603
+ inspection: null
10604
+ }));
10605
+ if (candidates.length === 0) return {
10606
+ errorMessage: inspections.find((entry) => !entry.inspection.ok)?.inspection.errorMessage ?? "Codex is installed, but OpenMeld can't start it on this device.",
10607
+ reason: "not_launchable",
10608
+ ok: false
10609
+ };
10610
+ const preferredInstallId = resolvePreferredCodexInstallId(selectedInspections);
10611
+ return {
10612
+ candidates,
10613
+ ok: true,
10614
+ ...preferredInstallId ? { preferredInstallId } : {}
10615
+ };
10616
+ }
10617
+ async function verifyCodexLaunchContract(input) {
10618
+ const fileCheck = await verifyLaunchContractFiles({ launchContract: input.launchContract });
10619
+ if (!fileCheck.ok) return fileCheck;
10620
+ try {
10621
+ await probeCodexAppServerAccount({
10622
+ launchContract: input.launchContract,
10623
+ timeoutMs: resolveCodexControlProbeTimeoutMs(input.timeoutMs)
10624
+ });
10625
+ return fileCheck;
10626
+ } catch (error) {
10627
+ return {
10628
+ errorMessage: `Codex app-server can't start on this device: ${toErrorMessage$37(error)}`,
10629
+ failureKind: error instanceof CodexAppServerTransportError && error.errorType === "timeout" ? "incomplete_check" : "completed_negative",
10630
+ ok: false
10631
+ };
10632
+ }
10633
+ }
10634
+ async function verifyCodexCommandLaunchContract(input) {
10635
+ return await verifyCliLaunchContract({
10636
+ cwd: input.cwd ?? process.cwd(),
10637
+ displayName: "Codex",
10638
+ launchContract: input.launchContract,
10639
+ probeArgs: ["--version"],
10640
+ timeoutMs: input.timeoutMs ?? resolveCodexTimeoutMs()
10641
+ });
10642
+ }
10643
+ function resolveCodexTimeoutMs() {
10644
+ const raw = normalizeOptionalText$56(process.env.OPENMELD_DAEMON_RUNTIME_REQUEST_TIMEOUT_MS);
10645
+ if (!raw) return null;
10646
+ const parsed = Number.parseInt(raw, 10);
10647
+ if (!Number.isFinite(parsed) || parsed <= 0) return null;
10648
+ return parsed;
10649
+ }
10650
+ function resolveCodexAppBundleCommandDirectories(appBundleRoots) {
10651
+ const home = normalizeOptionalText$56(process.env.HOME) ?? homedir();
10652
+ return (appBundleRoots ?? ["/Applications", join(home, "Applications")]).flatMap((root) => CODEX_APP_BUNDLE_NAMES.map((appBundleName) => join(root, appBundleName, "Contents", "Resources")));
10653
+ }
10654
+ async function inspectCodexLaunchCandidate(input) {
10655
+ try {
10656
+ return {
10657
+ ...await probeCodexAppServerAccount({
10658
+ launchContract: input.candidate.launchContract,
10659
+ timeoutMs: resolveCodexControlProbeTimeoutMs(input.timeoutMs)
10660
+ }),
10661
+ ok: true
10662
+ };
10663
+ } catch (error) {
10664
+ return {
10665
+ errorMessage: toErrorMessage$37(error),
10666
+ failureKind: error instanceof CodexAppServerTransportError && error.errorType === "timeout" ? "incomplete_check" : "completed_negative",
10667
+ ok: false
10668
+ };
10669
+ }
10670
+ }
10671
+ function resolvePreferredCodexInstallId(inspections) {
10672
+ return inspections.filter((entry) => entry.inspection.ok).sort((left, right) => {
10673
+ const scoreDifference = resolveCodexPreferenceScore(left) - resolveCodexPreferenceScore(right);
10674
+ return scoreDifference === 0 ? left.index - right.index : scoreDifference;
10675
+ })[0]?.candidate.installId ?? inspections[0]?.candidate.installId ?? null;
10676
+ }
10677
+ function resolveCodexPreferenceScore(input) {
10678
+ const authenticated = input.inspection.authStatus === "authenticated";
10679
+ const chatGptApp = isChatGptBundledCodex(input.candidate.commandPath);
10680
+ if (authenticated) return chatGptApp ? 0 : 1;
10681
+ return chatGptApp ? 2 : 3;
10682
+ }
10683
+ function decorateCodexLaunchCandidate(input) {
10684
+ const appLabel = resolveCodexAppLabel(input.candidate.commandPath);
10685
+ const status = resolveCodexSignInStatus(input.inspection?.authStatus);
10686
+ const version = input.inspection?.version ? `v${input.inspection.version}` : "Version unavailable";
10687
+ return {
10688
+ ...input.candidate,
10689
+ detail: `${version} · ${status} · ${input.candidate.detail}`,
10690
+ ...appLabel ? { label: appLabel } : {}
10691
+ };
10692
+ }
10693
+ function resolveCodexSignInStatus(authStatus) {
10694
+ if (authStatus === "authenticated") return "Signed in";
10695
+ if (authStatus === "unauthenticated") return "Sign in needed";
10696
+ return "Sign-in status unavailable";
10697
+ }
10698
+ function resolveCodexAppLabel(commandPath) {
10699
+ if (isChatGptBundledCodex(commandPath)) return "ChatGPT app";
10700
+ return commandPath.toLowerCase().includes("/codex.app/contents/resources/") ? "Codex app" : null;
10701
+ }
10702
+ function isChatGptBundledCodex(commandPath) {
10703
+ return commandPath.toLowerCase().includes("/chatgpt.app/contents/resources/");
10704
+ }
10705
+ function resolveCodexControlProbeTimeoutMs(timeoutMs) {
10706
+ return typeof timeoutMs === "number" ? timeoutMs : CODEX_CONTROL_PROBE_TIMEOUT_MS;
10707
+ }
10708
+ function toErrorMessage$37(error) {
10709
+ return error instanceof Error ? error.message : String(error);
10710
+ }
10711
+ function normalizeOptionalText$56(value) {
10712
+ const normalized = String(value ?? "").trim();
10713
+ return normalized.length > 0 ? normalized : null;
10714
+ }
10715
+ //#endregion
10716
+ //#region ../../runtime/adapters/codex/dist/context/codex-context-heal.js
10717
+ const CONTEXT_LOST_ERROR_PATTERNS = [
10718
+ /thread.*not\s+found/i,
10719
+ /session.*not\s+found/i,
10720
+ /conversation.*not\s+found/i,
10721
+ /unknown\s+thread/i,
10722
+ /invalid\s+thread/i,
10723
+ /cannot\s+resume/i,
10724
+ /resume.*failed/i
10725
+ ];
10726
+ function isLikelyContextLostError(message) {
10727
+ return CONTEXT_LOST_ERROR_PATTERNS.some((pattern) => pattern.test(message));
10728
+ }
10729
+ //#endregion
10606
10730
  //#region ../../runtime/adapters/codex/dist/output/codex-output-parser.js
10607
10731
  function processCodexStdoutLine(input) {
10608
10732
  const normalizedLine = input.line.trim();
@@ -11640,7 +11764,7 @@ async function interruptCodexActiveAppServerTurn(input) {
11640
11764
  async function resolveCodexDispatchLaunchContract(input) {
11641
11765
  const explicitLaunchContract = resolveConfiguredCodexLaunchContract(input);
11642
11766
  if (explicitLaunchContract) {
11643
- const verification = await verifyCodexLaunchContract({ launchContract: explicitLaunchContract });
11767
+ const verification = await verifyCodexCommandLaunchContract({ launchContract: explicitLaunchContract });
11644
11768
  if (verification.ok) return explicitLaunchContract;
11645
11769
  throw Object.assign(new Error(verification.errorMessage), {
11646
11770
  code: "controller.launch.needs_repair",
@@ -11669,7 +11793,8 @@ async function resolveInstalledGrokBuildLaunchCandidates(input) {
11669
11793
  additionalCommandDirectories: [join(resolveHome(), ".grok", "bin")],
11670
11794
  commandName: DEFAULT_GROK_BUILD_COMMAND,
11671
11795
  configuredCommand: normalizeOptionalText$52(process.env.OPENMELD_DAEMON_RUNTIME_GROK_BUILD_BIN),
11672
- displayName: "Grok Build"
11796
+ displayName: "Grok Build",
11797
+ preferredLaunchContract: input?.preferredLaunchContract
11673
11798
  });
11674
11799
  if (!installedCandidates.ok) return installedCandidates;
11675
11800
  const candidates = await resolveLaunchCandidatesAfterVerification({
@@ -12793,7 +12918,8 @@ async function resolveInstalledOpenCodeLaunchCandidates(input) {
12793
12918
  const installedCandidates = await resolveInstalledNodeScriptLaunchCandidates({
12794
12919
  commandName: DEFAULT_OPENCODE_COMMAND,
12795
12920
  configuredCommand: normalizeOptionalText$49(process.env.OPENMELD_DAEMON_RUNTIME_OPENCODE_BIN),
12796
- displayName: "OpenCode"
12921
+ displayName: "OpenCode",
12922
+ preferredLaunchContract: input?.preferredLaunchContract
12797
12923
  });
12798
12924
  if (!installedCandidates.ok) return installedCandidates;
12799
12925
  const candidates = await resolveLaunchCandidatesAfterVerification({
@@ -17629,7 +17755,7 @@ function resolveOpenMeldAccountContext(input) {
17629
17755
  };
17630
17756
  }
17631
17757
  async function resolveCurrentOpenMeldAccountContext() {
17632
- const { getAuthSessionMetadata } = await import("./auth-session-BcT7IOfJ.js").then((n) => n.t);
17758
+ const { getAuthSessionMetadata } = await import("./auth-session-BH5KpxlR.js").then((n) => n.t);
17633
17759
  return resolveOpenMeldAccountContext({ session: await getAuthSessionMetadata().catch(() => null) });
17634
17760
  }
17635
17761
  function resolveHostKey(baseUrl) {
@@ -19251,7 +19377,7 @@ function warnDaemonEvent(eventName, fields) {
19251
19377
  const definedFields = Object.fromEntries(Object.entries(fields).filter((entry) => entry[1] !== void 0));
19252
19378
  console.warn(`${nowIsoString()} ${eventName} ${JSON.stringify(definedFields)}`);
19253
19379
  }
19254
- const toErrorMessage$31 = toErrorMessage$41;
19380
+ const toErrorMessage$31 = toErrorMessage$42;
19255
19381
  function dirnamePath(path) {
19256
19382
  const lastSlash = Math.max(path.lastIndexOf("/"), path.lastIndexOf("\\"));
19257
19383
  if (lastSlash <= 0) return ".";
@@ -23518,7 +23644,8 @@ async function resolveInstalledCursorLaunchCandidates(input) {
23518
23644
  additionalCommandDirectories: resolveCursorCommandDirectories(),
23519
23645
  commandName: DEFAULT_CURSOR_COMMAND,
23520
23646
  configuredCommand: normalizeOptionalText$42(process.env.OPENMELD_DAEMON_RUNTIME_CURSOR_BIN),
23521
- displayName: "Cursor CLI"
23647
+ displayName: "Cursor CLI",
23648
+ preferredLaunchContract: input?.preferredLaunchContract
23522
23649
  });
23523
23650
  if (!installedCandidates.ok) return installedCandidates;
23524
23651
  const candidates = await resolveLaunchCandidatesAfterVerification({
@@ -24693,7 +24820,8 @@ async function resolveInstalledOpenClawLaunchCandidates(input) {
24693
24820
  const installedCandidates = await resolveInstalledNodeScriptLaunchCandidates({
24694
24821
  commandName: DEFAULT_OPENCLAW_COMMAND,
24695
24822
  configuredCommand: normalizeOptionalText$39(process.env.OPENMELD_DAEMON_RUNTIME_OPENCLAW_BIN),
24696
- displayName: "OpenClaw"
24823
+ displayName: "OpenClaw",
24824
+ preferredLaunchContract: input?.preferredLaunchContract
24697
24825
  });
24698
24826
  if (!installedCandidates.ok) return installedCandidates;
24699
24827
  const candidates = await resolveLaunchCandidatesAfterVerification({
@@ -33080,7 +33208,7 @@ function resolveBuiltinAgentControllerDefinition(agentId) {
33080
33208
  //#endregion
33081
33209
  //#region src/agents/local-controller-install.ts
33082
33210
  async function listBuiltinControllerInstalledCandidates(input) {
33083
- if (!(input.detected && input.runtimeSupported)) return {
33211
+ if (!(input.runtimeSupported && (input.detected || input.persistedLaunchContract))) return {
33084
33212
  errorCode: "controller.launch.needs_repair",
33085
33213
  errorMessage: `${input.displayName} is not available on this computer.`,
33086
33214
  ok: false
@@ -33091,7 +33219,7 @@ async function listBuiltinControllerInstalledCandidates(input) {
33091
33219
  errorMessage: `${input.displayName} does not expose a builtin local install resolver yet.`,
33092
33220
  ok: false
33093
33221
  };
33094
- const installedCandidates = await resolver.resolveInstalledLaunchCandidates();
33222
+ const installedCandidates = await resolver.resolveInstalledLaunchCandidates({ preferredLaunchContract: input.persistedLaunchContract ?? null });
33095
33223
  if (!installedCandidates.ok) return {
33096
33224
  errorCode: "controller.launch.needs_repair",
33097
33225
  errorMessage: installedCandidates.errorMessage,
@@ -33103,7 +33231,7 @@ async function listBuiltinControllerInstalledCandidates(input) {
33103
33231
  };
33104
33232
  }
33105
33233
  async function resolveBuiltinControllerInstallResolution(input) {
33106
- if (!(input.detected && input.runtimeSupported)) return {
33234
+ if (!(input.runtimeSupported && (input.detected || input.persistedLaunchContract))) return {
33107
33235
  detail: null,
33108
33236
  installChoices: [],
33109
33237
  launchContract: null,
@@ -33148,7 +33276,10 @@ async function resolveBuiltinControllerInstallResolution(input) {
33148
33276
  };
33149
33277
  }
33150
33278
  if (installedCandidates.candidates.length > 1) {
33151
- const selectedInstall = resolveAutomaticInstallChoice({ candidates: installedCandidates.candidates });
33279
+ const selectedInstall = resolveAutomaticInstallChoice({
33280
+ candidates: installedCandidates.candidates,
33281
+ preferredInstallId: installedCandidates.preferredInstallId
33282
+ });
33152
33283
  if (selectedInstall) return {
33153
33284
  detail: null,
33154
33285
  installChoices: [],
@@ -33171,13 +33302,13 @@ async function resolveBuiltinControllerInstallResolution(input) {
33171
33302
  }
33172
33303
  async function resolvePersistedControllerInstall(input) {
33173
33304
  const persistedVerification = await input.resolver.verifyLaunchContract({ launchContract: input.persistedLaunchContract });
33305
+ const installedCandidates = await input.resolver.resolveInstalledLaunchCandidates({ preferredLaunchContract: input.persistedLaunchContract });
33174
33306
  if (persistedVerification.ok || persistedVerification.failureKind === "incomplete_check") return {
33175
33307
  detail: null,
33176
- installChoices: [],
33308
+ installChoices: installedCandidates.ok ? installedCandidates.candidates : [],
33177
33309
  launchContract: input.persistedLaunchContract,
33178
33310
  status: "ready"
33179
33311
  };
33180
- const installedCandidates = await input.resolver.resolveInstalledLaunchCandidates();
33181
33312
  if (installedCandidates.ok && installedCandidates.candidates.length > 1) return {
33182
33313
  detail: buildNeedsInstallChoiceDetail(input.displayName),
33183
33314
  installChoices: installedCandidates.candidates,
@@ -33192,6 +33323,8 @@ async function resolvePersistedControllerInstall(input) {
33192
33323
  };
33193
33324
  }
33194
33325
  function resolveAutomaticInstallChoice(input) {
33326
+ const preferredInstall = input.preferredInstallId ? input.candidates.find((candidate) => candidate.installId === input.preferredInstallId) ?? null : null;
33327
+ if (preferredInstall) return preferredInstall;
33195
33328
  return input.candidates[0] ?? null;
33196
33329
  }
33197
33330
  async function repairBuiltinControllerInstall(input) {
@@ -36039,6 +36172,7 @@ async function manageAgentRegistrationInstallation(input) {
36039
36172
  agentId: state.agentId,
36040
36173
  detected: state.detected,
36041
36174
  displayName: state.displayName,
36175
+ persistedLaunchContract: state.registration.launchContract ?? null,
36042
36176
  runtimeSupported: state.runtimeSupported
36043
36177
  });
36044
36178
  if (!candidatesResult.ok) throw new Error(`${candidatesResult.errorCode}: ${candidatesResult.errorMessage}`);
@@ -36102,14 +36236,16 @@ async function toAgentTargetState(target, registration) {
36102
36236
  registration,
36103
36237
  targetKind: target.targetKind
36104
36238
  });
36239
+ const effectiveDetected = target.detected || Boolean(registration?.launchContract && normalizedLaunchResolution.status !== "not_available");
36105
36240
  const selectability = resolveTargetSelectability({
36106
- detected: target.detected,
36241
+ detected: effectiveDetected,
36107
36242
  launchStatus: normalizedLaunchResolution.status,
36108
36243
  runtimeSupported: target.runtimeSupported,
36109
36244
  targetKind: target.targetKind
36110
36245
  });
36111
36246
  return {
36112
36247
  ...target,
36248
+ detected: effectiveDetected,
36113
36249
  selectable: selectability.selectable,
36114
36250
  selectableReason: selectability.reason,
36115
36251
  installChoices: normalizedLaunchResolution.installChoices,
@@ -37373,9 +37509,9 @@ function createModelCatalogReadSession(input) {
37373
37509
  async function readModelCatalogOnce(baseUrl) {
37374
37510
  try {
37375
37511
  const [apiClient, baseUrlModule, clientFoundationModule] = await Promise.all([
37376
- import("./dist-BH4D3j09.js").then((n) => n.w),
37512
+ import("./dist-BKlTzgZt.js").then((n) => n.w),
37377
37513
  import("./base-url-Cv9x5Es9.js").then((n) => n.n),
37378
- import("./api-client-foundation-BCbhO6xe.js").then((n) => n.t)
37514
+ import("./api-client-foundation-DhBFOgEh.js").then((n) => n.t)
37379
37515
  ]);
37380
37516
  if (typeof apiClient.createConfigApi !== "function") throw new Error("config api client is unavailable");
37381
37517
  const resolvedBaseUrl = baseUrl ?? await baseUrlModule.resolveBaseUrl();
@@ -39956,9 +40092,9 @@ async function resolveGatewayChainReadiness(input = {}) {
39956
40092
  applicable: true,
39957
40093
  baseUrl: fallbackBaseUrl,
39958
40094
  checkedAt,
39959
- details: toErrorMessage$42(error),
40095
+ details: toErrorMessage$43(error),
39960
40096
  errorCode: null,
39961
- errorMessage: toErrorMessage$42(error),
40097
+ errorMessage: toErrorMessage$43(error),
39962
40098
  failureKind: "gateway_unreachable",
39963
40099
  ready: false,
39964
40100
  status: null,
@@ -42539,7 +42675,7 @@ var DaemonServiceLifecycleDrainTimeoutError = class extends Error {
42539
42675
  var DaemonServiceLifecycleControlledDrainError = class extends Error {
42540
42676
  cause;
42541
42677
  constructor(cause) {
42542
- super(`controlled service drain failed: ${toErrorMessage$41(cause)}`);
42678
+ super(`controlled service drain failed: ${toErrorMessage$42(cause)}`);
42543
42679
  this.name = "DaemonServiceLifecycleControlledDrainError";
42544
42680
  this.cause = cause;
42545
42681
  }
@@ -42701,7 +42837,7 @@ async function runDaemonServiceLifecycle(input) {
42701
42837
  evidencePath: state.evidencePath,
42702
42838
  recoveryStatus: "failed_before_safe_state",
42703
42839
  errorCode: resolveLifecycleFailureErrorCode(error),
42704
- errorMessage: toErrorMessage$41(error)
42840
+ errorMessage: toErrorMessage$42(error)
42705
42841
  };
42706
42842
  } finally {
42707
42843
  await cleanupPreparedBundleAfterLifecycle({
@@ -42724,7 +42860,7 @@ async function cleanupPreparedBundleAfterLifecycle(input) {
42724
42860
  } catch (error) {
42725
42861
  console.warn("[openmeld.daemon_bundle.cleanup_warning]", {
42726
42862
  bundleId: input.preparedBundle.bundleId,
42727
- errorMessage: toErrorMessage$41(error),
42863
+ errorMessage: toErrorMessage$42(error),
42728
42864
  operation: input.operation
42729
42865
  });
42730
42866
  }
@@ -42876,7 +43012,7 @@ async function executeDaemonServiceLifecycle(input) {
42876
43012
  }
42877
43013
  }
42878
43014
  async function recoverLifecycleFailure(input) {
42879
- const originalErrorMessage = toErrorMessage$41(input.error);
43015
+ const originalErrorMessage = toErrorMessage$42(input.error);
42880
43016
  const originalErrorCode = resolveLifecycleFailureErrorCode(input.error);
42881
43017
  const originalFailureStage = resolveLifecycleFailureStage(input.error, input.state.failureStage);
42882
43018
  const originalReasonCodes = resolveLifecycleFailureReasonCodes(input.error);
@@ -43156,7 +43292,7 @@ async function stopLifecycleSystemServiceRuntime(input) {
43156
43292
  } catch (restoreError) {
43157
43293
  throw new DaemonServiceLifecycleStageError({
43158
43294
  cause: restoreError,
43159
- message: `${toErrorMessage$41(drainError)}; failed to restore service autostart: ${toErrorMessage$41(restoreError)}`,
43295
+ message: `${toErrorMessage$42(drainError)}; failed to restore service autostart: ${toErrorMessage$42(restoreError)}`,
43160
43296
  stage: "stop_or_drain"
43161
43297
  });
43162
43298
  }
@@ -43209,7 +43345,7 @@ async function requestControlledSystemServiceDrain(input) {
43209
43345
  compatibilityReason: "legacy_missing_close_reason",
43210
43346
  observedDaemonVersion
43211
43347
  } : {},
43212
- errorMessage: toErrorMessage$41(error)
43348
+ errorMessage: toErrorMessage$42(error)
43213
43349
  },
43214
43350
  result: isCompatibilityFallback ? "fallback" : "failed",
43215
43351
  stopCause: "controlled_service_update",
@@ -43281,7 +43417,7 @@ async function waitForLifecycleRuntimeAbsentWithRetry(serviceManager) {
43281
43417
  } catch (retryError) {
43282
43418
  throw new DaemonServiceLifecycleStageError({
43283
43419
  cause: retryError,
43284
- message: `${toErrorMessage$41(retryError)}; initial absence verification failed: ${toErrorMessage$41(initialError)}`,
43420
+ message: `${toErrorMessage$42(retryError)}; initial absence verification failed: ${toErrorMessage$42(initialError)}`,
43285
43421
  stage: "wait_absent"
43286
43422
  });
43287
43423
  }
@@ -43291,7 +43427,7 @@ async function cleanupStaleDaemonRuntimeDataBackupsAfterHealthyLifecycle(operati
43291
43427
  await cleanupStaleDaemonRuntimeDataBackups();
43292
43428
  } catch (error) {
43293
43429
  console.warn("[openmeld.daemon_runtime_data.cleanup_warning]", {
43294
- errorMessage: toErrorMessage$41(error),
43430
+ errorMessage: toErrorMessage$42(error),
43295
43431
  operation
43296
43432
  });
43297
43433
  }
@@ -43697,7 +43833,7 @@ async function stopDaemonProcess$1(pid, signal) {
43697
43833
  process$1.kill(pid, signal);
43698
43834
  } catch (error) {
43699
43835
  if (error instanceof Error && error.code === "ESRCH") return true;
43700
- throw new Error(`Failed to send ${signal} to pid ${String(pid)}: ${toErrorMessage$41(error)}`);
43836
+ throw new Error(`Failed to send ${signal} to pid ${String(pid)}: ${toErrorMessage$42(error)}`);
43701
43837
  }
43702
43838
  if (signal === "SIGKILL") return true;
43703
43839
  return await waitForProcessToExit$1(pid, PROCESS_STOP_WAIT_MS);
@@ -43707,7 +43843,7 @@ async function stopDaemonProcessWithTimeout(pid, signal, timeoutMs) {
43707
43843
  process$1.kill(pid, signal);
43708
43844
  } catch (error) {
43709
43845
  if (error instanceof Error && error.code === "ESRCH") return true;
43710
- throw new Error(`Failed to send ${signal} to pid ${String(pid)}: ${toErrorMessage$41(error)}`);
43846
+ throw new Error(`Failed to send ${signal} to pid ${String(pid)}: ${toErrorMessage$42(error)}`);
43711
43847
  }
43712
43848
  return await waitForProcessToExit$1(pid, timeoutMs);
43713
43849
  }
@@ -43721,7 +43857,7 @@ async function waitForProcessToExit$1(pid, timeoutMs) {
43721
43857
  }
43722
43858
  function isLaunchdBootstrapIoError(serviceManager, error) {
43723
43859
  if (serviceManager.controller !== "launchd") return false;
43724
- const message = toErrorMessage$41(error).toLowerCase();
43860
+ const message = toErrorMessage$42(error).toLowerCase();
43725
43861
  return message.includes("bootstrap failed") && message.includes("input/output error");
43726
43862
  }
43727
43863
  async function writeLifecycleEvidenceEvent(input) {
@@ -54770,14 +54906,13 @@ async function runAuthLogout(input) {
54770
54906
  cleanup: await performLogoutLocalCleanup({ runtime }),
54771
54907
  presenter
54772
54908
  });
54773
- if (!await getAuthSession()) {
54909
+ if (!(await clearAuthSession()).hadLocalSession) {
54774
54910
  presenter.line({
54775
54911
  code: "auth.logout.no_session",
54776
54912
  text: "No local sign-in session found."
54777
54913
  });
54778
54914
  return;
54779
54915
  }
54780
- await clearAuthSession();
54781
54916
  presenter.line({
54782
54917
  code: "auth.logout.cleared",
54783
54918
  text: "Signed out on this device."
@@ -62489,7 +62624,7 @@ function resolveSystemServiceStartupFailureVerdict(input) {
62489
62624
  controller: input.controller,
62490
62625
  jobDiagnostics,
62491
62626
  localMachineIssue,
62492
- message: sanitizeSystemServiceErrorMessage$1(toErrorMessage$41(input.error)),
62627
+ message: sanitizeSystemServiceErrorMessage$1(toErrorMessage$42(input.error)),
62493
62628
  detail: input.detail ?? null
62494
62629
  };
62495
62630
  }
@@ -75703,7 +75838,7 @@ var DaemonReinstallUnexpectedStartError = class extends Error {
75703
75838
  diagnosticDetail;
75704
75839
  outcome;
75705
75840
  constructor(input) {
75706
- super(toErrorMessage$41(input.cause));
75841
+ super(toErrorMessage$42(input.cause));
75707
75842
  this.name = "DaemonReinstallUnexpectedStartError";
75708
75843
  this.cause = input.cause;
75709
75844
  this.diagnosticDetail = input.diagnosticDetail;
@@ -75722,7 +75857,7 @@ var DaemonReinstallFailureError = class extends Error {
75722
75857
  evidencePath;
75723
75858
  failureStage;
75724
75859
  constructor(input) {
75725
- super(toErrorMessage$41(input.cause));
75860
+ super(toErrorMessage$42(input.cause));
75726
75861
  this.name = "DaemonReinstallFailureError";
75727
75862
  this.backupDataPath = input.backupDataPath;
75728
75863
  this.cause = input.cause;
@@ -76375,18 +76510,18 @@ async function prepareManagedDaemonServiceForStop(input) {
76375
76510
  intent: "stop",
76376
76511
  metadata: {
76377
76512
  compatibilityFallback: isCompatibilityFallback,
76378
- errorMessage: toErrorMessage$41(error)
76513
+ errorMessage: toErrorMessage$42(error)
76379
76514
  },
76380
76515
  result: isCompatibilityFallback ? "fallback" : "failed",
76381
76516
  stopCause: "user_stop",
76382
76517
  type: "stop.controlled_drain"
76383
76518
  });
76384
76519
  if (isCompatibilityFallback) return null;
76385
- let errorMessage = toErrorMessage$41(error);
76520
+ let errorMessage = toErrorMessage$42(error);
76386
76521
  if (shouldRestoreAutostart) try {
76387
76522
  await serviceManager.enableAutostart();
76388
76523
  } catch (restoreError) {
76389
- errorMessage = `${errorMessage}; failed to restore service autostart: ${toErrorMessage$41(restoreError)}`;
76524
+ errorMessage = `${errorMessage}; failed to restore service autostart: ${toErrorMessage$42(restoreError)}`;
76390
76525
  }
76391
76526
  if (input.mode !== "best_effort") throw new Error(`OpenMeld Service stayed running because its final offline status could not be delivered: ${errorMessage}`);
76392
76527
  return buildDaemonStopWarningResult({
@@ -76436,11 +76571,11 @@ async function stopRegisteredDaemonServiceManager(input) {
76436
76571
  run: async () => await input.ownerSnapshot.serviceManager?.stop()
76437
76572
  });
76438
76573
  } catch (error) {
76439
- if (input.mode !== "best_effort") throw new Error(`Failed to stop system service (${input.ownerSnapshot.runtimeStatus.serviceController}): ${toErrorMessage$41(error)}`);
76574
+ if (input.mode !== "best_effort") throw new Error(`Failed to stop system service (${input.ownerSnapshot.runtimeStatus.serviceController}): ${toErrorMessage$42(error)}`);
76440
76575
  return buildDaemonStopWarningResult({
76441
76576
  reason: "stop_failed",
76442
76577
  runtimeStatus: input.ownerSnapshot.runtimeStatus,
76443
- errorMessage: toErrorMessage$41(error)
76578
+ errorMessage: toErrorMessage$42(error)
76444
76579
  });
76445
76580
  }
76446
76581
  if (!await waitForDaemonSystemServiceToStop({
@@ -76471,7 +76606,7 @@ async function stopRegisteredDaemonServiceManager(input) {
76471
76606
  return buildDaemonStopWarningResult({
76472
76607
  reason: "stop_failed",
76473
76608
  runtimeStatus: input.ownerSnapshot.runtimeStatus,
76474
- errorMessage: toErrorMessage$41(error)
76609
+ errorMessage: toErrorMessage$42(error)
76475
76610
  });
76476
76611
  }
76477
76612
  const finalOwnerSnapshot = residualCleanupResult.shouldRefresh ? await readCurrentDaemonOwnerSnapshot() : residualCleanupResult.ownerSnapshot;
@@ -76544,7 +76679,7 @@ async function stopCurrentLaneDaemonProcess(input) {
76544
76679
  pid: daemonPid,
76545
76680
  reason: "stop_failed",
76546
76681
  runtimeStatus: input.runtimeStatus,
76547
- errorMessage: toErrorMessage$41(error)
76682
+ errorMessage: toErrorMessage$42(error)
76548
76683
  };
76549
76684
  }
76550
76685
  }
@@ -76628,7 +76763,7 @@ async function stopTrackedDaemonProcess(input) {
76628
76763
  type: "process_stop.action",
76629
76764
  result: "failed",
76630
76765
  metadata: {
76631
- errorMessage: toErrorMessage$41(error),
76766
+ errorMessage: toErrorMessage$42(error),
76632
76767
  pid: input.pid,
76633
76768
  reason: input.reason,
76634
76769
  signal: input.signal
@@ -76663,7 +76798,7 @@ async function stopDaemonProcess(pid, signal) {
76663
76798
  process.kill(pid, signal);
76664
76799
  } catch (error) {
76665
76800
  if (isNodeErrorCode(error, "ESRCH")) return true;
76666
- throw new Error(`Failed to send ${signal} to pid ${String(pid)}: ${toErrorMessage$41(error)}`);
76801
+ throw new Error(`Failed to send ${signal} to pid ${String(pid)}: ${toErrorMessage$42(error)}`);
76667
76802
  }
76668
76803
  if (signal === "SIGKILL") return true;
76669
76804
  return await waitForProcessToExit(pid);
@@ -76737,7 +76872,7 @@ async function stopDaemonForStrictTeardown(input) {
76737
76872
  await input.context.serviceManager.stop().catch((error) => {
76738
76873
  throw createStrictTeardownError({
76739
76874
  reason: input.reason,
76740
- message: `failed to stop system service (${input.context.serviceManager?.controller}): ${toErrorMessage$41(error)}`,
76875
+ message: `failed to stop system service (${input.context.serviceManager?.controller}): ${toErrorMessage$42(error)}`,
76741
76876
  hint: "run `openmeld service stop --force` and retry",
76742
76877
  stage: "stop-wait"
76743
76878
  });
@@ -76782,7 +76917,7 @@ async function uninstallSystemServiceForStrictTeardown(input) {
76782
76917
  for (const manager of managers) await manager.uninstall().catch((error) => {
76783
76918
  throw createStrictTeardownError({
76784
76919
  reason: input.reason,
76785
- message: `failed to uninstall system service (${manager.controller}): ${toErrorMessage$41(error)}`,
76920
+ message: `failed to uninstall system service (${manager.controller}): ${toErrorMessage$42(error)}`,
76786
76921
  hint: "fix OS service permissions and retry",
76787
76922
  stage: "uninstall-verify"
76788
76923
  });
@@ -76799,7 +76934,7 @@ async function verifySystemServiceRemovedAfterStrictTeardown(input) {
76799
76934
  const finalManagerStatus = await manager.status().catch((error) => {
76800
76935
  throw createStrictTeardownError({
76801
76936
  reason: input.reason,
76802
- message: `failed to verify system service status (${manager.controller}): ${toErrorMessage$41(error)}`,
76937
+ message: `failed to verify system service status (${manager.controller}): ${toErrorMessage$42(error)}`,
76803
76938
  hint: "run `openmeld service status` and confirm service manager state",
76804
76939
  stage: "uninstall-verify"
76805
76940
  });
@@ -76816,7 +76951,7 @@ async function verifySystemServiceRemovedAfterStrictTeardown(input) {
76816
76951
  const finalManagerStatus = await manager.status().catch((error) => {
76817
76952
  throw createStrictTeardownError({
76818
76953
  reason: input.reason,
76819
- message: `failed to verify system service status (${manager.controller}): ${toErrorMessage$41(error)}`,
76954
+ message: `failed to verify system service status (${manager.controller}): ${toErrorMessage$42(error)}`,
76820
76955
  hint: "run `openmeld service status` and confirm service manager state",
76821
76956
  stage: "uninstall-verify"
76822
76957
  });
@@ -77256,7 +77391,7 @@ async function runDaemonReinstall(input, options = {}) {
77256
77391
  action: displayAction,
77257
77392
  backupDataPath: error.backupDataPath,
77258
77393
  errorCode: error.errorCode,
77259
- errorMessage: toErrorMessage$41(error.cause),
77394
+ errorMessage: toErrorMessage$42(error.cause),
77260
77395
  failureStage: error.failureStage,
77261
77396
  evidencePath: error.evidencePath ?? await captureDaemonServiceEvidenceBestEffort({
77262
77397
  runtime,
@@ -78075,7 +78210,7 @@ async function runDirectDaemonServiceLoop(input) {
78075
78210
  };
78076
78211
  } catch (error) {
78077
78212
  return await handleDaemonRunStartFailure({
78078
- fallbackRawLine: toErrorMessage$41(error),
78213
+ fallbackRawLine: toErrorMessage$42(error),
78079
78214
  gatewayUrl: input.gatewayUrl,
78080
78215
  presenter: input.presenter,
78081
78216
  runtime: input.runtime,
@@ -78276,7 +78411,7 @@ async function bestEffortStopCurrentLaneDaemonService(input) {
78276
78411
  if (!isOpenMeldLockError(error)) throw error;
78277
78412
  let errorMessage = error.message;
78278
78413
  const runtimeStatus = await readCurrentObservedDaemonRuntimeStatus().catch((statusError) => {
78279
- errorMessage = `${errorMessage}; service status could not be read: ${toErrorMessage$41(statusError)}`;
78414
+ errorMessage = `${errorMessage}; service status could not be read: ${toErrorMessage$42(statusError)}`;
78280
78415
  return {
78281
78416
  status: "unknown",
78282
78417
  mode: null,
@@ -78712,7 +78847,7 @@ async function runSystemDaemonCore(context) {
78712
78847
  } catch (error) {
78713
78848
  if (!isSystemServiceBootstrap) throw error;
78714
78849
  return await handleDaemonRunStartFailure({
78715
- fallbackRawLine: toErrorMessage$41(error),
78850
+ fallbackRawLine: toErrorMessage$42(error),
78716
78851
  gatewayUrl: input.gatewayUrl,
78717
78852
  presenter,
78718
78853
  runtime,
@@ -79313,7 +79448,7 @@ async function recoverSystemServiceStartupAfterTimeout(input) {
79313
79448
  error,
79314
79449
  recovery: {
79315
79450
  ...recovery,
79316
- failureMessage: toErrorMessage$41(error)
79451
+ failureMessage: toErrorMessage$42(error)
79317
79452
  }
79318
79453
  };
79319
79454
  }
@@ -79539,7 +79674,7 @@ function resolvePersistedDaemonServiceContractGatewayUrl(gatewayUrl) {
79539
79674
  try {
79540
79675
  return normalizeGatewayBaseUrl(gatewayUrl);
79541
79676
  } catch (error) {
79542
- throw new Error(`Invalid persisted OpenMeld Service contract gateway URL "${gatewayUrl}": ${toErrorMessage$41(error)}`);
79677
+ throw new Error(`Invalid persisted OpenMeld Service contract gateway URL "${gatewayUrl}": ${toErrorMessage$42(error)}`);
79543
79678
  }
79544
79679
  }
79545
79680
  function resolveSystemServiceStartupWaitMs(controller) {
@@ -79668,13 +79803,13 @@ async function runDaemonServiceDetached(input) {
79668
79803
  if (typeof child.pid === "number" && child.pid > 0) await cleanupDetachedRuntimeStateIfOwnedByPid(child.pid).catch(() => {});
79669
79804
  return await handleDaemonRunStartFailure({
79670
79805
  cursor: startFailureLogCursor,
79671
- fallbackRawLine: selectRelevantDaemonStartFailureLogLine(startupOutput.summary()) ?? toErrorMessage$41(error),
79806
+ fallbackRawLine: selectRelevantDaemonStartFailureLogLine(startupOutput.summary()) ?? toErrorMessage$42(error),
79672
79807
  gatewayUrl: input.gatewayUrl,
79673
79808
  presenter: input.presenter,
79674
79809
  runtime: input.runtime,
79675
79810
  genericErrorPayload: {
79676
79811
  codePrefix: "daemon.run.start_failed",
79677
- error: /* @__PURE__ */ new Error(`Failed to start OpenMeld Service process: ${toErrorMessage$41(error)}`)
79812
+ error: /* @__PURE__ */ new Error(`Failed to start OpenMeld Service process: ${toErrorMessage$42(error)}`)
79678
79813
  }
79679
79814
  });
79680
79815
  } finally {
@@ -106627,4 +106762,4 @@ function isHumanInteractiveSpaceRuntime(runtime) {
106627
106762
  //#endregion
106628
106763
  export { runAgentsRepair as $, uninstallAgentActivityIntegrations as $a, performManagedInstall as $i, formatDaemonServiceDowngradeBlockedRecommendation as $n, resolveProfileWorkspaceRuntime as $r, readBundledOpenMeldCliSkillDocumentByPath as $t, assertFullSignalIdArgument as A, getSelectedOpenMeldProfileId as Aa, getAgentControllerPermissionModeDisplayMetadata as Ai, inspectSpaceCacheFile as An, enqueueControllerTaskLifecycleEventWhileLocked as Ao, buildAgentOverviewFromContract as Ar, shouldEmitAgentOverview as At, persistAgentTransportSelection as B, LocalProjectConnectionError as Ba, getCurrentCommandCheckState as Bi, formatRemovedCcRelationMessage as Bn, cliJsonOutputEnvelopeSchema as Bo, runDaemonServiceFullAlignment as Br, parseJsonResponse$1 as Bt, toSpaceMetaUpsertInput as C, deleteOpenMeldProfile as Ca, classifyDaemonServiceWakeability as Ci, submitProfileRuntimeAgentControllerReport as Cn, listProjectConnectionsWithStatus as Co, registerSpaceMemberSelectionOptions as Cr, runDaemonTeardownStrict as Ct, formatHumanReadTargetList as D, updateOpenMeldProfile as Da, resolveOpenMeldEnvironmentTarget as Di, resolveLocalAgentControllerBlockerReasonCodes as Dn, setDefaultProjectConnection as Do, registerDaemonControlTargetOptions as Dr, reconcileCliVersionView as Dt, buildHumanReplyContextSummary as E, resolveOpenMeldProfile as Ea, resolveDaemonDeviceId as Ei, collectLocalAgentControllerInventory as En, runIfAgentActivityBindingGenerationIsCurrent as Eo, getCliVersionInfo as Er, buildProfileWorkspaceRows as Et, emitSpaceAgentOverview as F, resolveAuthenticationGuidance as Fa, resolveAgentExecutionStatus as Fi, buildSignalIndex as Fn, emitCliJsonEnvelope as Fo, OPENMELD_AGENT_MENTAL_MODEL_LINES as Fr, fetchSpaceMeta as Ft, runAgentsCustomList as G, registerAgentActivityRoute as Ga, resolveVersionChangeDirection as Gi, assessCliUpdate as Gn, organizationJoinLinkErrorResponseSchema as Go, formatAgentReplyReadinessLabel as Gr, runDaemonStartDecisionPrompt as Gt, runAgents as H, LocalDaemonControlPlaneClientError as Ha, resetCurrentCommandCheckState as Hi, promptSearchSelect as Hn, cliJsonSkillsLoadEnvelopeSchema as Ho, resolveServiceReadinessFromServiceStatus as Hr, writeInstalledLocalComponentsSnapshot as Ht, emitSpaceCliAgentOverview as I, resolveAuthenticationGuidanceFromError as Ia, resolveAgentProfileEditCapabilities as Ii, buildSignalMessageReadProjection as In, errLine as Io, SPACE_CONTRACT_ALLOWED_ACTION_ORDER as Ir, updateSpaceMeta as It, runAgentsDetect as J, AGENT_ACTIVITY_INTEGRATION_OWNER as Ja, getDaemonSystemServiceLogPath as Ji, readDispatchOwnedRuntimeGuard as Jn, package_default as Jo, mapAgentReplyReadinessToLegacyAutoReply as Jr, runSkillsEnsure as Jt, runAgentsCustomRemove as K, resolveAgentActivityRouteForPath as Ka, readCurrentDaemonRuntimeContext as Ki, isCliUpdateCheckApplicable as Kn, revokeOrganizationJoinLinkResponseSchema as Ko, formatDeviceReplyReadinessLabel as Kr, collectSkillsReadinessSnapshot as Kt, prepareLocalAgentReadiness as L, resolveAuthenticationGuidanceFromMessage as La, resolveEvidenceSyncHealth as Li, buildSpaceRoundReadProjection as Ln, outJsonLine as Lo, areAllowedActionsEquivalent as Lr, readGatewayJsonResponse as Lt, prepareAuthenticatedSpaceCommandContext as M, buildAgentAuthenticationGuide as Ma, listAgentControllerPermissionModeOptions as Mi, assertNoRemovedCcSpaceAddressingSyntax as Mn, renderInfoCard as Mo, formatDualViewGuideForDisplay as Mr, readDaemonStartFailureLogTailLines as Mt, resolveOpenMeldProfileForSpaceCommand as N, buildHumanAuthenticationCard as Na, parseAgentControllerRef as Ni, buildDispatchResultMessageReadProjection as Nn, renderTextInfoCard as No, buildDualViewGuideMessage as Nr, fetchSpaceUpdates as Nt, parseEnvelope as O, alignSelectedOpenMeldProfileStorage as Oa, buildAgentControllerRef as Oi, resolveLocalAgentControllerLaunchability as On, unbindProject as Oo, registerAuthLoginRequestOptions as Or, emitDaemonAgentOverview as Ot, resolveSpaceAccessLabel as P, createAuthenticationError as Pa, resolveAgentControllerPermissionModeForController as Pi, buildDispatchResultReplyWorkflowProjection as Pn, sanitizeTerminalDisplayText as Po, formatAgentOverviewPayload as Pr, createCliSpaceApi as Pt, runAgentsManage as Q, resolveAgentActivityDispatcherCommand as Qa, buildInstallSelfJsonPayload as Qi, resolveElapsedTimeMs as Qn, createModelCatalogReadSession as Qr, ensureLocalSkills as Qt, buildReplyReadinessGuidance as R, getProfileDefaultView as Ra, resolveNativeAgentControllerPermissionModeForController as Ri, buildUpdatesReplyWorkflowProjection as Rn, outLine as Ro, buildAgentFacingPublicationModeGuideLines as Rr, readGatewayTextResponse as Rt, loadSpaceSignalIndexOrNull as S, createOpenMeldHumanProfile as Sa, classifyDaemonServiceRunStartability as Si, computeRetryDelayMs as Sn, listProjectBindings as So, getCommandHintsFromContract as Sr, runDaemonStop as St, buildFormalSignalReadPayload as T, primeOpenMeldProfilesSessionCache as Ta, ensureDaemonRuntimePaths as Ti, submitRuntimeAgentControllerReports as Tn, removeProjectConnection as To, registerSkillsTargetSelectionOptions as Tr, buildProfileWorkspacePresentation as Tt, runAgentsConfig as U, requestLocalAgentActivitySync as Ua, startCurrentCommandCheckScope as Ui, isReturnKeypress as Un, cliJsonSkillsShowEnvelopeSchema as Uo, resolveDaemonServiceFreshnessWarning as Ur, resolveDaemonServiceParticipationStatus as Ut, resolveAgentProfileSetup as V, validateLocalProjectConnectionPath as Va, isCurrentCommandCheckScopeActive as Vi, promptSearchMultiselect as Vn, cliJsonSkillsListEnvelopeSchema as Vo, formatDaemonFailureContextText as Vr, resolveLocalComponentsStatus as Vt, runAgentsCustomAdd as W, isAgentActivityRouteRegistered as Wa, inspectDaemonServiceInventory as Wi, runInteractivePrompt as Wn, getOrganizationJoinLinkResponseSchema as Wo, resolveCurrentReplyReadinessSnapshot as Wr, runDaemonServiceParticipationGate as Wt, runAgentsEnable as X, installAgentActivityIntegrations as Xa, readDaemonServiceJobCrashExitCode as Xi, writeDispatchSpaceActionRecord as Xn, resolveOpenClawLocalDiagnosticsValue as Xr, runSkillsUninstall as Xt, runAgentsDisable as Y, defaultManagedIntegrationPaths as Ya, isDaemonServiceJobNeverSpawned as Yi, readDispatchSpaceActionContextFromEnv as Yn, resolveGatewayChainReadiness as Yr, runSkillsInstall as Yt, runAgentsList as Z, readAgentActivityIntegrationStatus as Za, resolveDaemonServiceManager as Zi, formatElapsedTime as Zn, syncProfileWorkspaceState as Zr, runSkillsUpdate as Zt, runSpaceWriteWithPasswordRetry as _, resolveViewProfileKey as _a, buildDaemonRouteObservationPresentation as _i, promptTextEntry as _n, enqueueAgentActivityHookEvent as _o, createSpaceUpdatesGuideError as _r, runDaemonInterrupt as _t, runSpaceDelete as a, readVersionState as aa, setOpenMeldManagedProfileWorkspace as ai, ensureCommandAuthenticationOrCancel as an, formatProfileAwareOpenMeldCliCommands as ao, createProfileMenuGuideError as ar, printOpenMeldBanner as at, buildIdentityOnlyMembersSnapshotForReadProjection as b, resolveOpenMeldProfileOrNull as ba, buildDaemonServiceTargetSpec as bi, resolveServiceParticipationReadiness as bn, removeProjectOutbox as bo, createUpgradeConfirmationGuideError as br, runDaemonSnapshot as bt, runSpaceLeave as c, toStartBackgroundHelperExecutionCompatibility as ca, syncDeviceRuntimeStateProjection as ci, runAuthLogout as cn, syncLocalAgentActivity as co, createSpaceAliasTargetGuideError as cr, renderOpenMeldLogo as ct, runSpaceRemoveMembers as d, renderHumanErrorCard as da, listAgentTargetStates as di, buildAuthStatusRows as dn, readAgentActivityContextForPath as do, createSpaceMenuGuideError as dr, resolveSpaceSendText as dt, buildNextVersionState as ea, ensureOpenMeldManagedProfileWorkspace as ei, readRuntimeReportingHealthState as en, formatInlineOpenMeldCliCommands as eo, formatDaemonServiceMissingRecommendation as er, runAgentsShow as et, runSpaceSend as f, renderHumanTextErrorCard as fa, reconcileNewRunnableBuiltinAgentsForSetup as fi, buildAuthStatusSnapshot as fn, removeAgentActivityContextCache as fo, createSpacePublicationSetGuideError as fr, runDaemon as ft, runSpaceReadWithPasswordRetry as g, resolveRuntimeContext as ga, PREPARE_SESSION_RECONNECT_GRACE_MS as gi, resolveCreateProfileName as gn, readCodexSessionTitles as go, createSpaceTargetGuideError as gr, runDaemonInstall as gt, uploadPreparedSpaceFiles as h, parseCliViewMode as ha, resolveLocalRegistryAgentIdFromAgentControllerRef as hi, resolveCreateProfileKind as hn, normalizeSharedSessionTitle as ho, createSpaceSubcommandTargetGuideError as hr, runDaemonCancel as ht, runSpaceCreate as i, fetchLatestPackageInfo as ia, setCustomProfileWorkspace as ii, buildCommandAuthenticationPromptMessage as in, formatOpenMeldCliTextBlock as io, createProfileCreateGuideError as ir, colorizeDisplayProfileLabel as it, assertValidSpaceIdTarget as j, setSelectedOpenMeldProfileId as ja, getAgentControllerPermissionModeFieldLabel as ji, upsertSpaceConfig as jn, readControllerTaskLifecycleOutboxHealth as jo, DualViewGuideError as jr, runDaemonStartupPreflight as jt, isSpaceCommandOutputHandledError as k, clearSelectedOpenMeldProfileId as ka, createAgentExecutionStatusDisplayRows as ki, resolveLocalAgentControllerReportDecision as kn, canonicalizeLocalProjectPath as ko, registerBuiltinAgentSelectionOptions as kr, createDelayedSpinner as kt, runSpaceList as l, resolveCurrentDaemonExpectedVersion as la, createPrimaryBindingReadSession as li, runAuthMenu as ln, readDaemonServiceContract as lo, createSpaceContractSetGuideError as lr, renderOpenMeldTagline as lt, prepareRequestedSpaceSendFiles as m, formatMessage as ma, notifyDaemonRouteCatalogChanged as mi, createProfileByKind as mn, resolveObservedAgentActivityBinding as mo, createSpaceResultGuideError as mr, runDaemonBackgroundStartForDecision as mt, promptAndConfirmSpacePassword as n, ensureVersionStateReady as na, readProfileWorkspaceConfig as ni, connectWebSocket as nn, formatOpenMeldCliCommands as no, createDoctorFailedGuideError as nr, postLocalParticipationMutationReconcile as nt, runSpaceHistory as o, writeVersionState as oa, validateCustomProfileWorkspacePath as oi, evaluateCommandAuthentication as on, resolveSetupFollowUpCliEntryCommand as oo, createResetConfirmationGuideError as or, renderOpenMeldBrandBlockLines as ot, runSpaceWatch as p, createPresenter as pa, listBuiltinAgentsRegistryEntries as pi, formatActiveOrganizationLabel as pn, buildAgentActivityEvent as po, createSpaceRemoveMembersGuideError as pr, runDaemonAutostart as pt, runAgentsCustomUpdate as q, unregisterAgentActivityRoute as qa, readCurrentObservedDaemonRuntimeStatus as qi, assertDispatchOwnedRuntimePublicWriteAllowed as qn, compareAgentControllerRefsForDisplay as qo, formatHumanReplyReadinessReason as qr, runSkillsCheck as qt, runSpaceAddMembers as r, fetchLatestCliBinaryRelease as ra, resolveConfiguredProfileWorkspacePath as ri, assessServerRequiredVersion as rn, formatOpenMeldCliLine as ro, createProfileActionGuideError as rr, colorizeAgentLabel as rt, runSpaceJoin as s, resolveDaemonRuntimeContractCompatibility as sa, describeProfileWorkspacePathValidationFailure as si, runAuthLogin as sn, resolveUserFacingCliEntryCommand as so, createSpaceAddMembersGuideError as sr, renderOpenMeldHeader as st, buildCreateSpacePasswordPromptConfig as t, compareSemver as ta, normalizeCustomProfileWorkspacePath as ti, readRecentDaemonDispatchJournalEvents as tn, formatOpenMeldCliCommand as to, canUseInteractivePrompts as tr, formatTransportModeDisplay as tt, runSpacePassword as u, buildHumanErrorCopy as ua, resolveAgentProfilePrimaryAgentControllerReport as ui, runAuthStatus as un, upsertDaemonServiceContract as uo, createSpaceLeaveGuideError as ur, resolveGatewayWebOrigin as ut, buildHumanReadSignalsTranscriptItems as v, isSelectedOpenMeldProfileRequiredError as va, buildOnboardingPlan as vi, ensureAgentProfileRuntimeBinding as vn, removeProjectInbox as vo, createStartAgentIdentityGuideError as vr, runDaemonReinstall as vt, buildFormalDispatchResultReadPayload as w, listOpenMeldProfiles as wa, readRecentDaemonLifecycleEvents as wi, submitRuntimeAgentControllerReport as wn, migrateProjectBindingStore as wo, SPACE_ADD_MEMBERS_PROGRESS_HEARTBEAT_MS as wr, runDaemonUninstall as wt, loadSpaceIdentityDirectoryOrNull as x, createOpenMeldAgentProfile as xa, resolveDaemonServiceAlignmentDecision as xi, assessActionParticipationCandidate as xn, bindProject as xo, getCommandEntryContract as xr, runDaemonStatusFlow as xt, emitHumanReadSignalsTextProjection as y, requireOpenMeldProfile as ya, getSetupFlowCopy as yi, formatServiceParticipationReadinessLabel as yn, readAgentActivityOutboxHealth as yo, createStartAuthenticationGuideError as yr, runDaemonRunAfterEntryChecks as yt, resolveHumanControllerDisplayName as z, setProfileDefaultView as za, finishCurrentCommandCheckScope as zi, createSpaceMemberIdentityIndex as zn, cliBinaryDeltaPatchSchema as zo, canonicalizeAllowedActions as zr, toStructuredGatewayFailure as zt };
106629
106764
 
106630
- //# sourceMappingURL=command-DgODFDCr.js.map
106765
+ //# sourceMappingURL=command-BzpvQPph.js.map