openmeld 0.3.293 → 0.3.295
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-me-membership-CCs8sUQS.js → add-me-membership-CM0Z3OIU.js} +2 -2
- package/dist/{add-me-membership-CCs8sUQS.js.map → add-me-membership-CM0Z3OIU.js.map} +1 -1
- package/dist/{agents-Ow9keQaE.js → agents-DMy2nQul.js} +9 -9
- package/dist/{agents-Ow9keQaE.js.map → agents-DMy2nQul.js.map} +1 -1
- package/dist/{api-client-foundation-D4qt8-I7.js → api-client-foundation-CRQZIYVN.js} +5 -5
- package/dist/{api-client-foundation-D4qt8-I7.js.map → api-client-foundation-CRQZIYVN.js.map} +1 -1
- package/dist/{api-client-foundation-f11_Z91X.js → api-client-foundation-DcWfF50S.js} +1 -1
- package/dist/{auth-session-GYsWoDuJ.js → auth-session-QFK36vfX.js} +2 -2
- package/dist/{auth-session-GYsWoDuJ.js.map → auth-session-QFK36vfX.js.map} +1 -1
- package/dist/auth-session-WM8aC6bg.js +3 -0
- package/dist/{channel-DfaHRitM.js → channel-D1NKTdY0.js} +3 -3
- package/dist/{channel-DfaHRitM.js.map → channel-D1NKTdY0.js.map} +1 -1
- package/dist/{cli-binary-manifest-t_TXQ6-t.js → cli-binary-manifest-DhSiC1mr.js} +2 -2
- package/dist/{cli-binary-manifest-t_TXQ6-t.js.map → cli-binary-manifest-DhSiC1mr.js.map} +1 -1
- package/dist/{cloud-computer-KEqLjDMV.js → cloud-computer-BXo_qq3t.js} +5 -5
- package/dist/{cloud-computer-KEqLjDMV.js.map → cloud-computer-BXo_qq3t.js.map} +1 -1
- package/dist/{command-Bjok_ELo.js → command-BzMRuqeP.js} +17 -17
- package/dist/{command-Bjok_ELo.js.map → command-BzMRuqeP.js.map} +1 -1
- package/dist/{computer-connection-review-EUXp_Wi8.js → computer-connection-review-DKKoSgNl.js} +4 -4
- package/dist/{computer-connection-review-EUXp_Wi8.js.map → computer-connection-review-DKKoSgNl.js.map} +1 -1
- package/dist/{computer-disconnect-BkFLO8pE.js → computer-disconnect-Cd6qNdlo.js} +7 -7
- package/dist/{computer-disconnect-BkFLO8pE.js.map → computer-disconnect-Cd6qNdlo.js.map} +1 -1
- package/dist/{computer-setup-continuation-twvv8WGB.js → computer-setup-continuation-DEi94Jzc.js} +5 -5
- package/dist/{computer-setup-continuation-twvv8WGB.js.map → computer-setup-continuation-DEi94Jzc.js.map} +1 -1
- package/dist/{computer-update-wait-CAvCeH6l.js → computer-update-wait-D4ly51hV.js} +4 -4
- package/dist/{computer-update-wait-CAvCeH6l.js.map → computer-update-wait-D4ly51hV.js.map} +1 -1
- package/dist/{context-CPKBlAps.js → context-DqEUJy_k.js} +5 -5
- package/dist/{context-CPKBlAps.js.map → context-DqEUJy_k.js.map} +1 -1
- package/dist/{daemon-device-id-B-iuoFzM.js → daemon-device-id-DLKuN3Eo.js} +3 -3
- package/dist/{daemon-device-id-B-iuoFzM.js.map → daemon-device-id-DLKuN3Eo.js.map} +1 -1
- package/dist/{daemon-lifecycle-journal-ywEIaUn3.js → daemon-lifecycle-journal-D1dCp8bJ.js} +3 -3
- package/dist/{daemon-lifecycle-journal-ywEIaUn3.js.map → daemon-lifecycle-journal-D1dCp8bJ.js.map} +1 -1
- package/dist/{daemon-service-runtime-Dg8V-t-u.js → daemon-service-runtime-C1o0PjSJ.js} +90 -6
- package/dist/daemon-service-runtime-C1o0PjSJ.js.map +1 -0
- package/dist/{daemon-service-update-state-BclTmkAC.js → daemon-service-update-state-CtzTzni1.js} +2 -2
- package/dist/{daemon-service-update-state-BclTmkAC.js.map → daemon-service-update-state-CtzTzni1.js.map} +1 -1
- package/dist/{dispatch-owned-runtime-DlpQwB6N.js → dispatch-owned-runtime-B6VEu6Ak.js} +10 -10
- package/dist/{dispatch-owned-runtime-DlpQwB6N.js.map → dispatch-owned-runtime-B6VEu6Ak.js.map} +1 -1
- package/dist/dist-CQRhcL_T.js +34 -0
- package/dist/{dist-BA8Q1IB5.js → dist-DUg7lB-e.js} +1 -1
- package/dist/{dist-B08nRCGz.js → dist-DsyrZzyU.js} +5 -5
- package/dist/{dist-B08nRCGz.js.map → dist-DsyrZzyU.js.map} +1 -1
- package/dist/{dist-W42Tu_IN.js → dist-WejKqo8X.js} +2 -2
- package/dist/{dist-D_FzuWN-.js → dist-zY7dD_tQ.js} +2 -2
- package/dist/{dist-D_FzuWN-.js.map → dist-zY7dD_tQ.js.map} +1 -1
- package/dist/{dual-view-guide-catalog-DE3NLJFV.js → dual-view-guide-catalog-DljFCp4Y.js} +4 -4
- package/dist/{dual-view-guide-catalog-DE3NLJFV.js.map → dual-view-guide-catalog-DljFCp4Y.js.map} +1 -1
- package/dist/{elapsed-time-FUf-2Hna.js → elapsed-time-CviuvW6T.js} +2 -2
- package/dist/{elapsed-time-FUf-2Hna.js.map → elapsed-time-CviuvW6T.js.map} +1 -1
- package/dist/{entry-CVzIpV2o.js → entry-DvVWq0E3.js} +8 -8
- package/dist/{entry-CVzIpV2o.js.map → entry-DvVWq0E3.js.map} +1 -1
- package/dist/{installation-inventory-C0tUL2nW.js → installation-inventory-D6L-BdIi.js} +3 -3
- package/dist/{installation-inventory-C0tUL2nW.js.map → installation-inventory-D6L-BdIi.js.map} +1 -1
- package/dist/{installer-BDOyjY1v.js → installer-CW2tqKD4.js} +2 -2
- package/dist/{installer-BDOyjY1v.js.map → installer-CW2tqKD4.js.map} +1 -1
- package/dist/{local-components-DlEpUgN3.js → local-components-BpA9Lc4v.js} +48 -2
- package/dist/local-components-BpA9Lc4v.js.map +1 -0
- package/dist/{meta-api-tolnQVpU.js → meta-api-CaQ0OVVz.js} +7 -7
- package/dist/{meta-api-tolnQVpU.js.map → meta-api-CaQ0OVVz.js.map} +1 -1
- package/dist/{openmeld-ClgSnNPJ.js → openmeld-ChVuhWd4.js} +37 -37
- package/dist/{openmeld-ClgSnNPJ.js.map → openmeld-ChVuhWd4.js.map} +1 -1
- package/dist/{openmeld-environment-target-BOA_c8yO.js → openmeld-environment-target-mLK2dK1_.js} +2 -2
- package/dist/{openmeld-environment-target-BOA_c8yO.js.map → openmeld-environment-target-mLK2dK1_.js.map} +1 -1
- package/dist/{openmeld-maintenance-worker-Btj47phf.js → openmeld-maintenance-worker-18yNz_T9.js} +12 -11
- package/dist/{openmeld-maintenance-worker-Btj47phf.js.map → openmeld-maintenance-worker-18yNz_T9.js.map} +1 -1
- package/dist/{openmeld-tools-update-attempt-state-D8oDuOp9.js → openmeld-tools-update-attempt-state--4fS27OC.js} +2 -2
- package/dist/{openmeld-tools-update-attempt-state-D8oDuOp9.js.map → openmeld-tools-update-attempt-state--4fS27OC.js.map} +1 -1
- package/dist/{openmeld-tools-update-coordinator-C3W6sFnm.js → openmeld-tools-update-coordinator-Doj6V0Qx.js} +39 -67
- package/dist/openmeld-tools-update-coordinator-Doj6V0Qx.js.map +1 -0
- package/dist/{openmeld-tools-update-failure-2jySZ04B.js → openmeld-tools-update-failure-B4OLQAq7.js} +2 -2
- package/dist/{openmeld-tools-update-failure-2jySZ04B.js.map → openmeld-tools-update-failure-B4OLQAq7.js.map} +1 -1
- package/dist/{openmeld-tools-update-join-CDWWs9KY.js → openmeld-tools-update-join-B6HcSSiK.js} +11 -5
- package/dist/openmeld-tools-update-join-B6HcSSiK.js.map +1 -0
- package/dist/{openmeld-tools-update-process-frame-Dj3k5JHe.js → openmeld-tools-update-process-frame-CGFA81PP.js} +3 -3
- package/dist/{openmeld-tools-update-process-frame-Dj3k5JHe.js.map → openmeld-tools-update-process-frame-CGFA81PP.js.map} +1 -1
- package/dist/{openmeld-tools-update-process-frame-B-RacMxU.js → openmeld-tools-update-process-frame-D4LEFHvl.js} +1 -1
- package/dist/openmeld.js +6 -6
- package/dist/{prepare-provider-runtime-CQ7ZJMG8.js → prepare-provider-runtime-Cdm1_kJt.js} +9 -9
- package/dist/{prepare-provider-runtime-CQ7ZJMG8.js.map → prepare-provider-runtime-Cdm1_kJt.js.map} +1 -1
- package/dist/{prepare-session-executor-Cum_2pFY.js → prepare-session-executor-ChlTN4_s.js} +20 -20
- package/dist/{prepare-session-executor-Cum_2pFY.js.map → prepare-session-executor-ChlTN4_s.js.map} +1 -1
- package/dist/{presenter-BIwIweT9.js → presenter-DqdYrUMa.js} +2 -2
- package/dist/{presenter-BIwIweT9.js.map → presenter-DqdYrUMa.js.map} +1 -1
- package/dist/{process-channel-Dx1KqiZj.js → process-channel-Vz_ntXXU.js} +2 -2
- package/dist/{process-channel-Dx1KqiZj.js.map → process-channel-Vz_ntXXU.js.map} +1 -1
- package/dist/{runtime-ogScfw4m.js → runtime-DxUsqAl4.js} +17 -17
- package/dist/{runtime-ogScfw4m.js.map → runtime-DxUsqAl4.js.map} +1 -1
- package/dist/{runtime-agent-controller-reporting-submission-BgAI8B4L.js → runtime-agent-controller-reporting-submission-CGskliia.js} +7 -7
- package/dist/{runtime-agent-controller-reporting-submission-BgAI8B4L.js.map → runtime-agent-controller-reporting-submission-CGskliia.js.map} +1 -1
- package/dist/{runtime-transport-DNkqgRhX.js → runtime-transport-Ca0cGpAY.js} +2 -2
- package/dist/{runtime-transport-DNkqgRhX.js.map → runtime-transport-Ca0cGpAY.js.map} +1 -1
- package/dist/{sensitive-operation-credentials-Dsps0o1U.js → sensitive-operation-credentials-D7aFniHa.js} +3 -3
- package/dist/{sensitive-operation-credentials-Dsps0o1U.js.map → sensitive-operation-credentials-D7aFniHa.js.map} +1 -1
- package/dist/{service-account-authorization-DbbHAoMV.js → service-account-authorization-CdUOvV3c.js} +3 -3
- package/dist/{service-account-authorization-DbbHAoMV.js.map → service-account-authorization-CdUOvV3c.js.map} +1 -1
- package/dist/{service-account-control-Bkgjt8Hs.js → service-account-control-DZReqRJV.js} +8 -8
- package/dist/{service-account-control-Bkgjt8Hs.js.map → service-account-control-DZReqRJV.js.map} +1 -1
- package/dist/{service-control-capabilities-Bvhzddzv.js → service-control-capabilities-CuDpVm5i.js} +2 -2
- package/dist/{service-control-capabilities-Bvhzddzv.js.map → service-control-capabilities-CuDpVm5i.js.map} +1 -1
- package/dist/{service-control-capabilities-CUfHlN2t.js → service-control-capabilities-D2RMffJQ.js} +1 -1
- package/dist/{service-CML_ZTQ7.js → service-l9DU4V5Q.js} +45 -30
- package/dist/service-l9DU4V5Q.js.map +1 -0
- package/dist/{state-DI3VCm3Z.js → state-nzWj4_Pk.js} +2 -2
- package/dist/{state-DI3VCm3Z.js.map → state-nzWj4_Pk.js.map} +1 -1
- package/dist/{updates-api-C0n06BJr.js → updates-api-Bgme-Wrv.js} +13 -13
- package/dist/{updates-api-C0n06BJr.js.map → updates-api-Bgme-Wrv.js.map} +1 -1
- package/dist/upgrade-BminOoZS.js +3 -0
- package/dist/{upgrade-wV53HJsz.js → upgrade-i_sFuGdy.js} +22 -12
- package/dist/upgrade-i_sFuGdy.js.map +1 -0
- package/dist/windows/openmeld-windows-process.exe +0 -0
- package/package.json +8 -8
- package/dist/auth-session-BrKZEvdi.js +0 -3
- package/dist/daemon-service-runtime-Dg8V-t-u.js.map +0 -1
- package/dist/dist-B6YM6pO6.js +0 -34
- package/dist/local-components-DlEpUgN3.js.map +0 -1
- package/dist/openmeld-tools-update-coordinator-C3W6sFnm.js.map +0 -1
- package/dist/openmeld-tools-update-join-CDWWs9KY.js.map +0 -1
- package/dist/service-CML_ZTQ7.js.map +0 -1
- package/dist/upgrade-DVlicVyI.js +0 -3
- package/dist/upgrade-wV53HJsz.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openmeld-tools-update-join-CDWWs9KY.js","names":["sleep"],"sources":["../src/local-service/maintenance/openmeld-tools-update-operation.ts","../src/local-service/maintenance/openmeld-tools-update-join.ts"],"sourcesContent":["import type {\n DaemonServiceUpdateJob,\n OpenMeldToolsUpdateAttempt,\n OpenMeldToolsUpdateFailureCode,\n OpenMeldToolsUpdateOperation,\n} from \"@openmeld/schemas/types\";\nimport type { OpenMeldPathResolutionInput } from \"../../config/paths\";\nimport {\n readLastDaemonServiceUpdate,\n readPendingDaemonServiceUpdate,\n} from \"../lifecycle/daemon-service-update-state\";\nimport {\n readLastOpenMeldToolsUpdateAttempt,\n readPendingOpenMeldToolsUpdateAttempt,\n} from \"./openmeld-tools-update-attempt-state\";\nimport { resolvePersistedOpenMeldToolsUpdateFailure } from \"./openmeld-tools-update-failure\";\n\nconst TERMINAL_VISIBILITY_MS = 24 * 60 * 60 * 1000;\n\nexport type OpenMeldToolsUpdateOperationProjection = {\n failureCode: OpenMeldToolsUpdateFailureCode | null;\n operation: OpenMeldToolsUpdateOperation;\n};\n\nexport async function resolveOpenMeldToolsUpdateOperation(\n pathInput: OpenMeldPathResolutionInput = {},\n nowMs = Date.now()\n): Promise<OpenMeldToolsUpdateOperation | null> {\n const projection = await resolveOpenMeldToolsUpdateOperationProjection(\n pathInput,\n nowMs\n );\n return projection?.operation ?? null;\n}\n\nexport async function resolveOpenMeldToolsUpdateOperationProjection(\n pathInput: OpenMeldPathResolutionInput = {},\n nowMs = Date.now()\n): Promise<OpenMeldToolsUpdateOperationProjection | null> {\n const [servicePending, toolsPending] = await Promise.all([\n readPendingDaemonServiceUpdate(pathInput),\n readPendingOpenMeldToolsUpdateAttempt(pathInput),\n ]);\n if (servicePending) {\n return projectServiceJob(servicePending);\n }\n if (toolsPending) {\n return projectToolsAttempt(toolsPending);\n }\n\n const [serviceLast, toolsLast] = await Promise.all([\n readLastDaemonServiceUpdate(pathInput),\n readLastOpenMeldToolsUpdateAttempt(pathInput),\n ]);\n const candidates = [\n ...(serviceLast ? [projectServiceJob(serviceLast)] : []),\n ...(toolsLast ? [projectToolsAttempt(toolsLast)] : []),\n ]\n .filter((candidate) => isRecentTerminal(candidate.operation, nowMs))\n .sort(\n (a, b) =>\n Date.parse(b.operation.updatedAt) - Date.parse(a.operation.updatedAt)\n );\n return candidates[0] ?? null;\n}\n\nfunction projectToolsAttempt(\n attempt: OpenMeldToolsUpdateAttempt\n): OpenMeldToolsUpdateOperationProjection {\n const terminalFailure =\n attempt.operation.phase === \"needs_help\" ||\n attempt.operation.phase === \"restored\";\n return {\n failureCode: terminalFailure\n ? (resolvePersistedOpenMeldToolsUpdateFailure(attempt.errorMessage) ??\n \"cli.update.failed\")\n : null,\n operation: attempt.operation,\n };\n}\n\nfunction projectServiceJob(\n job: DaemonServiceUpdateJob\n): OpenMeldToolsUpdateOperationProjection {\n return {\n failureCode:\n job.phase === \"needs_help\" || job.phase === \"restored\"\n ? \"cli.update.service_alignment_failed\"\n : null,\n operation: {\n operationId: job.jobId,\n phase: job.phase,\n requestSource: job.requestSource,\n requestedAt: job.requestedAt,\n ...(job.targetCliVersion\n ? { targetCliVersion: job.targetCliVersion }\n : {}),\n ...(job.targetServiceVersion\n ? { targetServiceVersion: job.targetServiceVersion }\n : {}),\n targetVersion: job.targetVersion,\n updatedAt: job.updatedAt,\n urgency: job.urgency,\n },\n };\n}\n\nfunction isRecentTerminal(\n operation: OpenMeldToolsUpdateOperation,\n nowMs: number\n): boolean {\n if (\n operation.phase !== \"updated\" &&\n operation.phase !== \"restored\" &&\n operation.phase !== \"needs_help\"\n ) {\n return false;\n }\n const updatedAtMs = Date.parse(operation.updatedAt);\n return (\n Number.isFinite(updatedAtMs) &&\n nowMs >= updatedAtMs &&\n nowMs - updatedAtMs <= TERMINAL_VISIBILITY_MS\n );\n}\n","import { setTimeout as sleep } from \"node:timers/promises\";\nimport type {\n OpenMeldDaemonServiceUpdateReadinessPayload,\n OpenMeldToolsUpdateOperation,\n} from \"@openmeld/schemas/types\";\nimport {\n type OpenMeldPathResolutionInput,\n resolveOpenMeldRootDir,\n} from \"../../config/paths\";\nimport { requestLocalDaemonServiceUpdateReadiness } from \"../control-plane/client\";\nimport { readPendingDaemonServiceUpdate } from \"../lifecycle/daemon-service-update-state\";\nimport { readPendingOpenMeldToolsUpdateAttempt } from \"./openmeld-tools-update-attempt-state\";\nimport { resolveOpenMeldToolsUpdateOperation } from \"./openmeld-tools-update-operation\";\n\nconst DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS = 500;\n\n// This is an observer of the existing durable operation, never an updater.\n// The OS-owned worker continues even if this caller exits while waiting.\nexport async function waitForOpenMeldToolsUpdateCompletion(\n input: {\n operationId?: string;\n timeoutMs?: number;\n pollIntervalMs?: number;\n onWaiting?: (\n operation: OpenMeldToolsUpdateOperation\n ) => Promise<void> | void;\n onObservation?: (\n operation: OpenMeldToolsUpdateOperation,\n readiness: OpenMeldDaemonServiceUpdateReadinessPayload | null\n ) => void;\n } = {}\n): Promise<OpenMeldToolsUpdateOperation | null> {\n let operationId = input.operationId ?? null;\n await waitForExternalOpenMeldToolsUpdate({\n completedServiceUpdateIsIdle: true,\n timeoutMs: input.timeoutMs,\n pollIntervalMs: input.pollIntervalMs,\n onWaiting: async (operation) => {\n if (operationId !== null && operationId !== operation.operationId) {\n throw new Error(\n `OpenMeld update ${operationId} was replaced before its completion could be verified.`\n );\n }\n operationId = operation.operationId;\n await input.onWaiting?.(operation);\n },\n onObservation: input.onObservation,\n });\n const completed = await resolveOpenMeldToolsUpdateOperation();\n if (\n operationId !== null &&\n (completed?.operationId !== operationId || completed.phase !== \"updated\")\n ) {\n throw new Error(\n `OpenMeld update ${operationId} did not finish successfully (${completed?.phase ?? \"completion evidence unavailable\"}).`\n );\n }\n return completed;\n}\n\nexport async function resolveExternalOpenMeldToolsUpdate(\n input: OpenMeldPathResolutionInput & {\n currentOperationId?: string | null;\n completedServiceUpdateIsIdle?: boolean;\n } = {}\n): Promise<OpenMeldToolsUpdateOperation | null> {\n // The coordinator persists the Service job before discarding the tools\n // attempt. Reading in this order prevents observers from seeing a false idle\n // gap while ownership moves from the CLI download to the Service worker.\n const toolsAttempt = await readPendingOpenMeldToolsUpdateAttempt(input);\n const serviceJob = await readPendingDaemonServiceUpdate(input);\n if (\n serviceJob &&\n serviceJob.jobId !== (input.currentOperationId ?? null) &&\n !(input.completedServiceUpdateIsIdle && serviceJob.phase === \"updated\")\n ) {\n return {\n operationId: serviceJob.jobId,\n phase: serviceJob.phase,\n requestSource: serviceJob.requestSource,\n requestedAt: serviceJob.requestedAt,\n ...(serviceJob.targetCliVersion\n ? { targetCliVersion: serviceJob.targetCliVersion }\n : {}),\n ...(serviceJob.targetServiceVersion\n ? { targetServiceVersion: serviceJob.targetServiceVersion }\n : {}),\n targetVersion: serviceJob.targetVersion,\n updatedAt: serviceJob.updatedAt,\n urgency: serviceJob.urgency,\n };\n }\n if (\n toolsAttempt &&\n toolsAttempt.operation.operationId !== (input.currentOperationId ?? null)\n ) {\n return toolsAttempt.operation;\n }\n return null;\n}\n\nexport async function waitForExternalOpenMeldToolsUpdate(\n input: OpenMeldPathResolutionInput & {\n currentOperationId?: string | null;\n completedServiceUpdateIsIdle?: boolean;\n onWaiting?: (\n operation: OpenMeldToolsUpdateOperation\n ) => Promise<void> | void;\n pollIntervalMs?: number;\n unclaimedTimeoutMs?: number;\n timeoutMs?: number;\n onObservation?: (\n operation: OpenMeldToolsUpdateOperation,\n readiness: OpenMeldDaemonServiceUpdateReadinessPayload | null\n ) => void;\n } = {}\n): Promise<void> {\n let reportedOperation: string | null = null;\n const deadline = Date.now() + (input.timeoutMs ?? Number.POSITIVE_INFINITY);\n let unclaimedSince: number | null = null;\n while (true) {\n const operation = await resolveExternalOpenMeldToolsUpdate(input);\n if (!operation) {\n return;\n }\n assertUpdateObservationActive(deadline);\n if (input.onObservation) {\n // Reuse the Service's public local control projection. Required updates\n // enter `updating` before drain, so the durable phase alone cannot say\n // whether accepted work still owns the wait. This read never extends\n // the observer deadline or reserves the setup mutation lock.\n const readiness = await readUpdateWorkReadiness(operation, input);\n input.onObservation(operation, readiness);\n }\n if (input.unclaimedTimeoutMs !== undefined) {\n const pending = await readPendingOpenMeldToolsUpdateAttempt(input);\n if (\n pending?.operation.operationId === operation.operationId &&\n pending.attempts === 0\n ) {\n unclaimedSince ??= Date.now();\n if (Date.now() - unclaimedSince >= input.unclaimedTimeoutMs) {\n throw new Error(\n \"OpenMeld's background updater did not start. Run openmeld doctor to check the background service, then try setup again.\"\n );\n }\n } else {\n unclaimedSince = null;\n }\n }\n const observationKey = `${operation.operationId}:${operation.phase}`;\n if (reportedOperation !== observationKey) {\n reportedOperation = observationKey;\n await input.onWaiting?.(operation);\n }\n await sleep(\n Math.max(1, input.pollIntervalMs ?? DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS)\n );\n }\n}\n\nfunction assertUpdateObservationActive(deadline: number): void {\n if (Date.now() >= deadline) {\n throw new Error(\n \"OpenMeld is still waiting for the background update. Current tasks and the update continue. Check their status, then try connecting again.\"\n );\n }\n}\n\nasync function readUpdateWorkReadiness(\n operation: OpenMeldToolsUpdateOperation,\n input: OpenMeldPathResolutionInput\n) {\n // The local control client is bound to this process's lane. Never query a\n // different Service while inspecting another root's durable update files.\n if (resolveOpenMeldRootDir(input) !== resolveOpenMeldRootDir()) {\n return null;\n }\n const pending = await readPendingDaemonServiceUpdate(input);\n if (\n pending?.jobId !== operation.operationId ||\n (pending.phase !== \"updating\" && pending.phase !== \"waiting_for_work\")\n ) {\n return null;\n }\n return await requestLocalDaemonServiceUpdateReadiness({\n timeoutMs: 2000,\n }).catch(() => null);\n}\n"],"mappings":"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"}
|