openmeld 0.3.272 → 0.3.274

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.
Files changed (112) hide show
  1. package/dist/{add-me-membership-hCLBPRRF.js → add-me-membership-D1rigtC3.js} +2 -2
  2. package/dist/{add-me-membership-hCLBPRRF.js.map → add-me-membership-D1rigtC3.js.map} +1 -1
  3. package/dist/{agents-DzZCx9bp.js → agents-CbOU59YJ.js} +9 -9
  4. package/dist/{agents-DzZCx9bp.js.map → agents-CbOU59YJ.js.map} +1 -1
  5. package/dist/{api-client-foundation-HEsvF4KD.js → api-client-foundation-Dp3dg6qn.js} +5 -5
  6. package/dist/{api-client-foundation-HEsvF4KD.js.map → api-client-foundation-Dp3dg6qn.js.map} +1 -1
  7. package/dist/{api-client-foundation-Brg4u2d7.js → api-client-foundation-GJkHzahS.js} +1 -1
  8. package/dist/auth-session-BvCCb6yu.js +3 -0
  9. package/dist/{auth-session-CZyzuPIi.js → auth-session-DYDO5gN9.js} +2 -2
  10. package/dist/{auth-session-CZyzuPIi.js.map → auth-session-DYDO5gN9.js.map} +1 -1
  11. package/dist/{channel-DSRmEJ1D.js → channel-BpNJdH9N.js} +4 -4
  12. package/dist/{channel-DSRmEJ1D.js.map → channel-BpNJdH9N.js.map} +1 -1
  13. package/dist/{client-6NxLAJ9r.js → client-iqnaeeAE.js} +2 -2
  14. package/dist/{client-6NxLAJ9r.js.map → client-iqnaeeAE.js.map} +1 -1
  15. package/dist/{cloud-computer-CbvdkjSF.js → cloud-computer-0wGthXDM.js} +5 -5
  16. package/dist/{cloud-computer-CbvdkjSF.js.map → cloud-computer-0wGthXDM.js.map} +1 -1
  17. package/dist/{command-BQB6QAdV.js → command-BM1HPkU5.js} +17 -17
  18. package/dist/{command-BQB6QAdV.js.map → command-BM1HPkU5.js.map} +1 -1
  19. package/dist/{computer-connection-review-yYNuNX1a.js → computer-connection-review-CM6msJ85.js} +4 -4
  20. package/dist/{computer-connection-review-yYNuNX1a.js.map → computer-connection-review-CM6msJ85.js.map} +1 -1
  21. package/dist/{computer-disconnect-UOAmCtiI.js → computer-disconnect-B3uapSYV.js} +7 -7
  22. package/dist/{computer-disconnect-UOAmCtiI.js.map → computer-disconnect-B3uapSYV.js.map} +1 -1
  23. package/dist/{computer-setup-continuation-BdFs6apR.js → computer-setup-continuation-Dv7djzhi.js} +5 -5
  24. package/dist/{computer-setup-continuation-BdFs6apR.js.map → computer-setup-continuation-Dv7djzhi.js.map} +1 -1
  25. package/dist/{computer-update-wait-DH5BbLYF.js → computer-update-wait-ak_zmzkm.js} +4 -4
  26. package/dist/{computer-update-wait-DH5BbLYF.js.map → computer-update-wait-ak_zmzkm.js.map} +1 -1
  27. package/dist/{context-Dx9P5CHq.js → context-Dr1KyPnd.js} +5 -5
  28. package/dist/{context-Dx9P5CHq.js.map → context-Dr1KyPnd.js.map} +1 -1
  29. package/dist/{control-plane-B7LNDcqH.js → control-plane-ybtdmnjp.js} +2 -2
  30. package/dist/control-plane-ybtdmnjp.js.map +1 -0
  31. package/dist/{daemon-device-id-i0QISq4o.js → daemon-device-id-Be2uXs8_.js} +4 -4
  32. package/dist/{daemon-device-id-i0QISq4o.js.map → daemon-device-id-Be2uXs8_.js.map} +1 -1
  33. package/dist/{daemon-lifecycle-journal-S9C1zKIP.js → daemon-lifecycle-journal-BK9gpMeQ.js} +4 -4
  34. package/dist/{daemon-lifecycle-journal-S9C1zKIP.js.map → daemon-lifecycle-journal-BK9gpMeQ.js.map} +1 -1
  35. package/dist/{daemon-service-runtime-lQ4smdyX.js → daemon-service-runtime-DgNN9ohs.js} +2 -2
  36. package/dist/{daemon-service-runtime-lQ4smdyX.js.map → daemon-service-runtime-DgNN9ohs.js.map} +1 -1
  37. package/dist/{dispatch-owned-runtime-BeuqU7JS.js → dispatch-owned-runtime-CKiTJDZg.js} +10 -10
  38. package/dist/dispatch-owned-runtime-CKiTJDZg.js.map +1 -0
  39. package/dist/{dist-CzMcb_Ep.js → dist-BCWE8p_5.js} +2 -2
  40. package/dist/{dist-DIphcm0P.js → dist-C1UsG5Yt.js} +1 -1
  41. package/dist/dist-CSUn_LHA.js +34 -0
  42. package/dist/{dist-D_ChD876.js → dist-MZ3BDdeh.js} +10 -6
  43. package/dist/dist-MZ3BDdeh.js.map +1 -0
  44. package/dist/{dist-CLaPWoWc.js → dist-zSTmRrSr.js} +6 -4
  45. package/dist/dist-zSTmRrSr.js.map +1 -0
  46. package/dist/{dual-view-guide-catalog-D0WEUrka.js → dual-view-guide-catalog-Dx7ab8yN.js} +4 -4
  47. package/dist/{dual-view-guide-catalog-D0WEUrka.js.map → dual-view-guide-catalog-Dx7ab8yN.js.map} +1 -1
  48. package/dist/{elapsed-time-COPcqBjI.js → elapsed-time-XW9bQHob.js} +2 -2
  49. package/dist/{elapsed-time-COPcqBjI.js.map → elapsed-time-XW9bQHob.js.map} +1 -1
  50. package/dist/{entry-CLrtXzMs.js → entry-EmYnKORN.js} +8 -8
  51. package/dist/{entry-CLrtXzMs.js.map → entry-EmYnKORN.js.map} +1 -1
  52. package/dist/{installation-inventory-Dvq2sz6i.js → installation-inventory-ChgEdfBX.js} +3 -3
  53. package/dist/{installation-inventory-Dvq2sz6i.js.map → installation-inventory-ChgEdfBX.js.map} +1 -1
  54. package/dist/{installer-D58oCjAc.js → installer-BR72pMlZ.js} +2 -2
  55. package/dist/{installer-D58oCjAc.js.map → installer-BR72pMlZ.js.map} +1 -1
  56. package/dist/{meta-api-C-pP7ETc.js → meta-api-CYKo9Hug.js} +7 -7
  57. package/dist/{meta-api-C-pP7ETc.js.map → meta-api-CYKo9Hug.js.map} +1 -1
  58. package/dist/{openmeld-QBTcQJzc.js → openmeld-DAH4jfN9.js} +38 -38
  59. package/dist/{openmeld-QBTcQJzc.js.map → openmeld-DAH4jfN9.js.map} +1 -1
  60. package/dist/{openmeld-environment-target-jmK2YgeZ.js → openmeld-environment-target-DR4t4qHn.js} +2 -2
  61. package/dist/{openmeld-environment-target-jmK2YgeZ.js.map → openmeld-environment-target-DR4t4qHn.js.map} +1 -1
  62. package/dist/{openmeld-maintenance-worker-rbAcyw2z.js → openmeld-maintenance-worker-Dl4qb9TC.js} +9 -9
  63. package/dist/{openmeld-maintenance-worker-rbAcyw2z.js.map → openmeld-maintenance-worker-Dl4qb9TC.js.map} +1 -1
  64. package/dist/{openmeld-tools-update-coordinator-Jk4skjyz.js → openmeld-tools-update-coordinator-Dgrfu7KW.js} +14 -14
  65. package/dist/{openmeld-tools-update-coordinator-Jk4skjyz.js.map → openmeld-tools-update-coordinator-Dgrfu7KW.js.map} +1 -1
  66. package/dist/{openmeld-tools-update-join-BAExtMrp.js → openmeld-tools-update-join-CzvVNGj8.js} +2 -2
  67. package/dist/{openmeld-tools-update-join-BAExtMrp.js.map → openmeld-tools-update-join-CzvVNGj8.js.map} +1 -1
  68. package/dist/openmeld.js +5 -5
  69. package/dist/{prepare-provider-runtime-B2g66DKB.js → prepare-provider-runtime-CyTeHAY_.js} +45 -23
  70. package/dist/prepare-provider-runtime-CyTeHAY_.js.map +1 -0
  71. package/dist/{prepare-session-executor-B_j2BrcS.js → prepare-session-executor-BBdC3Qgv.js} +19 -19
  72. package/dist/{prepare-session-executor-B_j2BrcS.js.map → prepare-session-executor-BBdC3Qgv.js.map} +1 -1
  73. package/dist/{presenter-CfWueHEB.js → presenter-CRyQ8Ez-.js} +2 -2
  74. package/dist/{presenter-CfWueHEB.js.map → presenter-CRyQ8Ez-.js.map} +1 -1
  75. package/dist/{process-channel-F22yNYgh.js → process-channel-9JPzc6mj.js} +2 -2
  76. package/dist/{process-channel-F22yNYgh.js.map → process-channel-9JPzc6mj.js.map} +1 -1
  77. package/dist/{runtime-B_nYsjWd.js → runtime-JuUPhtxY.js} +21 -21
  78. package/dist/runtime-JuUPhtxY.js.map +1 -0
  79. package/dist/{runtime-agent-controller-reporting-submission-Fnk9TZkc.js → runtime-agent-controller-reporting-submission-D2mYVn9A.js} +7 -7
  80. package/dist/{runtime-agent-controller-reporting-submission-Fnk9TZkc.js.map → runtime-agent-controller-reporting-submission-D2mYVn9A.js.map} +1 -1
  81. package/dist/{runtime-transport-CzsmHWDa.js → runtime-transport-BL3oZs5F.js} +2 -2
  82. package/dist/{runtime-transport-CzsmHWDa.js.map → runtime-transport-BL3oZs5F.js.map} +1 -1
  83. package/dist/{sensitive-operation-credentials-CmDLTj46.js → sensitive-operation-credentials-BLefg0Rk.js} +3 -3
  84. package/dist/{sensitive-operation-credentials-CmDLTj46.js.map → sensitive-operation-credentials-BLefg0Rk.js.map} +1 -1
  85. package/dist/{service-BtkiSEXs.js → service-BQS5y24k.js} +26 -26
  86. package/dist/service-BQS5y24k.js.map +1 -0
  87. package/dist/{service-account-authorization-BeDfJWYF.js → service-account-authorization-BA0ijRyM.js} +3 -3
  88. package/dist/{service-account-authorization-BeDfJWYF.js.map → service-account-authorization-BA0ijRyM.js.map} +1 -1
  89. package/dist/{service-account-control-lhVjo2E4.js → service-account-control-5rqQm9j7.js} +9 -9
  90. package/dist/{service-account-control-lhVjo2E4.js.map → service-account-control-5rqQm9j7.js.map} +1 -1
  91. package/dist/{service-control-capabilities-CPDORS05.js → service-control-capabilities-BQ5Ya25z.js} +1 -1
  92. package/dist/{service-control-capabilities-ClBEQuoi.js → service-control-capabilities-qBpIEPQe.js} +3 -3
  93. package/dist/{service-control-capabilities-ClBEQuoi.js.map → service-control-capabilities-qBpIEPQe.js.map} +1 -1
  94. package/dist/{state-FsSTkJqn.js → state-ZhOfBPt0.js} +2 -2
  95. package/dist/{state-FsSTkJqn.js.map → state-ZhOfBPt0.js.map} +1 -1
  96. package/dist/{updates-api-Be7POGQi.js → updates-api-DOIu3AnY.js} +13 -13
  97. package/dist/{updates-api-Be7POGQi.js.map → updates-api-DOIu3AnY.js.map} +1 -1
  98. package/dist/{upgrade-GMJj3A5C.js → upgrade-BRt2avlQ.js} +10 -10
  99. package/dist/{upgrade-GMJj3A5C.js.map → upgrade-BRt2avlQ.js.map} +1 -1
  100. package/dist/upgrade-CUalCWZh.js +3 -0
  101. package/dist/windows/openmeld-windows-process.exe +0 -0
  102. package/package.json +8 -8
  103. package/dist/auth-session-Bp6aRtzm.js +0 -3
  104. package/dist/control-plane-B7LNDcqH.js.map +0 -1
  105. package/dist/dispatch-owned-runtime-BeuqU7JS.js.map +0 -1
  106. package/dist/dist-CLaPWoWc.js.map +0 -1
  107. package/dist/dist-D_ChD876.js.map +0 -1
  108. package/dist/dist-DzFCMYYy.js +0 -34
  109. package/dist/prepare-provider-runtime-B2g66DKB.js.map +0 -1
  110. package/dist/runtime-B_nYsjWd.js.map +0 -1
  111. package/dist/service-BtkiSEXs.js.map +0 -1
  112. package/dist/upgrade-BgV4BkJS.js +0 -3
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { F as resolveOpenMeldRootDir } from "./paths-De9xdA2h.js";
4
4
  import { a as readPendingDaemonServiceUpdate, i as readLastDaemonServiceUpdate } from "./daemon-service-update-state-W63dRzB9.js";
5
- import { r as requestLocalDaemonServiceUpdateReadiness } from "./client-6NxLAJ9r.js";
5
+ import { r as requestLocalDaemonServiceUpdateReadiness } from "./client-iqnaeeAE.js";
6
6
  import { a as readPendingOpenMeldToolsUpdateAttempt, i as readLastOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state-B3ctJz-T.js";
7
7
  import { i as resolvePersistedOpenMeldToolsUpdateFailure } from "./openmeld-tools-update-failure-tKmsDdeP.js";
8
8
  import { setTimeout } from "node:timers/promises";
@@ -121,4 +121,4 @@ async function readUpdateWorkReadiness(operation, input) {
121
121
  //#endregion
122
122
  export { resolveOpenMeldToolsUpdateOperationProjection as i, waitForExternalOpenMeldToolsUpdate as n, waitForOpenMeldToolsUpdateCompletion as r, resolveExternalOpenMeldToolsUpdate as t };
123
123
 
124
- //# sourceMappingURL=openmeld-tools-update-join-BAExtMrp.js.map
124
+ //# sourceMappingURL=openmeld-tools-update-join-CzvVNGj8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-tools-update-join-BAExtMrp.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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"}
1
+ {"version":3,"file":"openmeld-tools-update-join-CzvVNGj8.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":";;;;;;;;;AAiBA,MAAM,yBAAyB;AAO/B,eAAsB,oCACpB,YAAyC,CAAC,GAC1C,QAAQ,KAAK,IAAI,GAC6B;CAK9C,QAAO,MAJkB,8CACvB,WACA,KACF,EAAA,EACmB,aAAa;AAClC;AAEA,eAAsB,8CACpB,YAAyC,CAAC,GAC1C,QAAQ,KAAK,IAAI,GACuC;CACxD,MAAM,CAAC,gBAAgB,gBAAgB,MAAM,QAAQ,IAAI,CACvD,+BAA+B,SAAS,GACxC,sCAAsC,SAAS,CACjD,CAAC;CACD,IAAI,gBACF,OAAO,kBAAkB,cAAc;CAEzC,IAAI,cACF,OAAO,oBAAoB,YAAY;CAGzC,MAAM,CAAC,aAAa,aAAa,MAAM,QAAQ,IAAI,CACjD,4BAA4B,SAAS,GACrC,mCAAmC,SAAS,CAC9C,CAAC;CAUD,OATmB,CACjB,GAAI,cAAc,CAAC,kBAAkB,WAAW,CAAC,IAAI,CAAC,GACtD,GAAI,YAAY,CAAC,oBAAoB,SAAS,CAAC,IAAI,CAAC,CACtD,CAAC,CACE,QAAQ,cAAc,iBAAiB,UAAU,WAAW,KAAK,CAAC,CAAC,CACnE,MACE,GAAG,MACF,KAAK,MAAM,EAAE,UAAU,SAAS,IAAI,KAAK,MAAM,EAAE,UAAU,SAAS,CAE1D,CAAC,CAAC,MAAM;AAC1B;AAEA,SAAS,oBACP,SACwC;CAIxC,OAAO;EACL,aAHA,QAAQ,UAAU,UAAU,gBAC5B,QAAQ,UAAU,UAAU,aAGvB,2CAA2C,QAAQ,YAAY,KAChE,sBACA;EACJ,WAAW,QAAQ;CACrB;AACF;AAEA,SAAS,kBACP,KACwC;CACxC,OAAO;EACL,aACE,IAAI,UAAU,gBAAgB,IAAI,UAAU,aACxC,wCACA;EACN,WAAW;GACT,aAAa,IAAI;GACjB,OAAO,IAAI;GACX,eAAe,IAAI;GACnB,aAAa,IAAI;GACjB,GAAI,IAAI,mBACJ,EAAE,kBAAkB,IAAI,iBAAiB,IACzC,CAAC;GACL,GAAI,IAAI,uBACJ,EAAE,sBAAsB,IAAI,qBAAqB,IACjD,CAAC;GACL,eAAe,IAAI;GACnB,WAAW,IAAI;GACf,SAAS,IAAI;EACf;CACF;AACF;AAEA,SAAS,iBACP,WACA,OACS;CACT,IACE,UAAU,UAAU,aACpB,UAAU,UAAU,cACpB,UAAU,UAAU,cAEpB,OAAO;CAET,MAAM,cAAc,KAAK,MAAM,UAAU,SAAS;CAClD,OACE,OAAO,SAAS,WAAW,KAC3B,SAAS,eACT,QAAQ,eAAe;AAE3B;;;AC9GA,MAAM,uCAAuC;AAI7C,eAAsB,qCACpB,QAWI,CAAC,GACyC;CAC9C,IAAI,cAAc,MAAM,eAAe;CACvC,MAAM,mCAAmC;EACvC,8BAA8B;EAC9B,WAAW,MAAM;EACjB,gBAAgB,MAAM;EACtB,WAAW,OAAO,cAAc;GAC9B,IAAI,gBAAgB,QAAQ,gBAAgB,UAAU,aACpD,MAAM,IAAI,MACR,mBAAmB,YAAY,uDACjC;GAEF,cAAc,UAAU;GACxB,MAAM,MAAM,YAAY,SAAS;EACnC;EACA,eAAe,MAAM;CACvB,CAAC;CACD,MAAM,YAAY,MAAM,oCAAoC;CAC5D,IACE,gBAAgB,SACf,WAAW,gBAAgB,eAAe,UAAU,UAAU,YAE/D,MAAM,IAAI,MACR,mBAAmB,YAAY,gCAAgC,WAAW,SAAS,kCAAkC,GACvH;CAEF,OAAO;AACT;AAEA,eAAsB,mCACpB,QAGI,CAAC,GACyC;CAI9C,MAAM,eAAe,MAAM,sCAAsC,KAAK;CACtE,MAAM,aAAa,MAAM,+BAA+B,KAAK;CAC7D,IACE,cACA,WAAW,WAAW,MAAM,sBAAsB,SAClD,EAAE,MAAM,gCAAgC,WAAW,UAAU,YAE7D,OAAO;EACL,aAAa,WAAW;EACxB,OAAO,WAAW;EAClB,eAAe,WAAW;EAC1B,aAAa,WAAW;EACxB,GAAI,WAAW,mBACX,EAAE,kBAAkB,WAAW,iBAAiB,IAChD,CAAC;EACL,GAAI,WAAW,uBACX,EAAE,sBAAsB,WAAW,qBAAqB,IACxD,CAAC;EACL,eAAe,WAAW;EAC1B,WAAW,WAAW;EACtB,SAAS,WAAW;CACtB;CAEF,IACE,gBACA,aAAa,UAAU,iBAAiB,MAAM,sBAAsB,OAEpE,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,eAAsB,mCACpB,QAaI,CAAC,GACU;CACf,IAAI,oBAAmC;CACvC,MAAM,WAAW,KAAK,IAAI,KAAK,MAAM,aAAa,OAAO;CACzD,IAAI,iBAAgC;CACpC,OAAO,MAAM;EACX,MAAM,YAAY,MAAM,mCAAmC,KAAK;EAChE,IAAI,CAAC,WACH;EAEF,8BAA8B,QAAQ;EACtC,IAAI,MAAM,eAAe;GAKvB,MAAM,YAAY,MAAM,wBAAwB,WAAW,KAAK;GAChE,MAAM,cAAc,WAAW,SAAS;EAC1C;EACA,IAAI,MAAM,uBAAuB,KAAA,GAAW;GAC1C,MAAM,UAAU,MAAM,sCAAsC,KAAK;GACjE,IACE,SAAS,UAAU,gBAAgB,UAAU,eAC7C,QAAQ,aAAa,GACrB;IACA,mBAAmB,KAAK,IAAI;IAC5B,IAAI,KAAK,IAAI,IAAI,kBAAkB,MAAM,oBACvC,MAAM,IAAI,MACR,yHACF;GAEJ,OACE,iBAAiB;EAErB;EACA,MAAM,iBAAiB,GAAG,UAAU,YAAY,GAAG,UAAU;EAC7D,IAAI,sBAAsB,gBAAgB;GACxC,oBAAoB;GACpB,MAAM,MAAM,YAAY,SAAS;EACnC;EACA,MAAMA,WACJ,KAAK,IAAI,GAAG,MAAM,kBAAkB,oCAAoC,CAC1E;CACF;AACF;AAEA,SAAS,8BAA8B,UAAwB;CAC7D,IAAI,KAAK,IAAI,KAAK,UAChB,MAAM,IAAI,MACR,4IACF;AAEJ;AAEA,eAAe,wBACb,WACA,OACA;CAGA,IAAI,uBAAuB,KAAK,MAAM,uBAAuB,GAC3D,OAAO;CAET,MAAM,UAAU,MAAM,+BAA+B,KAAK;CAC1D,IACE,SAAS,UAAU,UAAU,eAC5B,QAAQ,UAAU,cAAc,QAAQ,UAAU,oBAEnD,OAAO;CAET,OAAO,MAAM,yCAAyC,EACpD,WAAW,IACb,CAAC,CAAC,CAAC,YAAY,IAAI;AACrB"}
package/dist/openmeld.js CHANGED
@@ -28,7 +28,7 @@ if (process.argv.includes("--openmeld-windows-task")) {
28
28
  const args = process.argv.slice(2);
29
29
  if (args.length === 3 && args[0] === "service" && args[1] === "execution-host") {
30
30
  try {
31
- const { runExecutionHost } = await import("./entry-CLrtXzMs.js");
31
+ const { runExecutionHost } = await import("./entry-EmYnKORN.js");
32
32
  const hostInstanceId = args[2];
33
33
  if (!hostInstanceId) throw new Error("The Host incarnation is required.");
34
34
  await runExecutionHost(hostInstanceId);
@@ -38,7 +38,7 @@ if (args.length === 3 && args[0] === "service" && args[1] === "execution-host")
38
38
  if (process.connected) process.disconnect();
39
39
  }
40
40
  try {
41
- const { terminateLiveAgentControllerProcesses } = await import("./dist-CzMcb_Ep.js");
41
+ const { terminateLiveAgentControllerProcesses } = await import("./dist-BCWE8p_5.js");
42
42
  await terminateLiveAgentControllerProcesses();
43
43
  } catch (error) {
44
44
  console.error("[openmeld.execution_host.probe_cleanup_failed]", error);
@@ -48,14 +48,14 @@ if (args.length === 3 && args[0] === "service" && args[1] === "execution-host")
48
48
  })));
49
49
  process.exit();
50
50
  } else if (args.length === 2 && args[0] === "service" && args[1] === "update-worker") try {
51
- const { runOpenMeldMaintenanceWorker } = await import("./openmeld-maintenance-worker-rbAcyw2z.js");
51
+ const { runOpenMeldMaintenanceWorker } = await import("./openmeld-maintenance-worker-Dl4qb9TC.js");
52
52
  await runOpenMeldMaintenanceWorker();
53
53
  } catch (error) {
54
54
  console.error("[openmeld.maintenance.failed]", error);
55
55
  process.exitCode = 1;
56
56
  }
57
57
  else if (args.length === 1 && (args[0] === "maintenance-upgrade" || args[0] === "maintenance-align-service")) try {
58
- const { runMaintenanceUpgrade } = await import("./upgrade-BgV4BkJS.js");
58
+ const { runMaintenanceUpgrade } = await import("./upgrade-CUalCWZh.js");
59
59
  await runMaintenanceUpgrade(args[0] === "maintenance-align-service");
60
60
  } catch (error) {
61
61
  try {
@@ -65,7 +65,7 @@ else if (args.length === 1 && (args[0] === "maintenance-upgrade" || args[0] ===
65
65
  console.error("[openmeld.maintenance.upgrade_failed]", error);
66
66
  process.exitCode = 1;
67
67
  }
68
- else await import("./openmeld-QBTcQJzc.js");
68
+ else await import("./openmeld-DAH4jfN9.js");
69
69
  //#endregion
70
70
  export {};
71
71
 
@@ -5,22 +5,22 @@ import { C as updateConfiguredDeviceRuntimeState, T as updateConfiguredSkillsCon
5
5
  import { F as resolveOpenMeldRootDir, P as resolveOpenMeldEnvPreset, a as accountProfileWorkspacePath, b as normalizeOpenMeldProfileId, c as deviceOpenClawProfileBootstrapPath, h as isPublishedOpenMeldHome, l as deviceOpenClawProfileDir, n as accountProfileLocalMetaPath, u as deviceOpenClawProfileWorkspaceDir } from "./paths-De9xdA2h.js";
6
6
  import { Ca as profileWorkspaceModeSchema, Hr as agentControllerCollaborationModeSchema, Jr as HOSTED_REMOTE_AGENT_CONTROLLER_REF, Kr as HOSTED_CENTER_AGENT_CONTROLLER_REF, Vr as agentControllerPermissionModeSchema, Zr as canonicalizeAgentControllerRef, ei as normalizeKnownBuiltinAgentControllerId, ga as normalizeOptionalWorkingDirectory, lt as daemonServiceLaneSchema, ma as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, qr as HOSTED_CENTER_AGENT_CONTROLLER_REF_ID, ti as parseAgentControllerRef$1, wa as profileWorkspaceOriginSchema } from "./dist-Dsr-v0H_.js";
7
7
  import { Dn as profileFolderIdSchema, En as profileFolderDisplayNameSchema, d as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema } from "./task-result-Cft38W1I.js";
8
- import { Fh as modelCatalogSchema, Gt as createAgentProfileBindingApi, ln as createLocalRuntimeExpectedRoutesApi, t as OpenMeldApiClientHttpError } from "./dist-D_ChD876.js";
9
- import { Pa as resolveCommandAgentWorkActivity, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH } from "./runtime-transport-CzsmHWDa.js";
8
+ import { Fh as modelCatalogSchema, Gt as createAgentProfileBindingApi, ln as createLocalRuntimeExpectedRoutesApi, t as OpenMeldApiClientHttpError } from "./dist-MZ3BDdeh.js";
9
+ import { Pa as resolveCommandAgentWorkActivity, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH } from "./runtime-transport-BL3oZs5F.js";
10
10
  import { l as runtimeTransportModeSchema } from "./controller-contract-Cq54h7mm.js";
11
11
  import { n as conversationExecutionStateSchema } from "./conversation-execution-state-BFEFGG1r.js";
12
- import { it as providerDispatchRuntimeContextSchema } from "./control-plane-B7LNDcqH.js";
13
- import { H as agentExecutionSteerRequestSchema, V as daemonRouteCatalogCacheSchema, _ as toErrorMessage$17, d as normalizeText$10, g as parseTransportMode$1, h as parseStreamingMode$1, m as parseRuntimeTransportMode, p as parseContextIdMappingSpec, s as emitRunLine, u as normalizeOptionalText$42, z as DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME } from "./daemon-device-id-i0QISq4o.js";
12
+ import { it as providerDispatchRuntimeContextSchema } from "./control-plane-ybtdmnjp.js";
13
+ import { H as agentExecutionSteerRequestSchema, V as daemonRouteCatalogCacheSchema, _ as toErrorMessage$17, d as normalizeText$10, g as parseTransportMode$1, h as parseStreamingMode$1, m as parseRuntimeTransportMode, p as parseContextIdMappingSpec, s as emitRunLine, u as normalizeOptionalText$42, z as DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME } from "./daemon-device-id-Be2uXs8_.js";
14
14
  import { a as resolveWindowsPowerShellPath, n as powerShellEncodedArguments } from "./windows-system-DsNqYvVr.js";
15
- import { X as OPENCLAW_CLI_TIMEOUT_MS$1, d as getAuthSessionState } from "./auth-session-CZyzuPIi.js";
15
+ import { X as OPENCLAW_CLI_TIMEOUT_MS$1, d as getAuthSessionState } from "./auth-session-DYDO5gN9.js";
16
16
  import { a as isOpenMeldOrphanedLockError, d as runWithHeldLock, i as isOpenMeldLockError, t as acquireLock } from "./lock-DP8d33p_.js";
17
17
  import { r as isProcessIdentityAlive, t as CURRENT_PROCESS_START_IDENTITY } from "./process-identity-DsKKbftl.js";
18
- import { F as resolveCurrentOpenMeldAccountContext, _ as touchDaemonCatalogSyncSignal, d as listOpenMeldProfiles } from "./context-Dx9P5CHq.js";
18
+ import { F as resolveCurrentOpenMeldAccountContext, _ as touchDaemonCatalogSyncSignal, d as listOpenMeldProfiles } from "./context-Dr1KyPnd.js";
19
19
  import { n as writeDaemonLocalStateFile, t as readDaemonLocalStateFile } from "./daemon-local-state-file-jOXuXrky.js";
20
20
  import { m as daemonRuntimeDataPath } from "./daemon-state-C1LbGczX.js";
21
- import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-HEsvF4KD.js";
21
+ import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-Dp3dg6qn.js";
22
22
  import { i as readDaemonServiceContract } from "./daemon-service-contract-CDgkiQ5e.js";
23
- import { o as requestLocalSyncRouteCatalog } from "./client-6NxLAJ9r.js";
23
+ import { o as requestLocalSyncRouteCatalog } from "./client-iqnaeeAE.js";
24
24
  import { r as resolvePlatformCommand, t as execPlatformFile } from "./process-launch-B0pHlkV_.js";
25
25
  import { $ as createProviderOriginalError, A as resolveExecutableOnPath, B as CliDriverError, C as buildAdapterAgentControllerConversationRef, D as buildCliLaunchInvocation, E as AcpProcessSession, F as resolveInstalledNodeScriptLaunchContract, H as createAgentControllerProcessDiscoveryDiagnosticAggregator, I as resolveLaunchCandidatesAfterVerification, K as resolveAgentControllerProcessSignalId, L as resolveSiblingCommandPath, M as resolveInstalledCommandPath, O as buildExecutableLaunchContract, P as resolveInstalledNodeScriptLaunchCandidates, R as verifyCliLaunchContract, S as bridgeAgentControllerConversationRef, T as resolveBuiltinAdapterConversationBridgeSpec, U as listAgentControllerDescendantProcessIds, V as runCliDriver, W as listAgentControllerSupervisedProcessIds, X as spawnAgentControllerProcess, Y as signalAgentControllerProcessTree, _ as OPENMELD_SPACE_ACTION_MCP_SERVER_ID, b as buildDispatchSpaceActionMcpToolIds, d as resolveAdapterAgentContext, h as looksLikeRuntimePermissionDenialMessage, k as materializeCliLaunchCommand, l as invokeWithSingleContextHeal, m as classifyRuntimePermissionDenialMessage, nt as isDispatchSpaceActionDeliveryOnly, o as createSharedControlShell, r as buildInterruptPlan, s as createSharedDispatchShell, tt as describeDispatchSpaceTools, u as readAdapterAiUsageObservation, v as OPENMELD_SPACE_ACTION_MCP_TOOL_NAMES, x as resolveDispatchSpaceActionMcpServer, y as buildAcpDispatchSpaceActionMcpServers, z as verifyLaunchContractFiles } from "./dist-Cdj9kcbj.js";
26
26
  import { createRequire } from "node:module";
@@ -10039,14 +10039,18 @@ async function verifyCodexAppServerThread(input) {
10039
10039
  env: input.env,
10040
10040
  launchContract: input.launchContract
10041
10041
  }, async (session) => {
10042
- return { threadId: readThreadIdFromResponse(await session.requestControl("thread/resume", {
10043
- cwd: input.codexWorkdir,
10044
- excludeTurns: true,
10042
+ if (readThreadIdFromResponse(await session.requestControl("thread/read", {
10043
+ includeTurns: false,
10045
10044
  threadId
10046
10045
  }, {
10047
- code: "context.resume_timeout",
10048
- operation: "thread/resume"
10049
- })) };
10046
+ code: "context.read_timeout",
10047
+ operation: "thread/read"
10048
+ })) !== threadId) throw new CodexAppServerTransportError({
10049
+ code: "context.thread_mismatch",
10050
+ errorType: "config",
10051
+ message: "Codex returned a different thread for the conversation check."
10052
+ });
10053
+ return { threadId };
10050
10054
  });
10051
10055
  }
10052
10056
  async function resolveCodexAppServerCompletedTurn(input) {
@@ -11455,11 +11459,12 @@ async function resolveCommandApprovalInteraction(input) {
11455
11459
  const params = toRecord$7(input.params) ?? {};
11456
11460
  const command = normalizeBoundedText$3(input.legacy && Array.isArray(params.command) ? params.command.map(String).join(" ") : params.command, 16e3) ?? "Command details were not provided.";
11457
11461
  const cwd = normalizeBoundedText$3(params.cwd, 4096);
11458
- const mappedOptions = (input.legacy ? [
11462
+ const decisions = input.legacy ? [
11459
11463
  "approved",
11460
11464
  "approved_for_session",
11461
11465
  "denied"
11462
- ] : resolveCommandApprovalDecisions(params.availableDecisions)).map((decision, index) => {
11466
+ ] : resolveCommandApprovalDecisions(params);
11467
+ const mappedOptions = decisions.map((decision, index) => {
11463
11468
  const presentation = presentCommandApprovalDecision(decision);
11464
11469
  return presentation ? {
11465
11470
  decision,
@@ -11478,8 +11483,9 @@ async function resolveCommandApprovalInteraction(input) {
11478
11483
  optionId: "codex-command-decision-deny"
11479
11484
  }
11480
11485
  }];
11486
+ const description = describeCommandApproval(params.reason, decisions);
11481
11487
  const response = await input.onInteractionRequest({
11482
- ...normalizeBoundedText$3(params.reason, 4e3) ? { description: normalizeBoundedText$3(params.reason, 4e3) } : {},
11488
+ ...description ? { description } : {},
11483
11489
  kind: "permission",
11484
11490
  options: options.map(({ option }) => option),
11485
11491
  subject: {
@@ -11494,14 +11500,30 @@ async function resolveCommandApprovalInteraction(input) {
11494
11500
  if (selected) return { decision: input.legacy && selected.decision === "denied" ? { denied: { rejection: "Denied by the user." } } : selected.decision };
11495
11501
  return { decision: input.legacy ? { denied: { rejection: "Denied by the user." } } : "decline" };
11496
11502
  }
11497
- function resolveCommandApprovalDecisions(value) {
11498
- if (Array.isArray(value) && value.length > 0) return value;
11499
- return [
11503
+ function resolveCommandApprovalDecisions(params) {
11504
+ const amendment = readExecpolicyAmendment(params.proposedExecpolicyAmendment);
11505
+ const decisions = Array.isArray(params.availableDecisions) ? params.availableDecisions : [
11500
11506
  "accept",
11501
11507
  "acceptForSession",
11508
+ ...amendment ? [{ acceptWithExecpolicyAmendment: { execpolicy_amendment: amendment } }] : [],
11502
11509
  "decline",
11503
11510
  "cancel"
11504
11511
  ];
11512
+ return readCommandApprovalRuleScope(decisions).length > 2400 ? decisions.filter((decision) => !toRecord$7(decision)?.acceptWithExecpolicyAmendment) : decisions;
11513
+ }
11514
+ function readExecpolicyAmendment(value) {
11515
+ return Array.isArray(value) && value.length > 0 && value.every((token) => typeof token === "string") && typeof value[0] === "string" && value[0].trim().length > 0 ? value : null;
11516
+ }
11517
+ function readCommandApprovalRuleScope(decisions) {
11518
+ return decisions.flatMap((decision) => {
11519
+ const amendment = readExecpolicyAmendment(toRecord$7(toRecord$7(decision)?.acceptWithExecpolicyAmendment)?.execpolicy_amendment);
11520
+ return amendment ? [JSON.stringify(amendment)] : [];
11521
+ }).join("; ");
11522
+ }
11523
+ function describeCommandApproval(reason, decisions) {
11524
+ const scope = readCommandApprovalRuleScope(decisions);
11525
+ if (!scope) return normalizeBoundedText$3(reason, 4e3);
11526
+ return [normalizeBoundedText$3(reason, 1e3), `Allow matching commands asks Codex to save the exact command prefix: ${scope}. It does not cover every command with a similar purpose; other prefixes or stricter policies may still need approval.`].filter(Boolean).join("\n\n");
11505
11527
  }
11506
11528
  function presentCommandApprovalDecision(decision) {
11507
11529
  if (decision === "accept" || decision === "approved") return {
@@ -30835,9 +30857,9 @@ function createModelCatalogReadSession(input) {
30835
30857
  async function readModelCatalogOnce(baseUrl) {
30836
30858
  try {
30837
30859
  const [apiClient, baseUrlModule, clientFoundationModule] = await Promise.all([
30838
- import("./dist-DIphcm0P.js"),
30860
+ import("./dist-C1UsG5Yt.js"),
30839
30861
  import("./base-url-D-8k5GDw.js"),
30840
- import("./api-client-foundation-Brg4u2d7.js")
30862
+ import("./api-client-foundation-GJkHzahS.js")
30841
30863
  ]);
30842
30864
  if (typeof apiClient.createConfigApi !== "function") throw new Error("config api client is unavailable");
30843
30865
  const resolvedBaseUrl = baseUrl ?? await baseUrlModule.resolveBaseUrl();
@@ -32907,4 +32929,4 @@ async function prepareProviderRuntime(input, options = {}) {
32907
32929
  //#endregion
32908
32930
  export { bindProject as $, projectCodexUsageObservation as $n, BUILTIN_AGENT_CONTROLLER_DISPLAY_ORDER as $r, repairBuiltinControllerInstall as $t, resolveCurrentEffectiveProfileWorkingFolderRuntime as A, buildAgentContextLookupKey as An, resolveAgentExecutionStatus as Ar, listAgentTargetStates as At, readProfileFolderListForAccount as B, resolveInstalledGrokBuildLaunchCandidates as Bn, classifyCliDriverTimeoutFailure as Br, updateAgentRegistrations as Bt, syncDaemonRouteCatalogState as C, loadLedgerState as Cn, peopleComputerContainsDevice as Cr, createPrimaryBindingReadSession as Ct, resolveLocalRuntimeControllerSupport as D, upsertConversationExecutionState as Dn, renderTaskKnowledgeIndex as Dr, createRegistrationFromCatalogTarget as Dt, resolveLocalController as E, seedLegacyAgentContext as En, renderNonOwnerAudiencePathGuidance as Er, addAgentCustomTarget as Et, defaultProfileFolderDisplayName as F, forkOpenCodeServerSession as Fn, supportsExecutionContextSelection as Fr, registerUnselectedBuiltinAgentsTurnedOff as Ft, resolveConfiguredProfileWorkspacePathForAccount as G, supportsGrokBotSetup as Gn, resolveAdapterToolWorkActivity as Gr, resolveRegistryOriginLaunchCommand as Gt, readProfileWorkspaceConfigForAccount as H, isManagedGrokBotSignedIn as Hn, createUnsupportedProviderUsageLimits as Hr, detectInstalledSkillsAgents as Ht, ensureOpenMeldManagedProfileWorkspace as I, readOpenCode2Inventory as In, supportsSpaceWorkHandoff as Ir, removeAgentCustomTarget as It, validateCustomProfileWorkspacePath as J, resolveInstalledCodexLaunchCandidates as Jn, grokBotConversationIdSchema as Jr, notifyDaemonRouteCatalogChanged as Jt, setCustomProfileWorkspace as K, projectCursorUsageLimits as Kn, DaemonServiceRunError as Kr, resolveRegistryRuntimeAdapterCapabilitySnapshot as Kt, mutateProfileFolderListForAccount as L, resolveInstalledOpenCodeLaunchCandidates as Ln, checkAntigravityAcpAccount as Lr, resolveAgentTargetState as Lt, resolveProfileWorkspaceRuntime as M, createLocalAdapterEntries as Mn, resolveEvidenceSyncHealth as Mr, readAgentRuntimeConfigHealth as Mt, OPENMELD_MANAGED_FOLDER_DISPLAY_NAME as N, parseOpenRouterUsageResponse as Nn, resolveNativeAgentControllerPermissionModeForController as Nr, reconcileNewRunnableBuiltinAgentRegistrations as Nt, syncProfileWorkspaceState as O, withLedgerStateTransaction as On, renderWorkingLanguagePrompt as Or, listAgentCustomTargets as Ot, ProfileFolderListLimitError as P, parseOpenCodeGoUsageResponse as Pn, resolveSelectableCandidates as Pr, reconcileNewRunnableBuiltinAgentsForSetup as Pt, ProjectBindingStoreUpdateRequiredError as Q, verifyCodexAppServerThread as Qn, BUILTIN_AGENT_CONTROLLER_BRANDS as Qr, sortAgentRegistrations as Qt, nextProfileFolderRevision as R, GrokBuildAcpTransportError as Rn, isAntigravityAcpLaunchContract as Rr, setAgentRegistrationEnabled as Rt, summarizeSkippedDaemonProfiles as S, commitResolvedAgentContext as Sn, parseAgentControllerRef as Sr, emitReconcileStartedEvidence as St, readLocalEnabledControllers as T, resolveConversationExecutionStateByLookupKey as Tn, renderInformationProtectionPrompt as Tr, resolveAgentProfilePrimaryAgentControllerReport as Tt, readSavedProfileWorkspaceForAccount as U, loginManagedGrokBot as Un, createAcpToolActivityTracker as Ur, resolveSkillsAgentRegistry as Ut, readProfileWorkspaceConfig as V, installGrokBotTools as Vn, createUnavailableProviderUsageLimits as Vr, canManageRegistryAgentSkillTargets as Vt, resolveConfiguredProfileWorkspacePath as W, readManagedGrokBotCandidate as Wn, resolveAdapterToolActivityName as Wr, listBuiltinAgentsRegistryEntries as Wt, validateCustomProfileWorkspacePath$1 as X, probeCodexAppServerAccount as Xn, grokBotMessageReceiptSchema as Xr, normalizeAgentIds as Xt, describeProfileWorkspacePathValidationFailure as Y, forkCodexAppServerThread as Yn, grokBotEntriesSchema as Yr, normalizeAgentId as Yt, ProjectBindingOperationError as Z, resolveCodexAppServerCompletedTurn as Zn, grokBotStoredCredentialSchema as Zr, parseAgentEnabledOption as Zt, writeDaemonRouteCatalogCache as _, resolveCompatibleAgentContextMatch as _n, getAgentControllerPermissionModeFieldLabel as _r, withAgentActivityLocalStateLock as _t, buildOpenClawSpaceSessionKey as a, isPnpmGlobalCommandPath as an, resolveInstalledClaudeCodeLaunchCandidates as ar, migrateProjectBindingStore as at, createRouteCatalogFromMutableState as b, runRuntimeTask as bn, isAgentExecutionReadyOrConnecting as br, emitDriftDetectedEvidence as bt, slugifyOpenClawNamePart as c, createLocalTaskInterruptSender as cn, areAgentControllerInterfaceAccountsSame as cr, removeProjectConnection as ct, matchesExpectedWorkspace as d, MIN_HEARTBEAT_INTERVAL_MS as dn, buildWorkingLanguagePromptPlan as dr, setDefaultProjectConnection as dt, compareAgentControllerRefsForDisplay as ei, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as en, readCodexAccountUsageObservation as er, claimLegacyProjectConnection as et, resolveOpenClawAuthStatus as f, applyAcceptedLeases as fn, compareAgentControllerVersions as fr, unbindProject as ft, readDaemonRouteCatalogCache as g, resolveCatalogSyncIntervalMs as gn, getAgentControllerPermissionModeDisplayMetadata as gr, withAgentActivityDeliveryLock as gt, resolveOpenClawLocalBootstrapPaths as h, resolveAdaptiveHeartbeatIntervalMs as hn, createAuthorityOpenMeldServiceRuntimeId as hr, resolveLocalProjectConnectionForPath as ht, listOpenClawGatewayAgents as i, isNpmGlobalCommandPath as in, updateClaudeNativeInstallation as ir, listProjectConnectionsWithStatus as it, resolveEffectiveProfileWorkingFolderRuntime as j, createLocalAdapterContainer as jn, resolveAgentProfileEditCapabilities as jr, manageAgentRegistrationInstallation as jt, createModelCatalogReadSession as k, assertLegacyAgentContextAssociation as kn, resolveAgentControllerPermissionModeForController as kr, listAgentRegistrations as kt, findOpenClawAgentById as l, ADAPTIVE_HEARTBEAT_JITTER_RATIO as ln, buildAgentControllerRef as lr, resolveProjectBindingForPath as lt, readOpenClawLocalBootstrapState as m, pruneStaleLeases as mn, createAgentExecutionStatusDisplayRows as mr, isProjectConnectionReadableByOwner as mt, fetchOpenClawGatewayHealth as n, resolveBuiltinAgentControllerBrand as ni, isBunGlobalCommandPath as nn, readClaudeNativeVersion as nr, isProjectBound as nt, buildOpenClawWakeSessionKey as o, resolveLocalRegistryAgentIdFromAgentControllerRef as on, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as or, removeAgentActivityBindingsWhileDeliveryLocked as ot, resolveOpenClawProviderRuntimeWorkingDirectory as p, applyIntervalJitterMs as pn, createAgentControllerInterfaceDisplayRows as pr, canonicalizeLocalProjectPath as pt, setOpenMeldManagedProfileWorkspace as q, resolveCodexTimeoutMs as qn, grokBotAccountSchema as qr, resolveRegistryRuntimeAdapterContractByAgentControllerRef as qt, listOpenClawAgents as r, isHomebrewCommandPath as rn, resolveClaudeNativeUpdateCommand as rr, listProjectBindings as rt, normalizeOpenClawSpaceIdPrefix as s, resolveRouteRegistrationReconcileDecision as sn, TASK_KNOWLEDGE_GUIDANCE as sr, removeMissingProjectConnections as st, prepareProviderRuntime as t, isBuiltinAgentControllerBrandId as ti, resolveBuiltinAgentControllerDefinition as tn, probeClaudeCodeUsageLimits as tr, hasProjectBindingForPath as tt, findOpenClawAgentsByWorkspace as u, MAX_HEARTBEAT_INTERVAL_MS as un, buildInformationProtectionPromptPlan as ur, runIfAgentActivityBindingGenerationIsCurrent as ut, loadDaemonRouteCatalog as v, resolveCompatibleConversationExecutionState as vn, isAgentControllerUsageAccountUnavailable as vr, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as vt, buildRuntimeRouteTargets as w, removeConversationExecutionState as wn, projectPeopleComputersToLegacyLocalRuntimes as wr, createExpectedRoutesReadSession as wt, replaceMutableRouteCatalogState as x, buildRuntimeWorkspaceFingerprint as xn, listAgentControllerPermissionModeOptions as xr, emitReconcileCompletedEvidence as xt, createMutableRouteCatalogState as y, resolveLatestScopedConversationExecutionState as yn, isAgentControllerUsageRefreshUnavailable as yr, syncDeviceRuntimeStateProjection as yt, normalizeCustomProfileWorkspacePath as z, probeGrokBuildAcpInterface as zn, buildProviderExitError as zr, updateAgentCustomTarget as zt };
32909
32931
 
32910
- //# sourceMappingURL=prepare-provider-runtime-B2g66DKB.js.map
32932
+ //# sourceMappingURL=prepare-provider-runtime-CyTeHAY_.js.map