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.
Files changed (120) hide show
  1. package/dist/{add-me-membership-CCs8sUQS.js → add-me-membership-CM0Z3OIU.js} +2 -2
  2. package/dist/{add-me-membership-CCs8sUQS.js.map → add-me-membership-CM0Z3OIU.js.map} +1 -1
  3. package/dist/{agents-Ow9keQaE.js → agents-DMy2nQul.js} +9 -9
  4. package/dist/{agents-Ow9keQaE.js.map → agents-DMy2nQul.js.map} +1 -1
  5. package/dist/{api-client-foundation-D4qt8-I7.js → api-client-foundation-CRQZIYVN.js} +5 -5
  6. package/dist/{api-client-foundation-D4qt8-I7.js.map → api-client-foundation-CRQZIYVN.js.map} +1 -1
  7. package/dist/{api-client-foundation-f11_Z91X.js → api-client-foundation-DcWfF50S.js} +1 -1
  8. package/dist/{auth-session-GYsWoDuJ.js → auth-session-QFK36vfX.js} +2 -2
  9. package/dist/{auth-session-GYsWoDuJ.js.map → auth-session-QFK36vfX.js.map} +1 -1
  10. package/dist/auth-session-WM8aC6bg.js +3 -0
  11. package/dist/{channel-DfaHRitM.js → channel-D1NKTdY0.js} +3 -3
  12. package/dist/{channel-DfaHRitM.js.map → channel-D1NKTdY0.js.map} +1 -1
  13. package/dist/{cli-binary-manifest-t_TXQ6-t.js → cli-binary-manifest-DhSiC1mr.js} +2 -2
  14. package/dist/{cli-binary-manifest-t_TXQ6-t.js.map → cli-binary-manifest-DhSiC1mr.js.map} +1 -1
  15. package/dist/{cloud-computer-KEqLjDMV.js → cloud-computer-BXo_qq3t.js} +5 -5
  16. package/dist/{cloud-computer-KEqLjDMV.js.map → cloud-computer-BXo_qq3t.js.map} +1 -1
  17. package/dist/{command-Bjok_ELo.js → command-BzMRuqeP.js} +17 -17
  18. package/dist/{command-Bjok_ELo.js.map → command-BzMRuqeP.js.map} +1 -1
  19. package/dist/{computer-connection-review-EUXp_Wi8.js → computer-connection-review-DKKoSgNl.js} +4 -4
  20. package/dist/{computer-connection-review-EUXp_Wi8.js.map → computer-connection-review-DKKoSgNl.js.map} +1 -1
  21. package/dist/{computer-disconnect-BkFLO8pE.js → computer-disconnect-Cd6qNdlo.js} +7 -7
  22. package/dist/{computer-disconnect-BkFLO8pE.js.map → computer-disconnect-Cd6qNdlo.js.map} +1 -1
  23. package/dist/{computer-setup-continuation-twvv8WGB.js → computer-setup-continuation-DEi94Jzc.js} +5 -5
  24. package/dist/{computer-setup-continuation-twvv8WGB.js.map → computer-setup-continuation-DEi94Jzc.js.map} +1 -1
  25. package/dist/{computer-update-wait-CAvCeH6l.js → computer-update-wait-D4ly51hV.js} +4 -4
  26. package/dist/{computer-update-wait-CAvCeH6l.js.map → computer-update-wait-D4ly51hV.js.map} +1 -1
  27. package/dist/{context-CPKBlAps.js → context-DqEUJy_k.js} +5 -5
  28. package/dist/{context-CPKBlAps.js.map → context-DqEUJy_k.js.map} +1 -1
  29. package/dist/{daemon-device-id-B-iuoFzM.js → daemon-device-id-DLKuN3Eo.js} +3 -3
  30. package/dist/{daemon-device-id-B-iuoFzM.js.map → daemon-device-id-DLKuN3Eo.js.map} +1 -1
  31. package/dist/{daemon-lifecycle-journal-ywEIaUn3.js → daemon-lifecycle-journal-D1dCp8bJ.js} +3 -3
  32. package/dist/{daemon-lifecycle-journal-ywEIaUn3.js.map → daemon-lifecycle-journal-D1dCp8bJ.js.map} +1 -1
  33. package/dist/{daemon-service-runtime-Dg8V-t-u.js → daemon-service-runtime-C1o0PjSJ.js} +90 -6
  34. package/dist/daemon-service-runtime-C1o0PjSJ.js.map +1 -0
  35. package/dist/{daemon-service-update-state-BclTmkAC.js → daemon-service-update-state-CtzTzni1.js} +2 -2
  36. package/dist/{daemon-service-update-state-BclTmkAC.js.map → daemon-service-update-state-CtzTzni1.js.map} +1 -1
  37. package/dist/{dispatch-owned-runtime-DlpQwB6N.js → dispatch-owned-runtime-B6VEu6Ak.js} +10 -10
  38. package/dist/{dispatch-owned-runtime-DlpQwB6N.js.map → dispatch-owned-runtime-B6VEu6Ak.js.map} +1 -1
  39. package/dist/dist-CQRhcL_T.js +34 -0
  40. package/dist/{dist-BA8Q1IB5.js → dist-DUg7lB-e.js} +1 -1
  41. package/dist/{dist-B08nRCGz.js → dist-DsyrZzyU.js} +5 -5
  42. package/dist/{dist-B08nRCGz.js.map → dist-DsyrZzyU.js.map} +1 -1
  43. package/dist/{dist-W42Tu_IN.js → dist-WejKqo8X.js} +2 -2
  44. package/dist/{dist-D_FzuWN-.js → dist-zY7dD_tQ.js} +2 -2
  45. package/dist/{dist-D_FzuWN-.js.map → dist-zY7dD_tQ.js.map} +1 -1
  46. package/dist/{dual-view-guide-catalog-DE3NLJFV.js → dual-view-guide-catalog-DljFCp4Y.js} +4 -4
  47. package/dist/{dual-view-guide-catalog-DE3NLJFV.js.map → dual-view-guide-catalog-DljFCp4Y.js.map} +1 -1
  48. package/dist/{elapsed-time-FUf-2Hna.js → elapsed-time-CviuvW6T.js} +2 -2
  49. package/dist/{elapsed-time-FUf-2Hna.js.map → elapsed-time-CviuvW6T.js.map} +1 -1
  50. package/dist/{entry-CVzIpV2o.js → entry-DvVWq0E3.js} +8 -8
  51. package/dist/{entry-CVzIpV2o.js.map → entry-DvVWq0E3.js.map} +1 -1
  52. package/dist/{installation-inventory-C0tUL2nW.js → installation-inventory-D6L-BdIi.js} +3 -3
  53. package/dist/{installation-inventory-C0tUL2nW.js.map → installation-inventory-D6L-BdIi.js.map} +1 -1
  54. package/dist/{installer-BDOyjY1v.js → installer-CW2tqKD4.js} +2 -2
  55. package/dist/{installer-BDOyjY1v.js.map → installer-CW2tqKD4.js.map} +1 -1
  56. package/dist/{local-components-DlEpUgN3.js → local-components-BpA9Lc4v.js} +48 -2
  57. package/dist/local-components-BpA9Lc4v.js.map +1 -0
  58. package/dist/{meta-api-tolnQVpU.js → meta-api-CaQ0OVVz.js} +7 -7
  59. package/dist/{meta-api-tolnQVpU.js.map → meta-api-CaQ0OVVz.js.map} +1 -1
  60. package/dist/{openmeld-ClgSnNPJ.js → openmeld-ChVuhWd4.js} +37 -37
  61. package/dist/{openmeld-ClgSnNPJ.js.map → openmeld-ChVuhWd4.js.map} +1 -1
  62. package/dist/{openmeld-environment-target-BOA_c8yO.js → openmeld-environment-target-mLK2dK1_.js} +2 -2
  63. package/dist/{openmeld-environment-target-BOA_c8yO.js.map → openmeld-environment-target-mLK2dK1_.js.map} +1 -1
  64. package/dist/{openmeld-maintenance-worker-Btj47phf.js → openmeld-maintenance-worker-18yNz_T9.js} +12 -11
  65. package/dist/{openmeld-maintenance-worker-Btj47phf.js.map → openmeld-maintenance-worker-18yNz_T9.js.map} +1 -1
  66. package/dist/{openmeld-tools-update-attempt-state-D8oDuOp9.js → openmeld-tools-update-attempt-state--4fS27OC.js} +2 -2
  67. package/dist/{openmeld-tools-update-attempt-state-D8oDuOp9.js.map → openmeld-tools-update-attempt-state--4fS27OC.js.map} +1 -1
  68. package/dist/{openmeld-tools-update-coordinator-C3W6sFnm.js → openmeld-tools-update-coordinator-Doj6V0Qx.js} +39 -67
  69. package/dist/openmeld-tools-update-coordinator-Doj6V0Qx.js.map +1 -0
  70. package/dist/{openmeld-tools-update-failure-2jySZ04B.js → openmeld-tools-update-failure-B4OLQAq7.js} +2 -2
  71. package/dist/{openmeld-tools-update-failure-2jySZ04B.js.map → openmeld-tools-update-failure-B4OLQAq7.js.map} +1 -1
  72. package/dist/{openmeld-tools-update-join-CDWWs9KY.js → openmeld-tools-update-join-B6HcSSiK.js} +11 -5
  73. package/dist/openmeld-tools-update-join-B6HcSSiK.js.map +1 -0
  74. package/dist/{openmeld-tools-update-process-frame-Dj3k5JHe.js → openmeld-tools-update-process-frame-CGFA81PP.js} +3 -3
  75. package/dist/{openmeld-tools-update-process-frame-Dj3k5JHe.js.map → openmeld-tools-update-process-frame-CGFA81PP.js.map} +1 -1
  76. package/dist/{openmeld-tools-update-process-frame-B-RacMxU.js → openmeld-tools-update-process-frame-D4LEFHvl.js} +1 -1
  77. package/dist/openmeld.js +6 -6
  78. package/dist/{prepare-provider-runtime-CQ7ZJMG8.js → prepare-provider-runtime-Cdm1_kJt.js} +9 -9
  79. package/dist/{prepare-provider-runtime-CQ7ZJMG8.js.map → prepare-provider-runtime-Cdm1_kJt.js.map} +1 -1
  80. package/dist/{prepare-session-executor-Cum_2pFY.js → prepare-session-executor-ChlTN4_s.js} +20 -20
  81. package/dist/{prepare-session-executor-Cum_2pFY.js.map → prepare-session-executor-ChlTN4_s.js.map} +1 -1
  82. package/dist/{presenter-BIwIweT9.js → presenter-DqdYrUMa.js} +2 -2
  83. package/dist/{presenter-BIwIweT9.js.map → presenter-DqdYrUMa.js.map} +1 -1
  84. package/dist/{process-channel-Dx1KqiZj.js → process-channel-Vz_ntXXU.js} +2 -2
  85. package/dist/{process-channel-Dx1KqiZj.js.map → process-channel-Vz_ntXXU.js.map} +1 -1
  86. package/dist/{runtime-ogScfw4m.js → runtime-DxUsqAl4.js} +17 -17
  87. package/dist/{runtime-ogScfw4m.js.map → runtime-DxUsqAl4.js.map} +1 -1
  88. package/dist/{runtime-agent-controller-reporting-submission-BgAI8B4L.js → runtime-agent-controller-reporting-submission-CGskliia.js} +7 -7
  89. package/dist/{runtime-agent-controller-reporting-submission-BgAI8B4L.js.map → runtime-agent-controller-reporting-submission-CGskliia.js.map} +1 -1
  90. package/dist/{runtime-transport-DNkqgRhX.js → runtime-transport-Ca0cGpAY.js} +2 -2
  91. package/dist/{runtime-transport-DNkqgRhX.js.map → runtime-transport-Ca0cGpAY.js.map} +1 -1
  92. package/dist/{sensitive-operation-credentials-Dsps0o1U.js → sensitive-operation-credentials-D7aFniHa.js} +3 -3
  93. package/dist/{sensitive-operation-credentials-Dsps0o1U.js.map → sensitive-operation-credentials-D7aFniHa.js.map} +1 -1
  94. package/dist/{service-account-authorization-DbbHAoMV.js → service-account-authorization-CdUOvV3c.js} +3 -3
  95. package/dist/{service-account-authorization-DbbHAoMV.js.map → service-account-authorization-CdUOvV3c.js.map} +1 -1
  96. package/dist/{service-account-control-Bkgjt8Hs.js → service-account-control-DZReqRJV.js} +8 -8
  97. package/dist/{service-account-control-Bkgjt8Hs.js.map → service-account-control-DZReqRJV.js.map} +1 -1
  98. package/dist/{service-control-capabilities-Bvhzddzv.js → service-control-capabilities-CuDpVm5i.js} +2 -2
  99. package/dist/{service-control-capabilities-Bvhzddzv.js.map → service-control-capabilities-CuDpVm5i.js.map} +1 -1
  100. package/dist/{service-control-capabilities-CUfHlN2t.js → service-control-capabilities-D2RMffJQ.js} +1 -1
  101. package/dist/{service-CML_ZTQ7.js → service-l9DU4V5Q.js} +45 -30
  102. package/dist/service-l9DU4V5Q.js.map +1 -0
  103. package/dist/{state-DI3VCm3Z.js → state-nzWj4_Pk.js} +2 -2
  104. package/dist/{state-DI3VCm3Z.js.map → state-nzWj4_Pk.js.map} +1 -1
  105. package/dist/{updates-api-C0n06BJr.js → updates-api-Bgme-Wrv.js} +13 -13
  106. package/dist/{updates-api-C0n06BJr.js.map → updates-api-Bgme-Wrv.js.map} +1 -1
  107. package/dist/upgrade-BminOoZS.js +3 -0
  108. package/dist/{upgrade-wV53HJsz.js → upgrade-i_sFuGdy.js} +22 -12
  109. package/dist/upgrade-i_sFuGdy.js.map +1 -0
  110. package/dist/windows/openmeld-windows-process.exe +0 -0
  111. package/package.json +8 -8
  112. package/dist/auth-session-BrKZEvdi.js +0 -3
  113. package/dist/daemon-service-runtime-Dg8V-t-u.js.map +0 -1
  114. package/dist/dist-B6YM6pO6.js +0 -34
  115. package/dist/local-components-DlEpUgN3.js.map +0 -1
  116. package/dist/openmeld-tools-update-coordinator-C3W6sFnm.js.map +0 -1
  117. package/dist/openmeld-tools-update-join-CDWWs9KY.js.map +0 -1
  118. package/dist/service-CML_ZTQ7.js.map +0 -1
  119. package/dist/upgrade-DVlicVyI.js +0 -3
  120. package/dist/upgrade-wV53HJsz.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  import { a as resolveBaseUrl, r as normalizeGatewayBaseUrl, s as resolveDefaultGatewayBaseUrl } from "./base-url-BOr6HWCA.js";
4
4
  import { P as resolveOpenMeldEnvPreset } from "./paths-De9xdA2h.js";
5
5
  import { r as resolveAuthBaseUrl } from "./auth-url-CzfXOINs.js";
6
- import { mt as resolveUserFacingCliEntryCommand } from "./auth-session-GYsWoDuJ.js";
6
+ import { mt as resolveUserFacingCliEntryCommand } from "./auth-session-QFK36vfX.js";
7
7
  import process from "node:process";
8
8
  //#region src/config/openmeld-environment-target.ts
9
9
  const OPENMELD_USER_FACING_CLI_COMMAND_ENV = "OPENMELD_USER_FACING_CLI_COMMAND";
@@ -57,4 +57,4 @@ function normalizeOptionalText(value) {
57
57
  //#endregion
58
58
  export { resolveOpenMeldEnvironmentTargetFromEnv as n, resolveOpenMeldEnvironmentTarget as t };
59
59
 
60
- //# sourceMappingURL=openmeld-environment-target-BOA_c8yO.js.map
60
+ //# sourceMappingURL=openmeld-environment-target-mLK2dK1_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-environment-target-BOA_c8yO.js","names":[],"sources":["../src/config/openmeld-environment-target.ts"],"sourcesContent":["import process from \"node:process\";\nimport { resolveUserFacingCliEntryCommand } from \"../runtime/cli-entry-command\";\nimport { resolveAuthBaseUrl } from \"./auth-url\";\nimport {\n normalizeGatewayBaseUrl,\n resolveBaseUrl,\n resolveDefaultGatewayBaseUrl,\n} from \"./base-url\";\nimport type { OpenMeldEnvPreset } from \"./paths\";\nimport { resolveOpenMeldEnvPreset } from \"./paths\";\n\nconst OPENMELD_USER_FACING_CLI_COMMAND_ENV = \"OPENMELD_USER_FACING_CLI_COMMAND\";\n\nexport type OpenMeldEnvironmentTarget = {\n preset: OpenMeldEnvPreset;\n gatewayUrl: string;\n authBaseUrl: string;\n userFacingCommand: string;\n};\n\ntype OpenMeldEnvironmentTargetInput = {\n gatewayUrl?: string;\n authUrl?: string;\n env?: NodeJS.ProcessEnv;\n};\n\nexport async function resolveOpenMeldEnvironmentTarget(\n input: OpenMeldEnvironmentTargetInput = {}\n): Promise<OpenMeldEnvironmentTarget> {\n const env = input.env ?? process.env;\n const preset = resolveOpenMeldEnvPreset({ env });\n return {\n preset,\n gatewayUrl: await resolveBaseUrl(input.gatewayUrl, { env }),\n authBaseUrl: resolveAuthBaseUrl(input.authUrl, { env }),\n userFacingCommand: resolveUserFacingCommandForPreset({ env, preset }),\n };\n}\n\nexport function resolveOpenMeldEnvironmentTargetFromEnv(\n input: OpenMeldEnvironmentTargetInput = {}\n): OpenMeldEnvironmentTarget {\n const env = input.env ?? process.env;\n const preset = resolveOpenMeldEnvPreset({ env });\n return {\n preset,\n gatewayUrl: resolveGatewayUrlFromEnvOnly({\n env,\n gatewayUrl: input.gatewayUrl,\n }),\n authBaseUrl: resolveAuthBaseUrl(input.authUrl, { env }),\n userFacingCommand: resolveUserFacingCommandForPreset({ env, preset }),\n };\n}\n\nfunction resolveUserFacingCommandForPreset(input: {\n env: NodeJS.ProcessEnv;\n preset: OpenMeldEnvPreset;\n}): string {\n const explicitCommand = normalizeOptionalText(\n input.env[OPENMELD_USER_FACING_CLI_COMMAND_ENV]\n );\n if (explicitCommand) {\n return explicitCommand;\n }\n if (input.preset === \"dev-local\") {\n return \"openmeld-dev\";\n }\n if (input.preset === \"canary\") {\n return \"openmeld-canary\";\n }\n return resolveUserFacingCliEntryCommand({ env: input.env });\n}\n\nfunction resolveGatewayUrlFromEnvOnly(input: {\n env: NodeJS.ProcessEnv;\n gatewayUrl?: string;\n}): string {\n const fromInput = normalizeOptionalText(input.gatewayUrl);\n if (fromInput) {\n return normalizeGatewayBaseUrl(fromInput);\n }\n const fromEnv = normalizeOptionalText(input.env.OPENMELD_GATEWAY_URL);\n if (fromEnv) {\n return normalizeGatewayBaseUrl(fromEnv);\n }\n return normalizeGatewayBaseUrl(\n resolveDefaultGatewayBaseUrl({ env: input.env })\n );\n}\n\nfunction normalizeOptionalText(value: unknown): string | null {\n const normalized = String(value ?? \"\").trim();\n return normalized.length > 0 ? normalized : null;\n}\n"],"mappings":";;;;;;;;AAWA,MAAM,uCAAuC;AAe7C,eAAsB,iCACpB,QAAwC,CAAC,GACL;CACpC,MAAM,MAAM,MAAM,OAAO,QAAQ;CACjC,MAAM,SAAS,yBAAyB,EAAE,IAAI,CAAC;CAC/C,OAAO;EACL;EACA,YAAY,MAAM,eAAe,MAAM,YAAY,EAAE,IAAI,CAAC;EAC1D,aAAa,mBAAmB,MAAM,SAAS,EAAE,IAAI,CAAC;EACtD,mBAAmB,kCAAkC;GAAE;GAAK;EAAO,CAAC;CACtE;AACF;AAEA,SAAgB,wCACd,QAAwC,CAAC,GACd;CAC3B,MAAM,MAAM,MAAM,OAAO,QAAQ;CACjC,MAAM,SAAS,yBAAyB,EAAE,IAAI,CAAC;CAC/C,OAAO;EACL;EACA,YAAY,6BAA6B;GACvC;GACA,YAAY,MAAM;EACpB,CAAC;EACD,aAAa,mBAAmB,MAAM,SAAS,EAAE,IAAI,CAAC;EACtD,mBAAmB,kCAAkC;GAAE;GAAK;EAAO,CAAC;CACtE;AACF;AAEA,SAAS,kCAAkC,OAGhC;CACT,MAAM,kBAAkB,sBACtB,MAAM,IAAI,qCACZ;CACA,IAAI,iBACF,OAAO;CAET,IAAI,MAAM,WAAW,aACnB,OAAO;CAET,IAAI,MAAM,WAAW,UACnB,OAAO;CAET,OAAO,iCAAiC,EAAE,KAAK,MAAM,IAAI,CAAC;AAC5D;AAEA,SAAS,6BAA6B,OAG3B;CACT,MAAM,YAAY,sBAAsB,MAAM,UAAU;CACxD,IAAI,WACF,OAAO,wBAAwB,SAAS;CAE1C,MAAM,UAAU,sBAAsB,MAAM,IAAI,oBAAoB;CACpE,IAAI,SACF,OAAO,wBAAwB,OAAO;CAExC,OAAO,wBACL,6BAA6B,EAAE,KAAK,MAAM,IAAI,CAAC,CACjD;AACF;AAEA,SAAS,sBAAsB,OAA+B;CAC5D,MAAM,aAAa,OAAO,SAAS,EAAE,CAAC,CAAC,KAAK;CAC5C,OAAO,WAAW,SAAS,IAAI,aAAa;AAC9C"}
1
+ {"version":3,"file":"openmeld-environment-target-mLK2dK1_.js","names":[],"sources":["../src/config/openmeld-environment-target.ts"],"sourcesContent":["import process from \"node:process\";\nimport { resolveUserFacingCliEntryCommand } from \"../runtime/cli-entry-command\";\nimport { resolveAuthBaseUrl } from \"./auth-url\";\nimport {\n normalizeGatewayBaseUrl,\n resolveBaseUrl,\n resolveDefaultGatewayBaseUrl,\n} from \"./base-url\";\nimport type { OpenMeldEnvPreset } from \"./paths\";\nimport { resolveOpenMeldEnvPreset } from \"./paths\";\n\nconst OPENMELD_USER_FACING_CLI_COMMAND_ENV = \"OPENMELD_USER_FACING_CLI_COMMAND\";\n\nexport type OpenMeldEnvironmentTarget = {\n preset: OpenMeldEnvPreset;\n gatewayUrl: string;\n authBaseUrl: string;\n userFacingCommand: string;\n};\n\ntype OpenMeldEnvironmentTargetInput = {\n gatewayUrl?: string;\n authUrl?: string;\n env?: NodeJS.ProcessEnv;\n};\n\nexport async function resolveOpenMeldEnvironmentTarget(\n input: OpenMeldEnvironmentTargetInput = {}\n): Promise<OpenMeldEnvironmentTarget> {\n const env = input.env ?? process.env;\n const preset = resolveOpenMeldEnvPreset({ env });\n return {\n preset,\n gatewayUrl: await resolveBaseUrl(input.gatewayUrl, { env }),\n authBaseUrl: resolveAuthBaseUrl(input.authUrl, { env }),\n userFacingCommand: resolveUserFacingCommandForPreset({ env, preset }),\n };\n}\n\nexport function resolveOpenMeldEnvironmentTargetFromEnv(\n input: OpenMeldEnvironmentTargetInput = {}\n): OpenMeldEnvironmentTarget {\n const env = input.env ?? process.env;\n const preset = resolveOpenMeldEnvPreset({ env });\n return {\n preset,\n gatewayUrl: resolveGatewayUrlFromEnvOnly({\n env,\n gatewayUrl: input.gatewayUrl,\n }),\n authBaseUrl: resolveAuthBaseUrl(input.authUrl, { env }),\n userFacingCommand: resolveUserFacingCommandForPreset({ env, preset }),\n };\n}\n\nfunction resolveUserFacingCommandForPreset(input: {\n env: NodeJS.ProcessEnv;\n preset: OpenMeldEnvPreset;\n}): string {\n const explicitCommand = normalizeOptionalText(\n input.env[OPENMELD_USER_FACING_CLI_COMMAND_ENV]\n );\n if (explicitCommand) {\n return explicitCommand;\n }\n if (input.preset === \"dev-local\") {\n return \"openmeld-dev\";\n }\n if (input.preset === \"canary\") {\n return \"openmeld-canary\";\n }\n return resolveUserFacingCliEntryCommand({ env: input.env });\n}\n\nfunction resolveGatewayUrlFromEnvOnly(input: {\n env: NodeJS.ProcessEnv;\n gatewayUrl?: string;\n}): string {\n const fromInput = normalizeOptionalText(input.gatewayUrl);\n if (fromInput) {\n return normalizeGatewayBaseUrl(fromInput);\n }\n const fromEnv = normalizeOptionalText(input.env.OPENMELD_GATEWAY_URL);\n if (fromEnv) {\n return normalizeGatewayBaseUrl(fromEnv);\n }\n return normalizeGatewayBaseUrl(\n resolveDefaultGatewayBaseUrl({ env: input.env })\n );\n}\n\nfunction normalizeOptionalText(value: unknown): string | null {\n const normalized = String(value ?? \"\").trim();\n return normalized.length > 0 ? normalized : null;\n}\n"],"mappings":";;;;;;;;AAWA,MAAM,uCAAuC;AAe7C,eAAsB,iCACpB,QAAwC,CAAC,GACL;CACpC,MAAM,MAAM,MAAM,OAAO,QAAQ;CACjC,MAAM,SAAS,yBAAyB,EAAE,IAAI,CAAC;CAC/C,OAAO;EACL;EACA,YAAY,MAAM,eAAe,MAAM,YAAY,EAAE,IAAI,CAAC;EAC1D,aAAa,mBAAmB,MAAM,SAAS,EAAE,IAAI,CAAC;EACtD,mBAAmB,kCAAkC;GAAE;GAAK;EAAO,CAAC;CACtE;AACF;AAEA,SAAgB,wCACd,QAAwC,CAAC,GACd;CAC3B,MAAM,MAAM,MAAM,OAAO,QAAQ;CACjC,MAAM,SAAS,yBAAyB,EAAE,IAAI,CAAC;CAC/C,OAAO;EACL;EACA,YAAY,6BAA6B;GACvC;GACA,YAAY,MAAM;EACpB,CAAC;EACD,aAAa,mBAAmB,MAAM,SAAS,EAAE,IAAI,CAAC;EACtD,mBAAmB,kCAAkC;GAAE;GAAK;EAAO,CAAC;CACtE;AACF;AAEA,SAAS,kCAAkC,OAGhC;CACT,MAAM,kBAAkB,sBACtB,MAAM,IAAI,qCACZ;CACA,IAAI,iBACF,OAAO;CAET,IAAI,MAAM,WAAW,aACnB,OAAO;CAET,IAAI,MAAM,WAAW,UACnB,OAAO;CAET,OAAO,iCAAiC,EAAE,KAAK,MAAM,IAAI,CAAC;AAC5D;AAEA,SAAS,6BAA6B,OAG3B;CACT,MAAM,YAAY,sBAAsB,MAAM,UAAU;CACxD,IAAI,WACF,OAAO,wBAAwB,SAAS;CAE1C,MAAM,UAAU,sBAAsB,MAAM,IAAI,oBAAoB;CACpE,IAAI,SACF,OAAO,wBAAwB,OAAO;CAExC,OAAO,wBACL,6BAA6B,EAAE,KAAK,MAAM,IAAI,CAAC,CACjD;AACF;AAEA,SAAS,sBAAsB,OAA+B;CAC5D,MAAM,aAAa,OAAO,SAAS,EAAE,CAAC,CAAC,KAAK;CAC5C,OAAO,WAAW,SAAS,IAAI,aAAa;AAC9C"}
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { g as getConfiguredSkillsConfig } from "./base-url-BOr6HWCA.js";
4
- import { Ut as resolveSkillsAgentRegistry } from "./prepare-provider-runtime-CQ7ZJMG8.js";
5
- import { f as withSkillsInstallLock, l as downloadOfficialSkillUpdate, r as ensureLocalSkills } from "./state-DI3VCm3Z.js";
6
- import { K as reconcileManagedCliLauncher, Z as configureDaemonMaintenanceEnvironment, g as assertDaemonMaintenanceInstallationOwnership } from "./daemon-service-runtime-Dg8V-t-u.js";
7
- import { a as readPendingDaemonServiceUpdate, n as completePendingDaemonServiceUpdate } from "./daemon-service-update-state-BclTmkAC.js";
8
- import { h as scheduleDaemonServiceUpdate, m as runPendingDaemonServiceUpdate, n as readOpenMeldToolsMaintenancePolicy, t as createOpenMeldToolsUpdateCoordinator, y as prepareDaemonServiceUpdateWorkerCarrier } from "./openmeld-tools-update-coordinator-C3W6sFnm.js";
4
+ import { Ut as resolveSkillsAgentRegistry } from "./prepare-provider-runtime-Cdm1_kJt.js";
5
+ import { f as withSkillsInstallLock, l as downloadOfficialSkillUpdate, r as ensureLocalSkills } from "./state-nzWj4_Pk.js";
6
+ import { W as recordUpdateStep, X as reconcileManagedCliLauncher, g as assertDaemonMaintenanceInstallationOwnership, tt as configureDaemonMaintenanceEnvironment } from "./daemon-service-runtime-C1o0PjSJ.js";
7
+ import { a as readPendingDaemonServiceUpdate, n as completePendingDaemonServiceUpdate } from "./daemon-service-update-state-CtzTzni1.js";
8
+ import { m as scheduleDaemonServiceUpdate, n as readOpenMeldToolsMaintenancePolicy, p as runPendingDaemonServiceUpdate, t as createOpenMeldToolsUpdateCoordinator, v as prepareDaemonServiceUpdateWorkerCarrier } from "./openmeld-tools-update-coordinator-Doj6V0Qx.js";
9
9
  import { a as isOpenMeldLockError, f as runWithHeldLock, n as acquireLock, o as isOpenMeldOrphanedLockError } from "./lock-B0YzvcUu.js";
10
10
  import { G as withDaemonServiceReconcileLock } from "./daemon-state-BJqUWJvZ.js";
11
11
  import { i as readDaemonServiceContract } from "./daemon-service-contract-B1EbK5p7.js";
12
- import { l as OPENMELD_VERSION } from "./daemon-lifecycle-journal-ywEIaUn3.js";
12
+ import { l as OPENMELD_VERSION } from "./daemon-lifecycle-journal-D1dCp8bJ.js";
13
13
  import { S as resolveDaemonServiceManager, v as readDaemonServiceStartupPolicyCurrent } from "./daemon-service-manager-CSD613gh.js";
14
- import { a as readPendingOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state-D8oDuOp9.js";
15
- import { s as resolveTrackedInstallTargets } from "./installation-inventory-C0tUL2nW.js";
16
- import { t as installSkillsToTargets } from "./installer-BDOyjY1v.js";
14
+ import { a as readPendingOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state--4fS27OC.js";
15
+ import { s as resolveTrackedInstallTargets } from "./installation-inventory-D6L-BdIi.js";
16
+ import { t as installSkillsToTargets } from "./installer-CW2tqKD4.js";
17
17
  //#region src/skills/maintenance.ts
18
18
  async function maintainOfficialCliSkill() {
19
19
  if (await downloadOfficialSkillUpdate().catch((error) => {
@@ -66,6 +66,7 @@ async function runMaintenancePass() {
66
66
  if (!contract || contract.desiredState !== "background") return false;
67
67
  }
68
68
  await assertDaemonMaintenanceInstallationOwnership();
69
+ await recordUpdateStep(pendingJob ?? pendingAttempt?.operation ?? null, "maintenance_preflight");
69
70
  await reconcileManagedCliLauncher();
70
71
  if ((await readOpenMeldToolsMaintenancePolicy()).automaticUpdatesEnabled) try {
71
72
  await maintainOfficialCliSkill();
@@ -80,7 +81,7 @@ async function runMaintenancePass() {
80
81
  }
81
82
  const result = await runPendingDaemonServiceUpdate();
82
83
  if (result?.phase === "updated") {
83
- const { finishComputerSetupAfterBackgroundUpdate, recoverComputerSetupAfterBackgroundUpdate } = await import("./computer-setup-continuation-twvv8WGB.js");
84
+ const { finishComputerSetupAfterBackgroundUpdate, recoverComputerSetupAfterBackgroundUpdate } = await import("./computer-setup-continuation-DEi94Jzc.js");
84
85
  await prepareDaemonServiceUpdateWorkerCarrier(result);
85
86
  await finishComputerSetupAfterBackgroundUpdate();
86
87
  await withDaemonServiceReconcileLock(async () => {
@@ -110,4 +111,4 @@ async function reconcileCurrentServiceStartupPolicy(updatesCurrent) {
110
111
  //#endregion
111
112
  export { runOpenMeldMaintenanceWorker };
112
113
 
113
- //# sourceMappingURL=openmeld-maintenance-worker-Btj47phf.js.map
114
+ //# sourceMappingURL=openmeld-maintenance-worker-18yNz_T9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-maintenance-worker-Btj47phf.js","names":[],"sources":["../src/skills/maintenance.ts","../src/local-service/maintenance/openmeld-maintenance-worker.ts"],"sourcesContent":["import { getConfiguredSkillsConfig } from \"../config/runtime-config\";\nimport { resolveSkillsAgentRegistry } from \"./agents\";\nimport { resolveTrackedInstallTargets } from \"./installation-inventory\";\nimport { installSkillsToTargets, withSkillsInstallLock } from \"./installer\";\nimport { downloadOfficialSkillUpdate } from \"./official-release\";\nimport { ensureLocalSkills } from \"./store\";\n\nexport async function maintainOfficialCliSkill(): Promise<void> {\n const outcome = await downloadOfficialSkillUpdate().catch(\n (error: unknown) => {\n process.stderr.write(\n `[openmeld] Skill download deferred: ${error instanceof Error ? error.message : String(error)}\\n`\n );\n return \"deferred\" as const;\n }\n );\n if (outcome === \"lane_isolated\") {\n return;\n }\n await withSkillsInstallLock(async () => {\n const localSkills = await ensureLocalSkills();\n const skillsConfig = await getConfiguredSkillsConfig();\n const targets = await resolveTrackedInstallTargets({\n skillsConfig,\n registry: resolveSkillsAgentRegistry(skillsConfig),\n localSkills,\n onlyOpenMeldInstalledTargets: false,\n });\n const results = await installSkillsToTargets({\n skills: localSkills,\n targets,\n });\n const failures = results.filter((result) => result.status === \"failed\");\n if (failures.length) {\n throw new Error(\n failures\n .map((result) => `${result.targetId}: ${result.reason}`)\n .join(\"; \")\n );\n }\n });\n}\n","import { readDaemonServiceContract } from \"../../config/daemon-service-contract\";\nimport { configureDaemonMaintenanceEnvironment } from \"../../config/daemon-service-update-worker-registration\";\nimport { withDaemonServiceReconcileLock } from \"../../config/daemon-state\";\nimport {\n acquireLock,\n isOpenMeldLockError,\n isOpenMeldOrphanedLockError,\n runWithHeldLock,\n} from \"../../config/lock\";\nimport { reconcileManagedCliLauncher } from \"../../local-components/managed-install\";\nimport { OPENMELD_VERSION } from \"../../runtime/version\";\nimport { maintainOfficialCliSkill } from \"../../skills/maintenance\";\nimport {\n readDaemonServiceStartupPolicyCurrent,\n resolveDaemonServiceManager,\n} from \"../lifecycle/daemon-service-manager\";\nimport { assertDaemonMaintenanceInstallationOwnership } from \"../lifecycle/daemon-service-manager-command-match\";\nimport {\n runPendingDaemonServiceUpdate,\n scheduleDaemonServiceUpdate,\n} from \"../lifecycle/daemon-service-update-coordinator\";\nimport {\n completePendingDaemonServiceUpdate,\n readPendingDaemonServiceUpdate,\n} from \"../lifecycle/daemon-service-update-state\";\nimport { prepareDaemonServiceUpdateWorkerCarrier } from \"../lifecycle/daemon-service-update-worker-manager\";\nimport { readOpenMeldToolsMaintenancePolicy } from \"./openmeld-tools-maintenance-policy\";\nimport { readPendingOpenMeldToolsUpdateAttempt } from \"./openmeld-tools-update-attempt-state\";\nimport { createOpenMeldToolsUpdateCoordinator } from \"./openmeld-tools-update-coordinator\";\n\n// The OS owns this process. It is also the sole executor of persisted download\n// attempts; Service requests only publish an attempt and wake this worker.\nexport async function runOpenMeldMaintenanceWorker(): Promise<void> {\n configureDaemonMaintenanceEnvironment(process.env);\n await runMaintenanceWithLock();\n}\n\nasync function runMaintenanceWithLock(): Promise<boolean> {\n try {\n const lock = await acquireLock({\n openMeldProfileId: \"__system__\",\n key: \"maintenance-worker\",\n });\n return await runWithHeldLock({\n lock,\n run: runMaintenancePass,\n releaseContext: { component: \"maintenance_worker\" },\n });\n } catch (error) {\n // Setup/repair may still own the lifecycle lock when the OS first runs us.\n // Leave its state intact; the existing OS trigger will run another pass.\n if (isOpenMeldLockError(error) && !isOpenMeldOrphanedLockError(error)) {\n return false;\n }\n throw error;\n }\n}\n\nasync function runMaintenancePass(): Promise<boolean> {\n const pendingJob = await readPendingDaemonServiceUpdate();\n const pendingAttempt = await readPendingOpenMeldToolsUpdateAttempt();\n if (!(pendingJob || pendingAttempt)) {\n const contract = await readDaemonServiceContract();\n if (!contract || contract.desiredState !== \"background\") {\n return false;\n }\n }\n await assertDaemonMaintenanceInstallationOwnership();\n await reconcileManagedCliLauncher();\n if ((await readOpenMeldToolsMaintenancePolicy()).automaticUpdatesEnabled) {\n try {\n await maintainOfficialCliSkill();\n } catch (error) {\n process.stderr.write(\n `[openmeld] Skill maintenance deferred: ${error instanceof Error ? error.message : String(error)}\\n`\n );\n }\n }\n const coordinator = createOpenMeldToolsUpdateCoordinator();\n if (!pendingJob) {\n if (pendingAttempt) {\n await coordinator.resumePendingUpdate();\n } else {\n const update = await coordinator.requestUpdate({\n requestSource: \"automatic\",\n });\n await reconcileCurrentServiceStartupPolicy(update.status === \"current\");\n }\n await coordinator.waitForIdle();\n }\n const result = await runPendingDaemonServiceUpdate();\n if (result?.phase === \"updated\") {\n const {\n finishComputerSetupAfterBackgroundUpdate,\n recoverComputerSetupAfterBackgroundUpdate,\n } = await import(\"../../commands/computer-setup-continuation\");\n // Only a verified replacement may replace the working recovery carrier.\n await prepareDaemonServiceUpdateWorkerCarrier(result);\n await finishComputerSetupAfterBackgroundUpdate();\n await withDaemonServiceReconcileLock(async () => {\n const current = await readPendingDaemonServiceUpdate();\n if (\n current?.jobId === result.jobId &&\n current.phase === \"updated\" &&\n current.targetVersion === result.targetVersion\n ) {\n await completePendingDaemonServiceUpdate(current);\n }\n });\n await recoverComputerSetupAfterBackgroundUpdate();\n return true;\n }\n if (result?.phase === \"restored\" || result?.phase === \"needs_help\") {\n process.exitCode = 1;\n }\n return false;\n}\n\nasync function reconcileCurrentServiceStartupPolicy(\n updatesCurrent: boolean\n): Promise<void> {\n if (!updatesCurrent) {\n return;\n }\n const contract = await readDaemonServiceContract();\n // An older recovery worker must not apply its policy to a newer Service,\n // and maintenance must preserve an explicit user stop.\n if (\n contract?.desiredState !== \"background\" ||\n contract.daemonVersion !== OPENMELD_VERSION\n ) {\n return;\n }\n const manager = await resolveDaemonServiceManager();\n if (\n (await readDaemonServiceStartupPolicyCurrent({\n controller: manager?.controller ?? null,\n status: (await manager?.status()) ?? null,\n })) === false\n ) {\n await scheduleDaemonServiceUpdate({\n targetVersion: contract.daemonVersion,\n urgency: \"available\",\n requestSource: \"automatic\",\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"openmeld-maintenance-worker-18yNz_T9.js","names":[],"sources":["../src/skills/maintenance.ts","../src/local-service/maintenance/openmeld-maintenance-worker.ts"],"sourcesContent":["import { getConfiguredSkillsConfig } from \"../config/runtime-config\";\nimport { resolveSkillsAgentRegistry } from \"./agents\";\nimport { resolveTrackedInstallTargets } from \"./installation-inventory\";\nimport { installSkillsToTargets, withSkillsInstallLock } from \"./installer\";\nimport { downloadOfficialSkillUpdate } from \"./official-release\";\nimport { ensureLocalSkills } from \"./store\";\n\nexport async function maintainOfficialCliSkill(): Promise<void> {\n const outcome = await downloadOfficialSkillUpdate().catch(\n (error: unknown) => {\n process.stderr.write(\n `[openmeld] Skill download deferred: ${error instanceof Error ? error.message : String(error)}\\n`\n );\n return \"deferred\" as const;\n }\n );\n if (outcome === \"lane_isolated\") {\n return;\n }\n await withSkillsInstallLock(async () => {\n const localSkills = await ensureLocalSkills();\n const skillsConfig = await getConfiguredSkillsConfig();\n const targets = await resolveTrackedInstallTargets({\n skillsConfig,\n registry: resolveSkillsAgentRegistry(skillsConfig),\n localSkills,\n onlyOpenMeldInstalledTargets: false,\n });\n const results = await installSkillsToTargets({\n skills: localSkills,\n targets,\n });\n const failures = results.filter((result) => result.status === \"failed\");\n if (failures.length) {\n throw new Error(\n failures\n .map((result) => `${result.targetId}: ${result.reason}`)\n .join(\"; \")\n );\n }\n });\n}\n","import { readDaemonServiceContract } from \"../../config/daemon-service-contract\";\nimport { configureDaemonMaintenanceEnvironment } from \"../../config/daemon-service-update-worker-registration\";\nimport { withDaemonServiceReconcileLock } from \"../../config/daemon-state\";\nimport {\n acquireLock,\n isOpenMeldLockError,\n isOpenMeldOrphanedLockError,\n runWithHeldLock,\n} from \"../../config/lock\";\nimport { reconcileManagedCliLauncher } from \"../../local-components/managed-install\";\nimport { OPENMELD_VERSION } from \"../../runtime/version\";\nimport { maintainOfficialCliSkill } from \"../../skills/maintenance\";\nimport {\n readDaemonServiceStartupPolicyCurrent,\n resolveDaemonServiceManager,\n} from \"../lifecycle/daemon-service-manager\";\nimport { assertDaemonMaintenanceInstallationOwnership } from \"../lifecycle/daemon-service-manager-command-match\";\nimport {\n runPendingDaemonServiceUpdate,\n scheduleDaemonServiceUpdate,\n} from \"../lifecycle/daemon-service-update-coordinator\";\nimport {\n completePendingDaemonServiceUpdate,\n readPendingDaemonServiceUpdate,\n} from \"../lifecycle/daemon-service-update-state\";\nimport { prepareDaemonServiceUpdateWorkerCarrier } from \"../lifecycle/daemon-service-update-worker-manager\";\nimport { readOpenMeldToolsMaintenancePolicy } from \"./openmeld-tools-maintenance-policy\";\nimport { readPendingOpenMeldToolsUpdateAttempt } from \"./openmeld-tools-update-attempt-state\";\nimport { recordUpdateStep } from \"./openmeld-tools-update-checkpoint\";\nimport { createOpenMeldToolsUpdateCoordinator } from \"./openmeld-tools-update-coordinator\";\n\n// The OS owns this process. It is also the sole executor of persisted download\n// attempts; Service requests only publish an attempt and wake this worker.\nexport async function runOpenMeldMaintenanceWorker(): Promise<void> {\n configureDaemonMaintenanceEnvironment(process.env);\n await runMaintenanceWithLock();\n}\n\nasync function runMaintenanceWithLock(): Promise<boolean> {\n try {\n const lock = await acquireLock({\n openMeldProfileId: \"__system__\",\n key: \"maintenance-worker\",\n });\n return await runWithHeldLock({\n lock,\n run: runMaintenancePass,\n releaseContext: { component: \"maintenance_worker\" },\n });\n } catch (error) {\n // Setup/repair may still own the lifecycle lock when the OS first runs us.\n // Leave its state intact; the existing OS trigger will run another pass.\n if (isOpenMeldLockError(error) && !isOpenMeldOrphanedLockError(error)) {\n return false;\n }\n throw error;\n }\n}\n\nasync function runMaintenancePass(): Promise<boolean> {\n const pendingJob = await readPendingDaemonServiceUpdate();\n const pendingAttempt = await readPendingOpenMeldToolsUpdateAttempt();\n if (!(pendingJob || pendingAttempt)) {\n const contract = await readDaemonServiceContract();\n if (!contract || contract.desiredState !== \"background\") {\n return false;\n }\n }\n await assertDaemonMaintenanceInstallationOwnership();\n await recordUpdateStep(\n pendingJob ?? pendingAttempt?.operation ?? null,\n \"maintenance_preflight\"\n );\n await reconcileManagedCliLauncher();\n if ((await readOpenMeldToolsMaintenancePolicy()).automaticUpdatesEnabled) {\n try {\n await maintainOfficialCliSkill();\n } catch (error) {\n process.stderr.write(\n `[openmeld] Skill maintenance deferred: ${error instanceof Error ? error.message : String(error)}\\n`\n );\n }\n }\n const coordinator = createOpenMeldToolsUpdateCoordinator();\n if (!pendingJob) {\n if (pendingAttempt) {\n await coordinator.resumePendingUpdate();\n } else {\n const update = await coordinator.requestUpdate({\n requestSource: \"automatic\",\n });\n await reconcileCurrentServiceStartupPolicy(update.status === \"current\");\n }\n await coordinator.waitForIdle();\n }\n const result = await runPendingDaemonServiceUpdate();\n if (result?.phase === \"updated\") {\n const {\n finishComputerSetupAfterBackgroundUpdate,\n recoverComputerSetupAfterBackgroundUpdate,\n } = await import(\"../../commands/computer-setup-continuation\");\n // Only a verified replacement may replace the working recovery carrier.\n await prepareDaemonServiceUpdateWorkerCarrier(result);\n await finishComputerSetupAfterBackgroundUpdate();\n await withDaemonServiceReconcileLock(async () => {\n const current = await readPendingDaemonServiceUpdate();\n if (\n current?.jobId === result.jobId &&\n current.phase === \"updated\" &&\n current.targetVersion === result.targetVersion\n ) {\n await completePendingDaemonServiceUpdate(current);\n }\n });\n await recoverComputerSetupAfterBackgroundUpdate();\n return true;\n }\n if (result?.phase === \"restored\" || result?.phase === \"needs_help\") {\n process.exitCode = 1;\n }\n return false;\n}\n\nasync function reconcileCurrentServiceStartupPolicy(\n updatesCurrent: boolean\n): Promise<void> {\n if (!updatesCurrent) {\n return;\n }\n const contract = await readDaemonServiceContract();\n // An older recovery worker must not apply its policy to a newer Service,\n // and maintenance must preserve an explicit user stop.\n if (\n contract?.desiredState !== \"background\" ||\n contract.daemonVersion !== OPENMELD_VERSION\n ) {\n return;\n }\n const manager = await resolveDaemonServiceManager();\n if (\n (await readDaemonServiceStartupPolicyCurrent({\n controller: manager?.controller ?? null,\n status: (await manager?.status()) ?? null,\n })) === false\n ) {\n await scheduleDaemonServiceUpdate({\n targetVersion: contract.daemonVersion,\n urgency: \"available\",\n requestSource: \"automatic\",\n });\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { A as openMeldToolsUpdateAttemptSchema } from "./local-components-DlEpUgN3.js";
3
+ import { A as openMeldToolsUpdateAttemptSchema } from "./local-components-BpA9Lc4v.js";
4
4
  import { _ as daemonRuntimeStateRootPath } from "./daemon-state-BJqUWJvZ.js";
5
5
  import { dirname, join } from "node:path";
6
6
  import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
@@ -50,4 +50,4 @@ async function writeAttempt(path, attempt) {
50
50
  //#endregion
51
51
  export { readPendingOpenMeldToolsUpdateAttempt as a, readLastOpenMeldToolsUpdateAttempt as i, discardPendingOpenMeldToolsUpdateAttempt as n, persistOpenMeldToolsUpdateAttempt as r, completeOpenMeldToolsUpdateAttempt as t };
52
52
 
53
- //# sourceMappingURL=openmeld-tools-update-attempt-state-D8oDuOp9.js.map
53
+ //# sourceMappingURL=openmeld-tools-update-attempt-state--4fS27OC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-tools-update-attempt-state-D8oDuOp9.js","names":[],"sources":["../src/local-service/maintenance/openmeld-tools-update-attempt-state.ts"],"sourcesContent":["import { mkdir, readFile, rename, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, join } from \"node:path\";\nimport { openMeldToolsUpdateAttemptSchema } from \"@openmeld/schemas\";\nimport type { OpenMeldToolsUpdateAttempt } from \"@openmeld/schemas/types\";\nimport { daemonRuntimeStateRootPath } from \"../../config/daemon-state\";\nimport type { OpenMeldPathResolutionInput } from \"../../config/paths\";\n\nfunction pendingAttemptPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeStateRootPath(pathInput), \"tools-update.json\");\n}\n\nfunction lastAttemptPath(pathInput: OpenMeldPathResolutionInput = {}): string {\n return join(daemonRuntimeStateRootPath(pathInput), \"tools-update-last.json\");\n}\n\nexport async function readPendingOpenMeldToolsUpdateAttempt(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<OpenMeldToolsUpdateAttempt | null> {\n return await readAttempt(pendingAttemptPath(pathInput));\n}\n\nexport async function readLastOpenMeldToolsUpdateAttempt(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<OpenMeldToolsUpdateAttempt | null> {\n return await readAttempt(lastAttemptPath(pathInput));\n}\n\nexport async function persistOpenMeldToolsUpdateAttempt(\n attempt: OpenMeldToolsUpdateAttempt,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await writeAttempt(pendingAttemptPath(pathInput), attempt);\n}\n\nexport async function completeOpenMeldToolsUpdateAttempt(\n attempt: OpenMeldToolsUpdateAttempt,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await writeAttempt(lastAttemptPath(pathInput), attempt);\n await discardPendingOpenMeldToolsUpdateAttempt(pathInput);\n}\n\nexport async function discardPendingOpenMeldToolsUpdateAttempt(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await rm(pendingAttemptPath(pathInput), { force: true });\n}\n\nasync function readAttempt(\n path: string\n): Promise<OpenMeldToolsUpdateAttempt | null> {\n const raw = await readFile(path, \"utf8\").catch(\n (error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") {\n return null;\n }\n throw error;\n }\n );\n if (raw === null) {\n return null;\n }\n const parsed = openMeldToolsUpdateAttemptSchema.safeParse(\n JSON.parse(raw) as unknown\n );\n if (!parsed.success) {\n throw new Error(\"OpenMeld update state is invalid.\");\n }\n return parsed.data;\n}\n\nasync function writeAttempt(\n path: string,\n attempt: OpenMeldToolsUpdateAttempt\n): Promise<void> {\n const validated = openMeldToolsUpdateAttemptSchema.parse(attempt);\n const temporaryPath = `${path}.${String(process.pid)}.tmp`;\n await mkdir(dirname(path), { recursive: true });\n await writeFile(temporaryPath, `${JSON.stringify(validated, null, 2)}\\n`, {\n encoding: \"utf8\",\n mode: 0o600,\n });\n await rename(temporaryPath, path);\n}\n"],"mappings":";;;;;;;AAOA,SAAS,mBACP,YAAyC,CAAC,GAClC;CACR,OAAO,KAAK,2BAA2B,SAAS,GAAG,mBAAmB;AACxE;AAEA,SAAS,gBAAgB,YAAyC,CAAC,GAAW;CAC5E,OAAO,KAAK,2BAA2B,SAAS,GAAG,wBAAwB;AAC7E;AAEA,eAAsB,sCACpB,YAAyC,CAAC,GACE;CAC5C,OAAO,MAAM,YAAY,mBAAmB,SAAS,CAAC;AACxD;AAEA,eAAsB,mCACpB,YAAyC,CAAC,GACE;CAC5C,OAAO,MAAM,YAAY,gBAAgB,SAAS,CAAC;AACrD;AAEA,eAAsB,kCACpB,SACA,YAAyC,CAAC,GAC3B;CACf,MAAM,aAAa,mBAAmB,SAAS,GAAG,OAAO;AAC3D;AAEA,eAAsB,mCACpB,SACA,YAAyC,CAAC,GAC3B;CACf,MAAM,aAAa,gBAAgB,SAAS,GAAG,OAAO;CACtD,MAAM,yCAAyC,SAAS;AAC1D;AAEA,eAAsB,yCACpB,YAAyC,CAAC,GAC3B;CACf,MAAM,GAAG,mBAAmB,SAAS,GAAG,EAAE,OAAO,KAAK,CAAC;AACzD;AAEA,eAAe,YACb,MAC4C;CAC5C,MAAM,MAAM,MAAM,SAAS,MAAM,MAAM,CAAC,CAAC,OACtC,UAAiC;EAChC,IAAI,MAAM,SAAS,UACjB,OAAO;EAET,MAAM;CACR,CACF;CACA,IAAI,QAAQ,MACV,OAAO;CAET,MAAM,SAAS,iCAAiC,UAC9C,KAAK,MAAM,GAAG,CAChB;CACA,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,mCAAmC;CAErD,OAAO,OAAO;AAChB;AAEA,eAAe,aACb,MACA,SACe;CACf,MAAM,YAAY,iCAAiC,MAAM,OAAO;CAChE,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,QAAQ,GAAG,EAAE;CACrD,MAAM,MAAM,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;CAC9C,MAAM,UAAU,eAAe,GAAG,KAAK,UAAU,WAAW,MAAM,CAAC,EAAE,KAAK;EACxE,UAAU;EACV,MAAM;CACR,CAAC;CACD,MAAM,OAAO,eAAe,IAAI;AAClC"}
1
+ {"version":3,"file":"openmeld-tools-update-attempt-state--4fS27OC.js","names":[],"sources":["../src/local-service/maintenance/openmeld-tools-update-attempt-state.ts"],"sourcesContent":["import { mkdir, readFile, rename, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, join } from \"node:path\";\nimport { openMeldToolsUpdateAttemptSchema } from \"@openmeld/schemas\";\nimport type { OpenMeldToolsUpdateAttempt } from \"@openmeld/schemas/types\";\nimport { daemonRuntimeStateRootPath } from \"../../config/daemon-state\";\nimport type { OpenMeldPathResolutionInput } from \"../../config/paths\";\n\nfunction pendingAttemptPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeStateRootPath(pathInput), \"tools-update.json\");\n}\n\nfunction lastAttemptPath(pathInput: OpenMeldPathResolutionInput = {}): string {\n return join(daemonRuntimeStateRootPath(pathInput), \"tools-update-last.json\");\n}\n\nexport async function readPendingOpenMeldToolsUpdateAttempt(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<OpenMeldToolsUpdateAttempt | null> {\n return await readAttempt(pendingAttemptPath(pathInput));\n}\n\nexport async function readLastOpenMeldToolsUpdateAttempt(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<OpenMeldToolsUpdateAttempt | null> {\n return await readAttempt(lastAttemptPath(pathInput));\n}\n\nexport async function persistOpenMeldToolsUpdateAttempt(\n attempt: OpenMeldToolsUpdateAttempt,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await writeAttempt(pendingAttemptPath(pathInput), attempt);\n}\n\nexport async function completeOpenMeldToolsUpdateAttempt(\n attempt: OpenMeldToolsUpdateAttempt,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await writeAttempt(lastAttemptPath(pathInput), attempt);\n await discardPendingOpenMeldToolsUpdateAttempt(pathInput);\n}\n\nexport async function discardPendingOpenMeldToolsUpdateAttempt(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await rm(pendingAttemptPath(pathInput), { force: true });\n}\n\nasync function readAttempt(\n path: string\n): Promise<OpenMeldToolsUpdateAttempt | null> {\n const raw = await readFile(path, \"utf8\").catch(\n (error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") {\n return null;\n }\n throw error;\n }\n );\n if (raw === null) {\n return null;\n }\n const parsed = openMeldToolsUpdateAttemptSchema.safeParse(\n JSON.parse(raw) as unknown\n );\n if (!parsed.success) {\n throw new Error(\"OpenMeld update state is invalid.\");\n }\n return parsed.data;\n}\n\nasync function writeAttempt(\n path: string,\n attempt: OpenMeldToolsUpdateAttempt\n): Promise<void> {\n const validated = openMeldToolsUpdateAttemptSchema.parse(attempt);\n const temporaryPath = `${path}.${String(process.pid)}.tmp`;\n await mkdir(dirname(path), { recursive: true });\n await writeFile(temporaryPath, `${JSON.stringify(validated, null, 2)}\\n`, {\n encoding: \"utf8\",\n mode: 0o600,\n });\n await rename(temporaryPath, path);\n}\n"],"mappings":";;;;;;;AAOA,SAAS,mBACP,YAAyC,CAAC,GAClC;CACR,OAAO,KAAK,2BAA2B,SAAS,GAAG,mBAAmB;AACxE;AAEA,SAAS,gBAAgB,YAAyC,CAAC,GAAW;CAC5E,OAAO,KAAK,2BAA2B,SAAS,GAAG,wBAAwB;AAC7E;AAEA,eAAsB,sCACpB,YAAyC,CAAC,GACE;CAC5C,OAAO,MAAM,YAAY,mBAAmB,SAAS,CAAC;AACxD;AAEA,eAAsB,mCACpB,YAAyC,CAAC,GACE;CAC5C,OAAO,MAAM,YAAY,gBAAgB,SAAS,CAAC;AACrD;AAEA,eAAsB,kCACpB,SACA,YAAyC,CAAC,GAC3B;CACf,MAAM,aAAa,mBAAmB,SAAS,GAAG,OAAO;AAC3D;AAEA,eAAsB,mCACpB,SACA,YAAyC,CAAC,GAC3B;CACf,MAAM,aAAa,gBAAgB,SAAS,GAAG,OAAO;CACtD,MAAM,yCAAyC,SAAS;AAC1D;AAEA,eAAsB,yCACpB,YAAyC,CAAC,GAC3B;CACf,MAAM,GAAG,mBAAmB,SAAS,GAAG,EAAE,OAAO,KAAK,CAAC;AACzD;AAEA,eAAe,YACb,MAC4C;CAC5C,MAAM,MAAM,MAAM,SAAS,MAAM,MAAM,CAAC,CAAC,OACtC,UAAiC;EAChC,IAAI,MAAM,SAAS,UACjB,OAAO;EAET,MAAM;CACR,CACF;CACA,IAAI,QAAQ,MACV,OAAO;CAET,MAAM,SAAS,iCAAiC,UAC9C,KAAK,MAAM,GAAG,CAChB;CACA,IAAI,CAAC,OAAO,SACV,MAAM,IAAI,MAAM,mCAAmC;CAErD,OAAO,OAAO;AAChB;AAEA,eAAe,aACb,MACA,SACe;CACf,MAAM,YAAY,iCAAiC,MAAM,OAAO;CAChE,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,QAAQ,GAAG,EAAE;CACrD,MAAM,MAAM,QAAQ,IAAI,GAAG,EAAE,WAAW,KAAK,CAAC;CAC9C,MAAM,UAAU,eAAe,GAAG,KAAK,UAAU,WAAW,MAAM,CAAC,EAAE,KAAK;EACxE,UAAU;EACV,MAAM;CACR,CAAC;CACD,MAAM,OAAO,eAAe,IAAI;AAClC"}
@@ -6,34 +6,34 @@ import { D as openMeldRootDir, F as resolveOpenMeldRootDir, P as resolveOpenMeld
6
6
  import { r as resolveAuthBaseUrl } from "./auth-url-CzfXOINs.js";
7
7
  import { lt as daemonServiceLaneSchema, mt as localAgentCatalogSchema } from "./dist-CfBtqP8H.js";
8
8
  import { $ as resolvePublicAgentAvailabilityCopy, et as resolvePublicAgentFailureRecovery } from "./task-result-CWH3TdDu.js";
9
- import { en as createCurrentDeviceApi, rr as toStructuredApiClientFailure } from "./dist-B08nRCGz.js";
10
- import { Ct as createPrimaryBindingReadSession, Kr as DaemonServiceRunError, Lt as resolveAgentTargetState, Mn as createLocalAdapterEntries, Tt as resolveAgentProfilePrimaryAgentControllerReport, d as matchesExpectedWorkspace, f as resolveOpenClawAuthStatus, g as readDaemonRouteCatalogCache, h as resolveOpenClawLocalBootstrapPaths, i as listOpenClawGatewayAgents, j as resolveEffectiveProfileWorkingFolderRuntime, jn as createLocalAdapterContainer, l as findOpenClawAgentById, m as readOpenClawLocalBootstrapState, n as fetchOpenClawGatewayHealth, p as resolveOpenClawProviderRuntimeWorkingDirectory, qt as resolveRegistryRuntimeAdapterContractByAgentControllerRef, r as listOpenClawAgents, t as prepareProviderRuntime, u as findOpenClawAgentsByWorkspace, v as loadDaemonRouteCatalog, vt as NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON, wt as createExpectedRoutesReadSession, yt as syncDeviceRuntimeStateProjection } from "./prepare-provider-runtime-CQ7ZJMG8.js";
11
- import { M as toErrorMessage$4, m as OPENMELD_HEADER_PROFILE_ID } from "./dist-D_FzuWN-.js";
12
- import { L as runtimeTransportErrorCodeSchema, Z as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, a as daemonExecutionCompatibilitySchema, d as localWakeRouteReportSchema, it as runtimeTransportRejectedProfileRegistrationSchema, v as runtimeTransportCapabilitiesSchema } from "./runtime-transport-DNkqgRhX.js";
13
- import { I as openMeldToolsUpdateRequestSourceSchema } from "./local-components-DlEpUgN3.js";
14
- import { D as DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE, E as DAEMON_RUNTIME_CONTRACT_META_FILE, S as CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS, d as normalizeOptionalText$3, i as resolvePreferredDaemonDeviceId, l as normalizeHeartbeatIntervalMs, n as ensureDaemonRuntimePaths, o as dirnamePath, r as resolveDaemonDeviceId, v as toErrorMessage$5 } from "./daemon-device-id-B-iuoFzM.js";
9
+ import { en as createCurrentDeviceApi, rr as toStructuredApiClientFailure } from "./dist-DsyrZzyU.js";
10
+ import { Ct as createPrimaryBindingReadSession, Kr as DaemonServiceRunError, Lt as resolveAgentTargetState, Mn as createLocalAdapterEntries, Tt as resolveAgentProfilePrimaryAgentControllerReport, d as matchesExpectedWorkspace, f as resolveOpenClawAuthStatus, g as readDaemonRouteCatalogCache, h as resolveOpenClawLocalBootstrapPaths, i as listOpenClawGatewayAgents, j as resolveEffectiveProfileWorkingFolderRuntime, jn as createLocalAdapterContainer, l as findOpenClawAgentById, m as readOpenClawLocalBootstrapState, n as fetchOpenClawGatewayHealth, p as resolveOpenClawProviderRuntimeWorkingDirectory, qt as resolveRegistryRuntimeAdapterContractByAgentControllerRef, r as listOpenClawAgents, t as prepareProviderRuntime, u as findOpenClawAgentsByWorkspace, v as loadDaemonRouteCatalog, vt as NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON, wt as createExpectedRoutesReadSession, yt as syncDeviceRuntimeStateProjection } from "./prepare-provider-runtime-Cdm1_kJt.js";
11
+ import { M as toErrorMessage$4, m as OPENMELD_HEADER_PROFILE_ID } from "./dist-zY7dD_tQ.js";
12
+ import { L as runtimeTransportErrorCodeSchema, Z as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, a as daemonExecutionCompatibilitySchema, d as localWakeRouteReportSchema, it as runtimeTransportRejectedProfileRegistrationSchema, v as runtimeTransportCapabilitiesSchema } from "./runtime-transport-Ca0cGpAY.js";
13
+ import { z as resolveOpenMeldToolsUpdateTargetVersions } from "./local-components-BpA9Lc4v.js";
14
+ import { D as DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE, E as DAEMON_RUNTIME_CONTRACT_META_FILE, S as CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS, d as normalizeOptionalText$3, i as resolvePreferredDaemonDeviceId, l as normalizeHeartbeatIntervalMs, n as ensureDaemonRuntimePaths, o as dirnamePath, r as resolveDaemonDeviceId, v as toErrorMessage$5 } from "./daemon-device-id-DLKuN3Eo.js";
15
15
  import { it as providerDispatchRuntimeContextSchema } from "./control-plane-CDbk-45J.js";
16
- import { $ as hasIndependentMaintenanceRegistration, A as prepareDaemonServiceBundle, B as resolveDaemonServiceArtifact, C as daemonServiceExecutableWrapperPath, D as ensureDaemonServiceStableBinaryExecutable, E as discardPreparedDaemonServiceBundle, F as restoreDaemonActiveBundleStateSnapshot, G as readManagedCliInstallation, I as runAuditedServiceManagerCarrierMutation, J as withManagedInstallTransaction, L as verifyDaemonActiveBundleIntegrity, M as resolveAlignedDaemonActiveBundleEntryPath, N as resolveDaemonBundleEntryPathFromState, O as ensureDaemonServiceUpdateWorkerBinaryExecutable, P as resolveInstalledDaemonBundleFingerprint, Q as daemonServiceUpdateWorkerNpmEntryPath, R as writeDaemonServiceExecutableWrapper, S as daemonServiceBinaryExecutablePath, T as daemonServiceUpdateWorkerBinaryPath, W as pruneManagedInstallVersions, X as INDEPENDENT_MAINTENANCE_REGISTRATION, Y as resolveBundledServiceRelease, Z as configureDaemonMaintenanceEnvironment, _ as matchesExpectedDaemonServiceManagerDefinition, a as resolveDaemonRuntimeState, at as resolveDaemonServiceUpdateWorkerWindowsScriptPath, c as resolveObservedDaemonRuntimeStatus, d as inspectLegacySharedDaemonService, et as resolveDaemonServiceUpdateWorkerIdentity, f as listDaemonOwnedProcesses, g as assertDaemonMaintenanceInstallationOwnership, i as readCurrentObservedDaemonRuntimeStatus, it as resolveDaemonServiceUpdateWorkerSystemdUnitPath, j as readDaemonActiveBundleState, k as isDaemonBundleSourceAllowedForLane, l as resolveObservedRuntimeCommandEntryPath, m as normalizeDaemonCommandPath, n as getEffectiveDaemonRuntimeStatus, nt as resolveDaemonServiceUpdateWorkerSystemdPathUnitPath, o as resolveDaemonServiceManagerForRuntimeState, q as resolveCliSelfVersion, r as readCurrentDaemonRuntimeContext, rt as resolveDaemonServiceUpdateWorkerSystemdTimerUnitPath, s as waitForDaemonSystemServiceToStop, t as clearDaemonRuntimeStateIfDefinitelyStopped, tt as resolveDaemonServiceUpdateWorkerLaunchdPlistPath, u as cleanupLegacySharedDaemonServiceState, w as daemonServiceLauncherPath, x as clearDaemonServiceUpdateWorkerBinaryExecutable, y as activateDaemonServiceBundle, z as writeDaemonServiceLauncher } from "./daemon-service-runtime-Dg8V-t-u.js";
16
+ import { $ as resolveBundledServiceRelease, A as prepareDaemonServiceBundle, B as resolveDaemonServiceArtifact, C as daemonServiceExecutableWrapperPath, D as ensureDaemonServiceStableBinaryExecutable, E as discardPreparedDaemonServiceBundle, F as restoreDaemonActiveBundleStateSnapshot, I as runAuditedServiceManagerCarrierMutation, J as pruneManagedInstallVersions, L as verifyDaemonActiveBundleIntegrity, M as resolveAlignedDaemonActiveBundleEntryPath, N as resolveDaemonBundleEntryPathFromState, O as ensureDaemonServiceUpdateWorkerBinaryExecutable, P as resolveInstalledDaemonBundleFingerprint, Q as withManagedInstallTransaction, R as writeDaemonServiceExecutableWrapper, S as daemonServiceBinaryExecutablePath, T as daemonServiceUpdateWorkerBinaryPath, V as buildOpenMeldToolsUpdateContextEnv, W as recordUpdateStep, Y as readManagedCliInstallation, Z as resolveCliSelfVersion, _ as matchesExpectedDaemonServiceManagerDefinition, a as resolveDaemonRuntimeState, at as resolveDaemonServiceUpdateWorkerLaunchdPlistPath, c as resolveObservedDaemonRuntimeStatus, ct as resolveDaemonServiceUpdateWorkerSystemdUnitPath, d as inspectLegacySharedDaemonService, et as INDEPENDENT_MAINTENANCE_REGISTRATION, f as listDaemonOwnedProcesses, g as assertDaemonMaintenanceInstallationOwnership, i as readCurrentObservedDaemonRuntimeStatus, it as resolveDaemonServiceUpdateWorkerIdentity, j as readDaemonActiveBundleState, k as isDaemonBundleSourceAllowedForLane, l as resolveObservedRuntimeCommandEntryPath, lt as resolveDaemonServiceUpdateWorkerWindowsScriptPath, m as normalizeDaemonCommandPath, n as getEffectiveDaemonRuntimeStatus, nt as daemonServiceUpdateWorkerNpmEntryPath, o as resolveDaemonServiceManagerForRuntimeState, ot as resolveDaemonServiceUpdateWorkerSystemdPathUnitPath, r as readCurrentDaemonRuntimeContext, rt as hasIndependentMaintenanceRegistration, s as waitForDaemonSystemServiceToStop, st as resolveDaemonServiceUpdateWorkerSystemdTimerUnitPath, t as clearDaemonRuntimeStateIfDefinitelyStopped, tt as configureDaemonMaintenanceEnvironment, u as cleanupLegacySharedDaemonServiceState, w as daemonServiceLauncherPath, x as clearDaemonServiceUpdateWorkerBinaryExecutable, y as activateDaemonServiceBundle, z as writeDaemonServiceLauncher } from "./daemon-service-runtime-C1o0PjSJ.js";
17
17
  import { r as readDaemonRuntimeLease } from "./daemon-runtime-lease-BMT2SIW9.js";
18
- import { a as readPendingDaemonServiceUpdate, n as completePendingDaemonServiceUpdate, r as persistPendingDaemonServiceUpdate, t as DAEMON_SERVICE_UPDATE_JOB_SCHEMA } from "./daemon-service-update-state-BclTmkAC.js";
18
+ import { a as readPendingDaemonServiceUpdate, n as completePendingDaemonServiceUpdate, r as persistPendingDaemonServiceUpdate, t as DAEMON_SERVICE_UPDATE_JOB_SCHEMA } from "./daemon-service-update-state-CtzTzni1.js";
19
19
  import { r as windowsDirectTaskArguments } from "./windows-task-command-COu_6Ke3.js";
20
- import { H as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, ct as formatOpenMeldCliCommands, d as getAuthSessionState, h as hasPendingComputerSetupContinuation, ot as formatInlineOpenMeldCliCommands, st as formatOpenMeldCliCommand, ut as formatOpenMeldCliTextBlock } from "./auth-session-GYsWoDuJ.js";
20
+ import { H as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, ct as formatOpenMeldCliCommands, d as getAuthSessionState, h as hasPendingComputerSetupContinuation, ot as formatInlineOpenMeldCliCommands, st as formatOpenMeldCliCommand, ut as formatOpenMeldCliTextBlock } from "./auth-session-QFK36vfX.js";
21
21
  import { n as normalizeCommandEnvironment, t as WINDOWS_RUNTIME_ENV_KEYS } from "./process-environment-BWSFeUu6.js";
22
22
  import { n as toErrorMessage$6, t as sleep } from "./dist-BLuEEVHh.js";
23
- import { n as resolveRuntimeContext, o as resolveOpenMeldProfileOrNull } from "./context-CPKBlAps.js";
23
+ import { n as resolveRuntimeContext, o as resolveOpenMeldProfileOrNull } from "./context-DqEUJy_k.js";
24
24
  import { n as resolveOpenMeldDistribution, t as isBinaryDistribution } from "./distribution-BDQT2ilb.js";
25
25
  import { A as getDaemonStatus, B as restoreDaemonInstallStateSnapshot, F as readDaemonServiceLifecycleLockMetaWithCleanup, G as withDaemonServiceReconcileLock, I as readDaemonServiceRuntimeSnapshot, V as rotateDaemonControlPlaneTokenIfExpired, _ as daemonRuntimeStateRootPath, a as DAEMON_SERVICE_RUNTIME_MODE_ENV, f as daemonLifecycleJournalPath, h as daemonRuntimeRootPath, i as DAEMON_SERVICE_RUNTIME_DETACHED_ENV, j as installDaemon, m as daemonRuntimeDataPath, n as DAEMON_SERVICE_RUNTIME_AUTO_START_ENV, r as DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV, s as DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV } from "./daemon-state-BJqUWJvZ.js";
26
- import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-D4qt8-I7.js";
26
+ import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-CRQZIYVN.js";
27
27
  import { n as assertSafePublishedProductionServiceRegistrationMutation } from "./published-production-safety-zANGAGDI.js";
28
28
  import { i as readDaemonServiceContract, n as isDaemonServiceContractIdentityReusable, o as upsertDaemonServiceContract, r as isUnsafeProductionDeviceId, t as clearDaemonServiceContract } from "./daemon-service-contract-B1EbK5p7.js";
29
- import { n as resolveOpenMeldEnvironmentTargetFromEnv, t as resolveOpenMeldEnvironmentTarget } from "./openmeld-environment-target-BOA_c8yO.js";
29
+ import { n as resolveOpenMeldEnvironmentTargetFromEnv, t as resolveOpenMeldEnvironmentTarget } from "./openmeld-environment-target-mLK2dK1_.js";
30
30
  import { i as requestLocalDaemonShutdown, r as requestLocalDaemonServiceUpdateReadiness, t as LocalDaemonControlPlaneClientError } from "./client-BPUPVl9o.js";
31
- import { _ as writeVersionState, d as compareSemver, g as readVersionState, h as isPlainReleaseVersion, i as readLatestDaemonLifecycleOriginEvent, l as OPENMELD_VERSION, m as fetchLatestPackageInfo, r as readLatestDaemonLifecycleConnectionStateEvent, s as runDaemonServiceManagerAction, t as emitDaemonLifecycleEvent, u as buildNextVersionState } from "./daemon-lifecycle-journal-ywEIaUn3.js";
31
+ import { _ as writeVersionState, d as compareSemver, g as readVersionState, h as isPlainReleaseVersion, i as readLatestDaemonLifecycleOriginEvent, l as OPENMELD_VERSION, m as fetchLatestPackageInfo, r as readLatestDaemonLifecycleConnectionStateEvent, s as runDaemonServiceManagerAction, t as emitDaemonLifecycleEvent, u as buildNextVersionState } from "./daemon-lifecycle-journal-D1dCp8bJ.js";
32
32
  import { i as windowsTaskActionArguments, l as windowsMaintenanceBinaryPath, n as runWindowsUserTask, r as windowsPowerShellPath } from "./windows-user-task-U2IiLe6I.js";
33
33
  import { S as resolveDaemonServiceManager, T as waitForLaunchdJobUnloaded, a as disableDaemonServiceAutostartIfConfigured, c as getDaemonSystemServiceLogPath, o as formatDaemonServiceJobDiagnosticsEvidence, s as getDaemonServiceLaunchdLabel, v as readDaemonServiceStartupPolicyCurrent, w as startLaunchdService } from "./daemon-service-manager-CSD613gh.js";
34
- import { a as readPendingOpenMeldToolsUpdateAttempt, n as discardPendingOpenMeldToolsUpdateAttempt, r as persistOpenMeldToolsUpdateAttempt, t as completeOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state-D8oDuOp9.js";
35
- import { n as encodePersistedOpenMeldToolsUpdateFailure, r as resolveOpenMeldToolsUpdateFailure, t as OpenMeldToolsUpdateFailureError } from "./openmeld-tools-update-failure-2jySZ04B.js";
36
- import { r as parseOpenMeldToolsUpdateFailureFrame, t as appendBoundedOpenMeldToolsUpdateProcessOutput } from "./openmeld-tools-update-process-frame-Dj3k5JHe.js";
34
+ import { a as readPendingOpenMeldToolsUpdateAttempt, n as discardPendingOpenMeldToolsUpdateAttempt, r as persistOpenMeldToolsUpdateAttempt, t as completeOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state--4fS27OC.js";
35
+ import { n as encodePersistedOpenMeldToolsUpdateFailure, r as resolveOpenMeldToolsUpdateFailure, t as OpenMeldToolsUpdateFailureError } from "./openmeld-tools-update-failure-B4OLQAq7.js";
36
+ import { r as parseOpenMeldToolsUpdateFailureFrame, t as appendBoundedOpenMeldToolsUpdateProcessOutput } from "./openmeld-tools-update-process-frame-CGFA81PP.js";
37
37
  import { randomUUID } from "node:crypto";
38
38
  import { tmpdir, userInfo } from "node:os";
39
39
  import { delimiter, dirname, join } from "node:path";
@@ -6591,12 +6591,19 @@ async function scheduleDaemonServiceUpdateLocked(input, deps) {
6591
6591
  pending,
6592
6592
  request: input
6593
6593
  });
6594
+ const operation = input.operationId && input.requestedAt ? {
6595
+ ...input,
6596
+ operationId: input.operationId,
6597
+ requestedAt: input.requestedAt
6598
+ } : null;
6599
+ await recordUpdateStep(operation, "preparing_service_bundle");
6594
6600
  const preparedBundle = await deps.prepareBundle({
6595
6601
  activate: false,
6596
6602
  daemonVersion: input.targetVersion,
6597
6603
  ...input.binaryRelease ? { binaryRelease: input.binaryRelease } : {},
6598
6604
  ...input.cliScriptPath ? { cliScriptPath: input.cliScriptPath } : {}
6599
6605
  });
6606
+ await recordUpdateStep(operation, "scheduling_service");
6600
6607
  const now = deps.now();
6601
6608
  const job = {
6602
6609
  v: 2,
@@ -6686,6 +6693,7 @@ async function runPendingDaemonServiceUpdate(overrides = {}) {
6686
6693
  if (!pending) return null;
6687
6694
  if (pending.phase === "updated") return pending;
6688
6695
  if (pending.urgency === "available") try {
6696
+ await recordUpdateStep(pending, "waiting_to_replace_service");
6689
6697
  await deps.waitUntilSafeToSwitch(pending);
6690
6698
  } catch (waitError) {
6691
6699
  try {
@@ -6759,16 +6767,15 @@ async function runPreparedPendingUpdate(deps) {
6759
6767
  operation: "upgrade_reconcile",
6760
6768
  preparedBundle: running.preparedBundle,
6761
6769
  shouldStartAfterLifecycle: running.desiredState === "background",
6762
- ...onlyIfIdle ? {
6763
- onlyIfIdle: true,
6764
- onPhase: async (phase) => {
6765
- if (phase === "wait_stopped") await deps.persistPendingJob({
6766
- ...running,
6767
- phase: "updating",
6768
- updatedAt: deps.now()
6769
- });
6770
- }
6771
- } : {}
6770
+ ...onlyIfIdle ? { onlyIfIdle: true } : {},
6771
+ onPhase: async (phase) => {
6772
+ await recordUpdateStep(running, `service_${phase}`);
6773
+ if (onlyIfIdle && phase === "wait_stopped") await deps.persistPendingJob({
6774
+ ...running,
6775
+ phase: "updating",
6776
+ updatedAt: deps.now()
6777
+ });
6778
+ }
6772
6779
  });
6773
6780
  if (lifecycle.status !== "aligned" && lifecycle.status !== "already_aligned") {
6774
6781
  const failed = finishJob(running, {
@@ -6924,43 +6931,6 @@ function isNewerTargetVersion(candidate, current) {
6924
6931
  return compareSemver(candidate, current) > 0;
6925
6932
  }
6926
6933
  //#endregion
6927
- //#region src/local-service/maintenance/openmeld-tools-update-context.ts
6928
- const OPERATION_ID_ENV = "OPENMELD_INTERNAL_TOOLS_UPDATE_OPERATION_ID";
6929
- const REQUESTED_AT_ENV = "OPENMELD_INTERNAL_TOOLS_UPDATE_REQUESTED_AT";
6930
- const REQUEST_SOURCE_ENV = "OPENMELD_INTERNAL_TOOLS_UPDATE_REQUEST_SOURCE";
6931
- const TARGET_CLI_VERSION_ENV = "OPENMELD_INTERNAL_TOOLS_UPDATE_TARGET_CLI_VERSION";
6932
- const TARGET_SERVICE_VERSION_ENV = "OPENMELD_INTERNAL_TOOLS_UPDATE_TARGET_SERVICE_VERSION";
6933
- function buildOpenMeldToolsUpdateContextEnv(context) {
6934
- return {
6935
- [OPERATION_ID_ENV]: context.operationId,
6936
- [REQUESTED_AT_ENV]: context.requestedAt,
6937
- [REQUEST_SOURCE_ENV]: context.requestSource,
6938
- ...context.targetCliVersion ? { [TARGET_CLI_VERSION_ENV]: context.targetCliVersion } : {},
6939
- ...context.targetServiceVersion ? { [TARGET_SERVICE_VERSION_ENV]: context.targetServiceVersion } : {}
6940
- };
6941
- }
6942
- function readOpenMeldToolsUpdateContextFromEnv(env = process.env) {
6943
- const operationId = normalize$1(env[OPERATION_ID_ENV]);
6944
- const requestedAt = normalize$1(env[REQUESTED_AT_ENV]);
6945
- const requestSource = openMeldToolsUpdateRequestSourceSchema.safeParse(env[REQUEST_SOURCE_ENV]);
6946
- const targetCliVersion = normalize$1(env[TARGET_CLI_VERSION_ENV]);
6947
- const targetServiceVersion = normalize$1(env[TARGET_SERVICE_VERSION_ENV]);
6948
- if (!(operationId && requestedAt && requestSource.success)) return null;
6949
- const requestedAtMs = Date.parse(requestedAt);
6950
- if (!Number.isFinite(requestedAtMs)) return null;
6951
- return {
6952
- operationId,
6953
- requestedAt: new Date(requestedAtMs).toISOString(),
6954
- requestSource: requestSource.data,
6955
- ...targetCliVersion ? { targetCliVersion } : {},
6956
- ...targetServiceVersion ? { targetServiceVersion } : {}
6957
- };
6958
- }
6959
- function normalize$1(value) {
6960
- const normalized = String(value ?? "").trim();
6961
- return normalized.length > 0 ? normalized : null;
6962
- }
6963
- //#endregion
6964
6934
  //#region src/command-entry-checks/cli-update-assessment.ts
6965
6935
  const OPENMELD_PACKAGE_NAME = "openmeld";
6966
6936
  const CLI_UPDATE_CACHE_TTL_MS = 864e5;
@@ -7240,6 +7210,7 @@ async function resolveMaintenanceCliInstallation() {
7240
7210
  };
7241
7211
  }
7242
7212
  async function runOpenMeldToolsUpgradeProcess(context, dependencies = {}) {
7213
+ await recordUpdateStep(context, "worker_claimed");
7243
7214
  const binaryDistribution = isBinaryDistribution();
7244
7215
  const cli = await resolveMaintenanceCliInstallation();
7245
7216
  const { command, argsPrefix } = resolveOpenMeldToolsUpgradeProgram({
@@ -7430,12 +7401,13 @@ async function runAttempt(attempt, deps) {
7430
7401
  };
7431
7402
  await deps.persistAttempt(running);
7432
7403
  try {
7404
+ const targets = resolveOpenMeldToolsUpdateTargetVersions(running.operation);
7433
7405
  const result = await deps.runUpgrade({
7434
7406
  operationId: running.operation.operationId,
7435
7407
  requestedAt: running.operation.requestedAt,
7436
7408
  requestSource: running.operation.requestSource,
7437
- targetCliVersion: running.operation.targetCliVersion,
7438
- targetServiceVersion: running.operation.targetServiceVersion
7409
+ targetCliVersion: targets.cliVersion,
7410
+ targetServiceVersion: targets.serviceVersion
7439
7411
  });
7440
7412
  if (result.exitCode !== 0) {
7441
7413
  const fallbackMessage = `OpenMeld update process exited with status ${String(result.exitCode)}.`;
@@ -7523,6 +7495,6 @@ function projectServiceJob(job) {
7523
7495
  };
7524
7496
  }
7525
7497
  //#endregion
7526
- export { formatDeviceReplyReadinessLabel as $, resolveDaemonStatusSnapshot as A, getSetupFlowCopy as At, formatDaemonServiceRefreshReliabilityMessage as B, classifyDaemonServiceRunStartability as Bt, isSystemServiceStartupTimeoutError as C, toStartBackgroundHelperExecutionCompatibility as Ct, captureDaemonServiceEvidence as D, PREPARE_SESSION_RECONNECT_GRACE_MS as Dt, startDaemonSystemServiceWithAutoRepair as E, resolveCurrentDaemonExpectedVersion as Et, buildDaemonServiceRefreshNextStep as F, resolveVersionChangeDirection as Ft, buildDaemonServiceDependencyDetails as G, daemonRouteObservationRouteSchema as Gt, resolveDaemonServiceFreshnessWarning as H, ensureDaemonSystemServiceCommandFiles as Ht, buildDaemonServiceRefreshPromptMessage as I, DAEMON_SERVICE_AUTO_HEAL_ANOMALIES as It, buildDaemonServiceDependencySummary as J, buildDaemonServiceDependencyMeaning as K, buildDaemonServiceRepairGuidance as L, DAEMON_SERVICE_FULL_ALIGNMENT_ANOMALIES as Lt, resolveDaemonStatusAuthenticationAttention as M, buildDaemonServiceTargetSpec as Mt, resolveServiceReadiness as N, resolveDaemonServiceAlignmentDecision as Nt, captureDaemonServiceEvidenceBestEffort as O, buildDaemonRouteObservationPresentation as Ot, resolveServiceReadinessFromServiceStatus as P, isVersionDowngrade as Pt, formatAgentReplyReadinessLabel as Q, buildDaemonServiceStatusReadOnlyDetail as R, DAEMON_SERVICE_REPAIR_ANOMALIES as Rt, isDaemonInventoryRunningAndStartReady as S, resolveDaemonRuntimeContractCompatibility as St, waitForSystemServiceStartup as T, readDaemonRuntimeContractRepairReport as Tt, clearDaemonStartFailureState as U, resolveInstalledDaemonSystemServiceCommandSpec as Ut, formatDaemonServiceUpdateRequiredMessage as V, classifyDaemonServiceWakeability as Vt, writeDaemonStartFailureState as W, daemonRouteObservationResponseSchema as Wt, resolveDaemonServiceDependencyDiagnostics as X, buildDaemonServiceDependencyTitle as Y, resolveCurrentReplyReadinessSnapshot as Z, runDaemonServiceLifecycle as _, hasActiveDaemonOwners as _t, resolveServiceUpdateUrgency as a, resolveReplyReadinessAvailabilityReasonCopy as at, startDaemonServiceUpdateWorker as b, resolveStoppedContractWriteBlockedReason as bt, readCurrentLocalRuntimeReplyReadiness as c, classifyGatewayChainFailure as ct, assessCliUpdate as d, resolveGatewayChainRetryGuidance as dt, formatHumanReplyReadinessReason as et, isCliUpdateCheckApplicable as f, resolveOpenClawLocalDiagnosticsValue as ft, DaemonServiceLifecycleDrainTimeoutError as g, formatDaemonOwnerSummaryLabel as gt, scheduleDaemonServiceUpdate as h, buildDaemonOwnerSnapshotFromObservedState as ht, writeOpenMeldToolsMaintenancePolicy as i, formatSpaceMemberCommandRecoveryCopy as it, resolveDaemonStatusAttention as j, writeDaemonServiceContract as jt, formatDaemonFailureContextText as k, buildOnboardingPlan as kt, buildLocalAgentCatalogFromReadiness as l, resolveGatewayChainReadiness as lt, runPendingDaemonServiceUpdate as m, inspectDaemonServiceInventory as mt, readOpenMeldToolsMaintenancePolicy as n, mapAgentReplyReadinessToLegacyAutoReply as nt, assessServerRequiredVersion as o, resolveReplyReadinessGuidanceSummaryCopy as ot, readOpenMeldToolsUpdateContextFromEnv as p, resolveLocalServiceDemand as pt, buildDaemonServiceDependencyNextStep as q, resolveOpenMeldToolsMaintenanceProjection as r, REPLY_READINESS_COPY as rt, describeServerRequiredVersionUnavailableReason as s, resolveOpenClawDiagnosticsGuidance as st, createOpenMeldToolsUpdateCoordinator as t, formatReplyReadinessSummary as tt, readCurrentLocalDeviceId as u, resolveGatewayChainRepairGuidance as ut, ensureDaemonServiceMaintenanceInstalled as v, readCurrentDaemonOwnerSnapshot as vt, resolveSystemServiceStartupWaitMs as w, ensureDaemonRuntimeContractState as wt, uninstallDaemonServiceUpdateWorker as x, summarizeDaemonOwnerSnapshot as xt, prepareDaemonServiceUpdateWorkerCarrier as y, resolveDaemonStopStrategy as yt, buildDaemonServiceUpdateRequiredNextStep as z, DAEMON_SERVICE_WAKEABILITY_ADVISORY_ANOMALIES as zt };
7498
+ export { formatHumanReplyReadinessReason as $, resolveDaemonStatusAttention as A, writeDaemonServiceContract as At, formatDaemonServiceUpdateRequiredMessage as B, classifyDaemonServiceWakeability as Bt, resolveSystemServiceStartupWaitMs as C, ensureDaemonRuntimeContractState as Ct, captureDaemonServiceEvidenceBestEffort as D, buildDaemonRouteObservationPresentation as Dt, captureDaemonServiceEvidence as E, PREPARE_SESSION_RECONNECT_GRACE_MS as Et, buildDaemonServiceRefreshPromptMessage as F, DAEMON_SERVICE_AUTO_HEAL_ANOMALIES as Ft, buildDaemonServiceDependencyMeaning as G, clearDaemonStartFailureState as H, resolveInstalledDaemonSystemServiceCommandSpec as Ht, buildDaemonServiceRepairGuidance as I, DAEMON_SERVICE_FULL_ALIGNMENT_ANOMALIES as It, buildDaemonServiceDependencyTitle as J, buildDaemonServiceDependencyNextStep as K, buildDaemonServiceStatusReadOnlyDetail as L, DAEMON_SERVICE_REPAIR_ANOMALIES as Lt, resolveServiceReadiness as M, resolveDaemonServiceAlignmentDecision as Mt, resolveServiceReadinessFromServiceStatus as N, isVersionDowngrade as Nt, formatDaemonFailureContextText as O, buildOnboardingPlan as Ot, buildDaemonServiceRefreshNextStep as P, resolveVersionChangeDirection as Pt, formatDeviceReplyReadinessLabel as Q, buildDaemonServiceUpdateRequiredNextStep as R, DAEMON_SERVICE_WAKEABILITY_ADVISORY_ANOMALIES as Rt, isSystemServiceStartupTimeoutError as S, toStartBackgroundHelperExecutionCompatibility as St, startDaemonSystemServiceWithAutoRepair as T, resolveCurrentDaemonExpectedVersion as Tt, writeDaemonStartFailureState as U, daemonRouteObservationResponseSchema as Ut, resolveDaemonServiceFreshnessWarning as V, ensureDaemonSystemServiceCommandFiles as Vt, buildDaemonServiceDependencyDetails as W, daemonRouteObservationRouteSchema as Wt, resolveCurrentReplyReadinessSnapshot as X, resolveDaemonServiceDependencyDiagnostics as Y, formatAgentReplyReadinessLabel as Z, ensureDaemonServiceMaintenanceInstalled as _, readCurrentDaemonOwnerSnapshot as _t, resolveServiceUpdateUrgency as a, resolveReplyReadinessGuidanceSummaryCopy as at, uninstallDaemonServiceUpdateWorker as b, summarizeDaemonOwnerSnapshot as bt, readCurrentLocalRuntimeReplyReadiness as c, resolveGatewayChainReadiness as ct, assessCliUpdate as d, resolveOpenClawLocalDiagnosticsValue as dt, formatReplyReadinessSummary as et, isCliUpdateCheckApplicable as f, resolveLocalServiceDemand as ft, runDaemonServiceLifecycle as g, hasActiveDaemonOwners as gt, DaemonServiceLifecycleDrainTimeoutError as h, formatDaemonOwnerSummaryLabel as ht, writeOpenMeldToolsMaintenancePolicy as i, resolveReplyReadinessAvailabilityReasonCopy as it, resolveDaemonStatusAuthenticationAttention as j, buildDaemonServiceTargetSpec as jt, resolveDaemonStatusSnapshot as k, getSetupFlowCopy as kt, buildLocalAgentCatalogFromReadiness as l, resolveGatewayChainRepairGuidance as lt, scheduleDaemonServiceUpdate as m, buildDaemonOwnerSnapshotFromObservedState as mt, readOpenMeldToolsMaintenancePolicy as n, REPLY_READINESS_COPY as nt, assessServerRequiredVersion as o, resolveOpenClawDiagnosticsGuidance as ot, runPendingDaemonServiceUpdate as p, inspectDaemonServiceInventory as pt, buildDaemonServiceDependencySummary as q, resolveOpenMeldToolsMaintenanceProjection as r, formatSpaceMemberCommandRecoveryCopy as rt, describeServerRequiredVersionUnavailableReason as s, classifyGatewayChainFailure as st, createOpenMeldToolsUpdateCoordinator as t, mapAgentReplyReadinessToLegacyAutoReply as tt, readCurrentLocalDeviceId as u, resolveGatewayChainRetryGuidance as ut, prepareDaemonServiceUpdateWorkerCarrier as v, resolveDaemonStopStrategy as vt, waitForSystemServiceStartup as w, readDaemonRuntimeContractRepairReport as wt, isDaemonInventoryRunningAndStartReady as x, resolveDaemonRuntimeContractCompatibility as xt, startDaemonServiceUpdateWorker as y, resolveStoppedContractWriteBlockedReason as yt, formatDaemonServiceRefreshReliabilityMessage as z, classifyDaemonServiceRunStartability as zt };
7527
7499
 
7528
- //# sourceMappingURL=openmeld-tools-update-coordinator-C3W6sFnm.js.map
7500
+ //# sourceMappingURL=openmeld-tools-update-coordinator-Doj6V0Qx.js.map