openmeld 0.3.281 → 0.3.287

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 (118) hide show
  1. package/dist/{add-me-membership-DqXAZVkb.js → add-me-membership-BEXHAhjy.js} +2 -2
  2. package/dist/{add-me-membership-DqXAZVkb.js.map → add-me-membership-BEXHAhjy.js.map} +1 -1
  3. package/dist/{agents-D64ZW_j4.js → agents-DTdo7eeT.js} +9 -9
  4. package/dist/{agents-D64ZW_j4.js.map → agents-DTdo7eeT.js.map} +1 -1
  5. package/dist/{api-client-foundation-B_2mex1y.js → api-client-foundation-RM1pxGSx.js} +1 -1
  6. package/dist/{api-client-foundation-C4qyWlX3.js → api-client-foundation-i2KBsQ7r.js} +5 -5
  7. package/dist/{api-client-foundation-C4qyWlX3.js.map → api-client-foundation-i2KBsQ7r.js.map} +1 -1
  8. package/dist/auth-session-C9F7usbn.js +3 -0
  9. package/dist/{auth-session-D3JW6vDg.js → auth-session-DRQMn41Z.js} +2 -2
  10. package/dist/{auth-session-D3JW6vDg.js.map → auth-session-DRQMn41Z.js.map} +1 -1
  11. package/dist/{channel-cw8i-ftD.js → channel-CFIRo4fR.js} +5 -5
  12. package/dist/channel-CFIRo4fR.js.map +1 -0
  13. package/dist/{client-DiJSFcdx.js → client-CBTgmyFC.js} +8 -3
  14. package/dist/client-CBTgmyFC.js.map +1 -0
  15. package/dist/{cloud-computer-0OvJeYOx.js → cloud-computer-CuWSimwt.js} +5 -5
  16. package/dist/{cloud-computer-0OvJeYOx.js.map → cloud-computer-CuWSimwt.js.map} +1 -1
  17. package/dist/{command-WV5fFpT1.js → command-DdMi5g2D.js} +18 -18
  18. package/dist/{command-WV5fFpT1.js.map → command-DdMi5g2D.js.map} +1 -1
  19. package/dist/{computer-connection-review-BGdzvTAD.js → computer-connection-review-B7eoK0xB.js} +4 -4
  20. package/dist/{computer-connection-review-BGdzvTAD.js.map → computer-connection-review-B7eoK0xB.js.map} +1 -1
  21. package/dist/{computer-disconnect-DWuokz-a.js → computer-disconnect-DGsCTpe8.js} +7 -7
  22. package/dist/{computer-disconnect-DWuokz-a.js.map → computer-disconnect-DGsCTpe8.js.map} +1 -1
  23. package/dist/{computer-setup-continuation-a55NW4KT.js → computer-setup-continuation-CnIYFkOu.js} +5 -5
  24. package/dist/{computer-setup-continuation-a55NW4KT.js.map → computer-setup-continuation-CnIYFkOu.js.map} +1 -1
  25. package/dist/{computer-update-wait-DqdHVh-N.js → computer-update-wait-Bm_oW5Ne.js} +4 -4
  26. package/dist/{computer-update-wait-DqdHVh-N.js.map → computer-update-wait-Bm_oW5Ne.js.map} +1 -1
  27. package/dist/{context-BvTB6oYE.js → context-BvLQjNGR.js} +5 -5
  28. package/dist/{context-BvTB6oYE.js.map → context-BvLQjNGR.js.map} +1 -1
  29. package/dist/{control-plane-Cenl7yjL.js → control-plane-dGjd5iC7.js} +7 -2
  30. package/dist/control-plane-dGjd5iC7.js.map +1 -0
  31. package/dist/{daemon-device-id-BqFtu1Mo.js → daemon-device-id-D-RHe9se.js} +4 -4
  32. package/dist/{daemon-device-id-BqFtu1Mo.js.map → daemon-device-id-D-RHe9se.js.map} +1 -1
  33. package/dist/{daemon-lifecycle-journal-CazLvrLu.js → daemon-lifecycle-journal-BK-K3kGX.js} +4 -4
  34. package/dist/{daemon-lifecycle-journal-CazLvrLu.js.map → daemon-lifecycle-journal-BK-K3kGX.js.map} +1 -1
  35. package/dist/{daemon-service-runtime-CfxejhNC.js → daemon-service-runtime-CaUu_AdU.js} +2 -2
  36. package/dist/{daemon-service-runtime-CfxejhNC.js.map → daemon-service-runtime-CaUu_AdU.js.map} +1 -1
  37. package/dist/{dispatch-owned-runtime-B1yce9CE.js → dispatch-owned-runtime-CZLplr8F.js} +12 -12
  38. package/dist/{dispatch-owned-runtime-B1yce9CE.js.map → dispatch-owned-runtime-CZLplr8F.js.map} +1 -1
  39. package/dist/{dist-Ba813GzD.js → dist-53uvP0DN.js} +16 -8
  40. package/dist/dist-53uvP0DN.js.map +1 -0
  41. package/dist/dist-8pH5plup.js +34 -0
  42. package/dist/{dist-jIVIF1cm.js → dist-BdlgY-m7.js} +3 -3
  43. package/dist/{dist-CpETT0Ue.js → dist-CZyGORfc.js} +1 -1
  44. package/dist/{dist-Bc3Rc5Tm.js → dist-D7SkvUZW.js} +15 -5
  45. package/dist/{dist-Bc3Rc5Tm.js.map → dist-D7SkvUZW.js.map} +1 -1
  46. package/dist/{dist-Bi-kM20D.js → dist-DptLNaka.js} +2 -2
  47. package/dist/{dist-Bi-kM20D.js.map → dist-DptLNaka.js.map} +1 -1
  48. package/dist/{dual-view-guide-catalog-CUcSHGLS.js → dual-view-guide-catalog-Df60SGOI.js} +4 -4
  49. package/dist/{dual-view-guide-catalog-CUcSHGLS.js.map → dual-view-guide-catalog-Df60SGOI.js.map} +1 -1
  50. package/dist/{elapsed-time-DnuzLO2r.js → elapsed-time-jRFzKVlC.js} +2 -2
  51. package/dist/{elapsed-time-DnuzLO2r.js.map → elapsed-time-jRFzKVlC.js.map} +1 -1
  52. package/dist/{entry-BqRLj_9V.js → entry-CKyKfeY0.js} +8 -8
  53. package/dist/{entry-BqRLj_9V.js.map → entry-CKyKfeY0.js.map} +1 -1
  54. package/dist/{installation-inventory-BMPU4Tgf.js → installation-inventory-Cm-cGiGv.js} +3 -3
  55. package/dist/{installation-inventory-BMPU4Tgf.js.map → installation-inventory-Cm-cGiGv.js.map} +1 -1
  56. package/dist/{installer-BLAf7RHI.js → installer-BMX4Gbpp.js} +2 -2
  57. package/dist/{installer-BLAf7RHI.js.map → installer-BMX4Gbpp.js.map} +1 -1
  58. package/dist/{meta-api-B6TZqn2K.js → meta-api-BpSn7MBy.js} +8 -8
  59. package/dist/{meta-api-B6TZqn2K.js.map → meta-api-BpSn7MBy.js.map} +1 -1
  60. package/dist/{openmeld-DCf4ITd3.js → openmeld-DI9YIFFj.js} +78 -55
  61. package/dist/openmeld-DI9YIFFj.js.map +1 -0
  62. package/dist/{openmeld-environment-target-CeFk6jOe.js → openmeld-environment-target-DydyKO8Z.js} +2 -2
  63. package/dist/{openmeld-environment-target-CeFk6jOe.js.map → openmeld-environment-target-DydyKO8Z.js.map} +1 -1
  64. package/dist/{openmeld-maintenance-worker-Cito5UjR.js → openmeld-maintenance-worker-C3cdKkJO.js} +11 -10
  65. package/dist/{openmeld-maintenance-worker-Cito5UjR.js.map → openmeld-maintenance-worker-C3cdKkJO.js.map} +1 -1
  66. package/dist/{openmeld-tools-update-coordinator-DasnCwiO.js → openmeld-tools-update-coordinator-B_Dd_-GW.js} +142 -73
  67. package/dist/{openmeld-tools-update-coordinator-DasnCwiO.js.map → openmeld-tools-update-coordinator-B_Dd_-GW.js.map} +1 -1
  68. package/dist/{openmeld-tools-update-join-DZq4B1-c.js → openmeld-tools-update-join-B0bVe2pL.js} +2 -2
  69. package/dist/{openmeld-tools-update-join-DZq4B1-c.js.map → openmeld-tools-update-join-B0bVe2pL.js.map} +1 -1
  70. package/dist/openmeld.js +5 -5
  71. package/dist/{prepare-provider-runtime-D9G1oa37.js → prepare-provider-runtime-B4go-qdR.js} +155 -92
  72. package/dist/prepare-provider-runtime-B4go-qdR.js.map +1 -0
  73. package/dist/{prepare-session-executor-BtXNgehw.js → prepare-session-executor-Cpq7jQJg.js} +19 -19
  74. package/dist/{prepare-session-executor-BtXNgehw.js.map → prepare-session-executor-Cpq7jQJg.js.map} +1 -1
  75. package/dist/{presenter-PTSj6SjL.js → presenter-DMoE2U_q.js} +2 -2
  76. package/dist/{presenter-PTSj6SjL.js.map → presenter-DMoE2U_q.js.map} +1 -1
  77. package/dist/{process-channel-s-29YBmx.js → process-channel-DtJ01mUI.js} +2 -2
  78. package/dist/{process-channel-s-29YBmx.js.map → process-channel-DtJ01mUI.js.map} +1 -1
  79. package/dist/{runtime-CRML37Zi.js → runtime-CxjWWXTL.js} +32 -23
  80. package/dist/runtime-CxjWWXTL.js.map +1 -0
  81. package/dist/{runtime-agent-controller-reporting-submission-Bmi-TI7L.js → runtime-agent-controller-reporting-submission-Cnpnw9UC.js} +9 -9
  82. package/dist/{runtime-agent-controller-reporting-submission-Bmi-TI7L.js.map → runtime-agent-controller-reporting-submission-Cnpnw9UC.js.map} +1 -1
  83. package/dist/{runtime-transport--NUjMys2.js → runtime-transport-Dg7E0ROH.js} +3 -3
  84. package/dist/{runtime-transport--NUjMys2.js.map → runtime-transport-Dg7E0ROH.js.map} +1 -1
  85. package/dist/{sensitive-operation-credentials-DLvCUcPG.js → sensitive-operation-credentials-Dr_neVvL.js} +4 -4
  86. package/dist/{sensitive-operation-credentials-DLvCUcPG.js.map → sensitive-operation-credentials-Dr_neVvL.js.map} +1 -1
  87. package/dist/{service-CAVnFGS6.js → service-_kQjYdi5.js} +136 -45
  88. package/dist/service-_kQjYdi5.js.map +1 -0
  89. package/dist/{service-account-authorization-uXkl3vrp.js → service-account-authorization-DiSsm3hB.js} +3 -3
  90. package/dist/{service-account-authorization-uXkl3vrp.js.map → service-account-authorization-DiSsm3hB.js.map} +1 -1
  91. package/dist/{service-account-control-C5t63oqC.js → service-account-control-B4Ja3gU_.js} +9 -9
  92. package/dist/{service-account-control-C5t63oqC.js.map → service-account-control-B4Ja3gU_.js.map} +1 -1
  93. package/dist/{service-control-capabilities-DD8rKK5X.js → service-control-capabilities-D39aQwkY.js} +1 -1
  94. package/dist/{service-control-capabilities-D82eDKGc.js → service-control-capabilities-MWGiNNTg.js} +3 -3
  95. package/dist/{service-control-capabilities-D82eDKGc.js.map → service-control-capabilities-MWGiNNTg.js.map} +1 -1
  96. package/dist/{state-BrFamidO.js → state-Der85tER.js} +2 -2
  97. package/dist/{state-BrFamidO.js.map → state-Der85tER.js.map} +1 -1
  98. package/dist/{task-result-DB1vR1p4.js → task-result-DhOFm1C_.js} +9 -2
  99. package/dist/task-result-DhOFm1C_.js.map +1 -0
  100. package/dist/{updates-api-DkKnmoi1.js → updates-api-B8lZk9gI.js} +15 -15
  101. package/dist/{updates-api-DkKnmoi1.js.map → updates-api-B8lZk9gI.js.map} +1 -1
  102. package/dist/{upgrade-Df1VFgZU.js → upgrade-C8iFbxmb.js} +10 -10
  103. package/dist/{upgrade-Df1VFgZU.js.map → upgrade-C8iFbxmb.js.map} +1 -1
  104. package/dist/upgrade-DECIvSJc.js +3 -0
  105. package/dist/windows/openmeld-windows-process.exe +0 -0
  106. package/package.json +10 -10
  107. package/dist/auth-session-CDfkRP6v.js +0 -3
  108. package/dist/channel-cw8i-ftD.js.map +0 -1
  109. package/dist/client-DiJSFcdx.js.map +0 -1
  110. package/dist/control-plane-Cenl7yjL.js.map +0 -1
  111. package/dist/dist-Ba813GzD.js.map +0 -1
  112. package/dist/dist-CYV83fQw.js +0 -34
  113. package/dist/openmeld-DCf4ITd3.js.map +0 -1
  114. package/dist/prepare-provider-runtime-D9G1oa37.js.map +0 -1
  115. package/dist/runtime-CRML37Zi.js.map +0 -1
  116. package/dist/service-CAVnFGS6.js.map +0 -1
  117. package/dist/task-result-DB1vR1p4.js.map +0 -1
  118. package/dist/upgrade-yYdxvxwi.js +0 -3
@@ -3,7 +3,7 @@
3
3
  import { a as resolveBaseUrl, r as normalizeGatewayBaseUrl, s as resolveDefaultGatewayBaseUrl } from "./base-url-b30kK86t.js";
4
4
  import { P as resolveOpenMeldEnvPreset } from "./paths-De9xdA2h.js";
5
5
  import { r as resolveAuthBaseUrl } from "./auth-url-Dnpds8Yf.js";
6
- import { ft as resolveUserFacingCliEntryCommand } from "./auth-session-D3JW6vDg.js";
6
+ import { ft as resolveUserFacingCliEntryCommand } from "./auth-session-DRQMn41Z.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-CeFk6jOe.js.map
60
+ //# sourceMappingURL=openmeld-environment-target-DydyKO8Z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-environment-target-CeFk6jOe.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-DydyKO8Z.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-b30kK86t.js";
4
- import { Ut as resolveSkillsAgentRegistry } from "./prepare-provider-runtime-D9G1oa37.js";
5
- import { f as withSkillsInstallLock, l as downloadOfficialSkillUpdate, r as ensureLocalSkills } from "./state-BrFamidO.js";
6
- import { K as reconcileManagedCliLauncher, Z as configureDaemonMaintenanceEnvironment, g as assertDaemonMaintenanceInstallationOwnership } from "./daemon-service-runtime-CfxejhNC.js";
4
+ import { Ut as resolveSkillsAgentRegistry } from "./prepare-provider-runtime-B4go-qdR.js";
5
+ import { f as withSkillsInstallLock, l as downloadOfficialSkillUpdate, r as ensureLocalSkills } from "./state-Der85tER.js";
6
+ import { K as reconcileManagedCliLauncher, Z as configureDaemonMaintenanceEnvironment, g as assertDaemonMaintenanceInstallationOwnership } from "./daemon-service-runtime-CaUu_AdU.js";
7
7
  import { a as readPendingDaemonServiceUpdate, n as completePendingDaemonServiceUpdate } from "./daemon-service-update-state-BSn45OHj.js";
8
- import { h as scheduleDaemonServiceUpdate, m as runPendingDaemonServiceUpdate, n as readOpenMeldToolsMaintenancePolicy, t as createOpenMeldToolsUpdateCoordinator, y as prepareDaemonServiceUpdateWorkerCarrier } from "./openmeld-tools-update-coordinator-DasnCwiO.js";
8
+ import { h as scheduleDaemonServiceUpdate, m as runPendingDaemonServiceUpdate, n as readOpenMeldToolsMaintenancePolicy, t as createOpenMeldToolsUpdateCoordinator, y as prepareDaemonServiceUpdateWorkerCarrier } from "./openmeld-tools-update-coordinator-B_Dd_-GW.js";
9
9
  import { a as isOpenMeldOrphanedLockError, d as runWithHeldLock, i as isOpenMeldLockError, t as acquireLock } from "./lock-DP8d33p_.js";
10
10
  import { G as withDaemonServiceReconcileLock } from "./daemon-state-CTOVPwNq.js";
11
11
  import { i as readDaemonServiceContract } from "./daemon-service-contract-CsANv7K_.js";
12
- import { l as OPENMELD_VERSION } from "./daemon-lifecycle-journal-CazLvrLu.js";
12
+ import { l as OPENMELD_VERSION } from "./daemon-lifecycle-journal-BK-K3kGX.js";
13
13
  import { S as resolveDaemonServiceManager, v as readDaemonServiceStartupPolicyCurrent } from "./daemon-service-manager-a5tY3qpR.js";
14
14
  import { a as readPendingOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state-B6t53OYC.js";
15
- import { s as resolveTrackedInstallTargets } from "./installation-inventory-BMPU4Tgf.js";
16
- import { t as installSkillsToTargets } from "./installer-BLAf7RHI.js";
15
+ import { s as resolveTrackedInstallTargets } from "./installation-inventory-Cm-cGiGv.js";
16
+ import { t as installSkillsToTargets } from "./installer-BMX4Gbpp.js";
17
17
  //#region src/skills/maintenance.ts
18
18
  async function maintainOfficialCliSkill() {
19
19
  if (await downloadOfficialSkillUpdate().catch((error) => {
@@ -80,7 +80,7 @@ async function runMaintenancePass() {
80
80
  }
81
81
  const result = await runPendingDaemonServiceUpdate();
82
82
  if (result?.phase === "updated") {
83
- const { finishComputerSetupAfterBackgroundUpdate, recoverComputerSetupAfterBackgroundUpdate } = await import("./computer-setup-continuation-a55NW4KT.js");
83
+ const { finishComputerSetupAfterBackgroundUpdate, recoverComputerSetupAfterBackgroundUpdate } = await import("./computer-setup-continuation-CnIYFkOu.js");
84
84
  await prepareDaemonServiceUpdateWorkerCarrier(result);
85
85
  await finishComputerSetupAfterBackgroundUpdate();
86
86
  await withDaemonServiceReconcileLock(async () => {
@@ -103,10 +103,11 @@ async function reconcileCurrentServiceStartupPolicy(updatesCurrent) {
103
103
  status: await manager?.status() ?? null
104
104
  }) === false) await scheduleDaemonServiceUpdate({
105
105
  targetVersion: contract.daemonVersion,
106
- urgency: "available"
106
+ urgency: "available",
107
+ requestSource: "automatic"
107
108
  });
108
109
  }
109
110
  //#endregion
110
111
  export { runOpenMeldMaintenanceWorker };
111
112
 
112
- //# sourceMappingURL=openmeld-maintenance-worker-Cito5UjR.js.map
113
+ //# sourceMappingURL=openmeld-maintenance-worker-C3cdKkJO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-maintenance-worker-Cito5UjR.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 });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"openmeld-maintenance-worker-C3cdKkJO.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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"}
@@ -5,30 +5,30 @@ import { D as isLoopbackHostname, a as resolveBaseUrl, c as resolveExplicitGatew
5
5
  import { D as openMeldRootDir, F as resolveOpenMeldRootDir, P as resolveOpenMeldEnvPreset, T as openMeldManagedVersionBinaryPath, t as OPENMELD_HOME_ENV_KEY, x as openMeldBackupsDir } from "./paths-De9xdA2h.js";
6
6
  import { r as resolveAuthBaseUrl } from "./auth-url-Dnpds8Yf.js";
7
7
  import { lt as daemonServiceLaneSchema, mt as localAgentCatalogSchema } from "./dist-zRc0hA1y.js";
8
- import { $ as resolvePublicAgentFailureRecovery, Q as resolvePublicAgentAvailabilityCopy } from "./task-result-DB1vR1p4.js";
9
- import { en as createCurrentDeviceApi, rr as toStructuredApiClientFailure } from "./dist-Ba813GzD.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-D9G1oa37.js";
11
- import { M as toErrorMessage$4, m as OPENMELD_HEADER_PROFILE_ID } from "./dist-Bc3Rc5Tm.js";
12
- import { L as runtimeTransportErrorCodeSchema, Z as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, a as daemonExecutionCompatibilitySchema, d as localWakeRouteReportSchema, it as runtimeTransportRejectedProfileRegistrationSchema, v as runtimeTransportCapabilitiesSchema } from "./runtime-transport--NUjMys2.js";
8
+ import { $ as resolvePublicAgentAvailabilityCopy, et as resolvePublicAgentFailureRecovery } from "./task-result-DhOFm1C_.js";
9
+ import { en as createCurrentDeviceApi, rr as toStructuredApiClientFailure } from "./dist-53uvP0DN.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-B4go-qdR.js";
11
+ import { M as toErrorMessage$4, m as OPENMELD_HEADER_PROFILE_ID } from "./dist-D7SkvUZW.js";
12
+ import { L as runtimeTransportErrorCodeSchema, Z as runtimeTransportLookupRouteOwnerServiceEvidenceSchema, a as daemonExecutionCompatibilitySchema, d as localWakeRouteReportSchema, it as runtimeTransportRejectedProfileRegistrationSchema, v as runtimeTransportCapabilitiesSchema } from "./runtime-transport-Dg7E0ROH.js";
13
13
  import { I as openMeldToolsUpdateRequestSourceSchema } from "./local-components-B3vffkMy.js";
14
- import { it as providerDispatchRuntimeContextSchema } from "./control-plane-Cenl7yjL.js";
15
- import { E as DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE, T as DAEMON_RUNTIME_CONTRACT_META_FILE, _ as toErrorMessage$5, c as normalizeHeartbeatIntervalMs, i as resolvePreferredDaemonDeviceId, n as ensureDaemonRuntimePaths, o as dirnamePath, r as resolveDaemonDeviceId, u as normalizeOptionalText$3, x as CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS } from "./daemon-device-id-BqFtu1Mo.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-CfxejhNC.js";
14
+ import { it as providerDispatchRuntimeContextSchema } from "./control-plane-dGjd5iC7.js";
15
+ import { E as DAEMON_RUNTIME_CONTRACT_REPAIR_REPORT_FILE, T as DAEMON_RUNTIME_CONTRACT_META_FILE, _ as toErrorMessage$5, c as normalizeHeartbeatIntervalMs, i as resolvePreferredDaemonDeviceId, n as ensureDaemonRuntimePaths, o as dirnamePath, r as resolveDaemonDeviceId, u as normalizeOptionalText$3, x as CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS } from "./daemon-device-id-D-RHe9se.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-CaUu_AdU.js";
17
17
  import { r as readDaemonRuntimeLease } from "./daemon-runtime-lease-DRYVXnBQ.js";
18
18
  import { a as readPendingDaemonServiceUpdate, n as completePendingDaemonServiceUpdate, r as persistPendingDaemonServiceUpdate, t as DAEMON_SERVICE_UPDATE_JOB_SCHEMA } from "./daemon-service-update-state-BSn45OHj.js";
19
19
  import { r as windowsDirectTaskArguments } from "./windows-task-command-COu_6Ke3.js";
20
- import { H as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, at as formatOpenMeldCliCommand, ct as formatOpenMeldCliTextBlock, d as getAuthSessionState, h as hasPendingComputerSetupContinuation, it as formatInlineOpenMeldCliCommands, ot as formatOpenMeldCliCommands } from "./auth-session-D3JW6vDg.js";
20
+ import { H as DEFAULT_GATEWAY_CHAIN_TIMEOUT_MS$1, at as formatOpenMeldCliCommand, ct as formatOpenMeldCliTextBlock, d as getAuthSessionState, h as hasPendingComputerSetupContinuation, it as formatInlineOpenMeldCliCommands, ot as formatOpenMeldCliCommands } from "./auth-session-DRQMn41Z.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-BvTB6oYE.js";
23
+ import { n as resolveRuntimeContext, o as resolveOpenMeldProfileOrNull } from "./context-BvLQjNGR.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-CTOVPwNq.js";
26
- import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-C4qyWlX3.js";
26
+ import { c as buildRequestAuthHeaders, d as buildOpenMeldRequestContextFromProfile, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation } from "./api-client-foundation-i2KBsQ7r.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-CsANv7K_.js";
29
- import { n as resolveOpenMeldEnvironmentTargetFromEnv, t as resolveOpenMeldEnvironmentTarget } from "./openmeld-environment-target-CeFk6jOe.js";
30
- import { i as requestLocalDaemonShutdown, r as requestLocalDaemonServiceUpdateReadiness, t as LocalDaemonControlPlaneClientError } from "./client-DiJSFcdx.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-CazLvrLu.js";
29
+ import { n as resolveOpenMeldEnvironmentTargetFromEnv, t as resolveOpenMeldEnvironmentTarget } from "./openmeld-environment-target-DydyKO8Z.js";
30
+ import { i as requestLocalDaemonShutdown, r as requestLocalDaemonServiceUpdateReadiness, t as LocalDaemonControlPlaneClientError } from "./client-CBTgmyFC.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-BK-K3kGX.js";
32
32
  import { i as windowsTaskActionArguments, l as windowsMaintenanceBinaryPath, n as runWindowsUserTask, r as windowsPowerShellPath } from "./windows-user-task-CKb_u29X.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-a5tY3qpR.js";
34
34
  import { a as readPendingOpenMeldToolsUpdateAttempt, n as discardPendingOpenMeldToolsUpdateAttempt, r as persistOpenMeldToolsUpdateAttempt, t as completeOpenMeldToolsUpdateAttempt } from "./openmeld-tools-update-attempt-state-B6t53OYC.js";
@@ -5306,6 +5306,12 @@ var DaemonServiceLifecycleDrainTimeoutError = class extends Error {
5306
5306
  this.waitMs = waitMs;
5307
5307
  }
5308
5308
  };
5309
+ var DaemonServiceUpdateDeferredError = class extends Error {
5310
+ constructor() {
5311
+ super("New local work arrived before the update could switch the Service.");
5312
+ this.name = "DaemonServiceUpdateDeferredError";
5313
+ }
5314
+ };
5309
5315
  var DaemonServiceLifecycleControlledDrainError = class extends Error {
5310
5316
  cause;
5311
5317
  constructor(cause) {
@@ -5362,6 +5368,7 @@ async function runDaemonServiceLifecycle(input) {
5362
5368
  });
5363
5369
  };
5364
5370
  try {
5371
+ if (input.onlyIfIdle && input.forceKillAfterDrainTimeout) throw new Error("An idle update switch cannot force-stop the Service.");
5365
5372
  await emitPhase("inspect");
5366
5373
  state.inventoryBefore = await inspectDaemonServiceInventory({
5367
5374
  expectedVersion: input.expectedVersion,
@@ -5443,10 +5450,11 @@ async function runDaemonServiceLifecycle(input) {
5443
5450
  restorePoint,
5444
5451
  preparedBundle,
5445
5452
  drainWaitMs: input.drainWaitMs ?? PROCESS_STOP_WAIT_MS,
5446
- forceKillAfterDrainTimeout: input.forceKillAfterDrainTimeout === true
5453
+ forceKillAfterDrainTimeout: input.forceKillAfterDrainTimeout === true,
5454
+ onlyIfIdle: input.onlyIfIdle
5447
5455
  });
5448
5456
  } catch (error) {
5449
- if (error instanceof DaemonServiceLifecycleDrainTimeoutError) throw error;
5457
+ if (error instanceof DaemonServiceLifecycleDrainTimeoutError || error instanceof DaemonServiceUpdateDeferredError) throw error;
5450
5458
  state.evidencePath = await captureDaemonServiceEvidenceBestEffort({
5451
5459
  evidencePath: state.evidencePath ?? void 0,
5452
5460
  phase: "after_failure",
@@ -5520,6 +5528,7 @@ async function executeDaemonServiceLifecycle(input) {
5520
5528
  await stopLifecycleRuntime({
5521
5529
  drainWaitMs: input.drainWaitMs,
5522
5530
  forceKillAfterDrainTimeout: input.forceKillAfterDrainTimeout,
5531
+ onlyIfIdle: input.onlyIfIdle,
5523
5532
  inventory: input.inventoryBefore,
5524
5533
  operation: input.operation,
5525
5534
  serviceManager: input.context.serviceManager,
@@ -5531,11 +5540,13 @@ async function executeDaemonServiceLifecycle(input) {
5531
5540
  inventory: input.inventoryBefore,
5532
5541
  serviceManager: input.context.serviceManager
5533
5542
  });
5534
- input.state.failureStage = "backup";
5535
- await input.emitPhase("backup");
5536
- input.state.runtimeDataBackup = await backupDaemonRuntimeDataForReinstall();
5537
- input.state.backupRootPath = input.state.runtimeDataBackup?.backupRootPath ?? null;
5538
- input.state.backupDataPath = input.state.runtimeDataBackup?.backupDataPath ?? null;
5543
+ if (input.inventoryBefore.legacySharedService?.present) {
5544
+ input.state.failureStage = "backup";
5545
+ await input.emitPhase("backup");
5546
+ input.state.runtimeDataBackup = await backupDaemonRuntimeDataForReinstall();
5547
+ input.state.backupRootPath = input.state.runtimeDataBackup?.backupRootPath ?? null;
5548
+ input.state.backupDataPath = input.state.runtimeDataBackup?.backupDataPath ?? null;
5549
+ }
5539
5550
  input.state.failureStage = "unregister";
5540
5551
  await input.emitPhase("unregister");
5541
5552
  await input.context.serviceManager.uninstall();
@@ -5642,7 +5653,7 @@ async function executeDaemonServiceLifecycle(input) {
5642
5653
  errorMessage: null
5643
5654
  };
5644
5655
  } catch (error) {
5645
- if (error instanceof DaemonServiceLifecycleDrainTimeoutError || error instanceof DaemonServiceLifecycleControlledDrainError) throw error;
5656
+ if (error instanceof DaemonServiceLifecycleDrainTimeoutError || error instanceof DaemonServiceUpdateDeferredError || error instanceof DaemonServiceLifecycleControlledDrainError || input.onlyIfIdle && input.state.failureStage === "stop_or_drain") throw error;
5646
5657
  input.state.evidencePath = await captureDaemonServiceEvidenceBestEffort({
5647
5658
  evidencePath: input.state.evidencePath ?? void 0,
5648
5659
  phase: "after_failure"
@@ -5706,6 +5717,31 @@ async function recoverLifecycleFailure(input) {
5706
5717
  };
5707
5718
  }
5708
5719
  const recoveryErrorMessage = verifiedRollbackError ? `${originalErrorMessage}; verified previous Service recovery failed: ${toErrorMessage$6(verifiedRollbackError)}` : originalErrorMessage;
5720
+ if (originalFailureStage === "backup") {
5721
+ let backupRecoveryErrorMessage = recoveryErrorMessage;
5722
+ if (input.inventoryBefore.serviceManagerStatus?.enabled === true) await input.serviceManager.enableAutostart().catch((error) => {
5723
+ backupRecoveryErrorMessage += `; failed to restore service autostart: ${toErrorMessage$6(error)}`;
5724
+ });
5725
+ if (input.restorePoint.shouldStartAfterLifecycle) await input.serviceManager.start().catch((error) => {
5726
+ backupRecoveryErrorMessage += `; failed to restart previous Service: ${toErrorMessage$6(error)}`;
5727
+ });
5728
+ return {
5729
+ status: "failed",
5730
+ targetVersion: input.expectedVersion,
5731
+ inventoryBefore: input.inventoryBefore,
5732
+ inventoryAfter: null,
5733
+ reasonCodes: originalReasonCodes,
5734
+ completedPhases: input.state.completedPhases,
5735
+ desiredState: input.restorePoint.desiredState,
5736
+ shouldStartAfterLifecycle: input.restorePoint.shouldStartAfterLifecycle,
5737
+ backupDataPath: input.state.backupDataPath,
5738
+ failureStage: originalFailureStage,
5739
+ evidencePath: input.state.evidencePath,
5740
+ recoveryStatus: "failed_before_safe_state",
5741
+ errorCode: originalErrorCode,
5742
+ errorMessage: backupRecoveryErrorMessage
5743
+ };
5744
+ }
5709
5745
  const stoppedSafe = await transitionLifecycleToStoppedSafeCurrentVersion({
5710
5746
  commandOptions: input.commandOptions,
5711
5747
  currentContract: input.currentContract,
@@ -5898,6 +5934,13 @@ async function stopLifecycleRuntime(input) {
5898
5934
  }
5899
5935
  const runtimeStatus = input.inventory.runtimeStatus;
5900
5936
  if (runtimeStatus.status !== "running") return;
5937
+ if (input.onlyIfIdle) {
5938
+ await requestControlledSystemServiceDrain({
5939
+ ...input,
5940
+ lifecycleIntent
5941
+ });
5942
+ return;
5943
+ }
5901
5944
  if (!Number.isInteger(runtimeStatus.pid) || runtimeStatus.pid === null) throw new DaemonServiceLifecycleStageError({
5902
5945
  message: "OpenMeld runtime is marked running but no pid is available.",
5903
5946
  stage: "stop_or_drain"
@@ -5917,6 +5960,7 @@ async function stopLifecycleSystemServiceRuntime(input) {
5917
5960
  let drained = false;
5918
5961
  try {
5919
5962
  drained = hasActiveLifecycleRuntimeEvidence(input.inventory) && !input.forceKillAfterDrainTimeout && await requestControlledSystemServiceDrain({
5963
+ onlyIfIdle: input.onlyIfIdle,
5920
5964
  drainWaitMs: input.drainWaitMs,
5921
5965
  inventory: input.inventory,
5922
5966
  lifecycleIntent: input.lifecycleIntent,
@@ -5927,11 +5971,7 @@ async function stopLifecycleSystemServiceRuntime(input) {
5927
5971
  if (restoreAutostartOnDrainFailure) try {
5928
5972
  await input.serviceManager.enableAutostart();
5929
5973
  } catch (restoreError) {
5930
- throw new DaemonServiceLifecycleStageError({
5931
- cause: restoreError,
5932
- message: `${toErrorMessage$6(drainError)}; failed to restore service autostart: ${toErrorMessage$6(restoreError)}`,
5933
- stage: "stop_or_drain"
5934
- });
5974
+ throw new DaemonServiceLifecycleControlledDrainError(/* @__PURE__ */ new Error(`${toErrorMessage$6(drainError)}; failed to restore service autostart: ${toErrorMessage$6(restoreError)}`));
5935
5975
  }
5936
5976
  throw drainError;
5937
5977
  }
@@ -5946,12 +5986,14 @@ function hasActiveLifecycleRuntimeEvidence(inventory) {
5946
5986
  async function requestControlledSystemServiceDrain(input) {
5947
5987
  try {
5948
5988
  const shutdown = await requestLocalDaemonShutdown({
5989
+ ...input.onlyIfIdle ? { onlyIfIdle: true } : {},
5949
5990
  payload: {
5950
5991
  gracePeriodMs: input.drainWaitMs,
5951
5992
  mode: "graceful"
5952
5993
  },
5953
5994
  timeoutMs: CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS
5954
5995
  });
5996
+ const refusedResult = input.onlyIfIdle ? "deferred" : "unsupported";
5955
5997
  await emitDaemonLifecycleEvent({
5956
5998
  command: `openmeld service ${input.operation.replaceAll("_", "-")}`,
5957
5999
  intent: input.lifecycleIntent,
@@ -5960,24 +6002,15 @@ async function requestControlledSystemServiceDrain(input) {
5960
6002
  gracePeriodMs: shutdown.gracePeriodMs,
5961
6003
  mode: shutdown.mode
5962
6004
  },
5963
- result: shutdown.accepted ? "completed" : "unsupported",
6005
+ result: shutdown.accepted ? "completed" : refusedResult,
5964
6006
  stopCause: input.stopCause,
5965
6007
  type: "stop.controlled_drain"
5966
6008
  });
6009
+ if (input.onlyIfIdle && !shutdown.accepted) throw new DaemonServiceUpdateDeferredError();
5967
6010
  return shutdown.accepted;
5968
6011
  } catch (error) {
5969
- const isLegacyShutdownContract = error instanceof LocalDaemonControlPlaneClientError && error.code === "daemon.control.contract_mismatch";
5970
- const isManagerRunningWithoutRuntime = error instanceof LocalDaemonControlPlaneClientError && error.code === "daemon.control.endpoint_missing" && input.inventory.runtimeStatus.status !== "running" && input.inventory.ownedProcesses.length === 0;
5971
- const isLegacyMissingCloseReason = isLegacyMissingControlledShutdownCloseReason({
5972
- error,
5973
- inventory: input.inventory
5974
- });
5975
- const isLegacyControlledShutdownTimeout = isOlderServiceControlledShutdownTimeout({
5976
- error,
5977
- inventory: input.inventory
5978
- });
5979
- const isCompatibilityFallback = isLegacyShutdownContract || isLegacyMissingCloseReason || isLegacyControlledShutdownTimeout || isManagerRunningWithoutRuntime;
5980
- const observedDaemonVersion = isLegacyMissingCloseReason || isLegacyControlledShutdownTimeout ? resolveObservedDaemonVersion(input.inventory) : null;
6012
+ if (error instanceof DaemonServiceUpdateDeferredError) throw error;
6013
+ const { isLegacyShutdownContract, isManagerRunningWithoutRuntime, isLegacyMissingCloseReason, observedDaemonVersion, isCompatibilityFallback } = classifyControlledShutdownFailure(error, input.inventory, input.onlyIfIdle === true);
5981
6014
  await emitDaemonLifecycleEvent({
5982
6015
  command: `openmeld service ${input.operation.replaceAll("_", "-")}`,
5983
6016
  intent: input.lifecycleIntent,
@@ -5987,11 +6020,6 @@ async function requestControlledSystemServiceDrain(input) {
5987
6020
  compatibilityReason: "legacy_missing_close_reason",
5988
6021
  observedDaemonVersion
5989
6022
  } : {},
5990
- ...isLegacyControlledShutdownTimeout ? {
5991
- compatibilityReason: "legacy_controlled_shutdown_timeout",
5992
- observedDaemonVersion,
5993
- reasonCode: "socket_close_timeout"
5994
- } : {},
5995
6023
  ...isManagerRunningWithoutRuntime ? { compatibilityReason: "manager_running_without_runtime" } : {},
5996
6024
  errorMessage: toErrorMessage$6(error)
5997
6025
  },
@@ -6000,21 +6028,24 @@ async function requestControlledSystemServiceDrain(input) {
6000
6028
  type: "stop.controlled_drain"
6001
6029
  });
6002
6030
  if (isCompatibilityFallback) return false;
6031
+ if (input.onlyIfIdle && isLegacyShutdownContract) throw new DaemonServiceLifecycleControlledDrainError(/* @__PURE__ */ new Error("This Service cannot confirm an atomic idle update switch. Update OpenMeld manually when current work finishes."));
6003
6032
  throw new DaemonServiceLifecycleControlledDrainError(error);
6004
6033
  }
6005
6034
  }
6006
- function isOlderServiceControlledShutdownTimeout(input) {
6007
- if (!(input.error instanceof LocalDaemonControlPlaneClientError) || input.error.code !== "daemon.control.timeout") return false;
6008
- const observedDaemonVersion = resolveObservedDaemonVersion(input.inventory);
6009
- if (!observedDaemonVersion) return false;
6010
- try {
6011
- return resolveVersionChangeDirection({
6012
- fromVersion: observedDaemonVersion,
6013
- toVersion: input.inventory.expectedVersion
6014
- }) === "upgrade";
6015
- } catch {
6016
- return false;
6017
- }
6035
+ function classifyControlledShutdownFailure(error, inventory, onlyIfIdle) {
6036
+ const isLegacyShutdownContract = error instanceof LocalDaemonControlPlaneClientError && error.code === "daemon.control.contract_mismatch";
6037
+ const isManagerRunningWithoutRuntime = error instanceof LocalDaemonControlPlaneClientError && error.code === "daemon.control.endpoint_missing" && inventory.runtimeStatus.status !== "running" && inventory.ownedProcesses.length === 0;
6038
+ const isLegacyMissingCloseReason = isLegacyMissingControlledShutdownCloseReason({
6039
+ error,
6040
+ inventory
6041
+ });
6042
+ return {
6043
+ isLegacyShutdownContract,
6044
+ isManagerRunningWithoutRuntime,
6045
+ isLegacyMissingCloseReason,
6046
+ isCompatibilityFallback: isManagerRunningWithoutRuntime || !onlyIfIdle && (isLegacyShutdownContract || isLegacyMissingCloseReason),
6047
+ observedDaemonVersion: isLegacyMissingCloseReason ? resolveObservedDaemonVersion(inventory) : null
6048
+ };
6018
6049
  }
6019
6050
  function isLegacyMissingControlledShutdownCloseReason(input) {
6020
6051
  if (!(input.error instanceof LocalDaemonControlPlaneClientError) || input.error.code !== "daemon.run.socket_closed" || input.error.message !== "daemon stream closed (code=1000, reason=closed)") return false;
@@ -6548,6 +6579,7 @@ async function writeLifecycleEvidenceEvent(input) {
6548
6579
  //#endregion
6549
6580
  //#region src/local-service/lifecycle/daemon-service-update-coordinator.ts
6550
6581
  const MAX_BACKGROUND_UPDATE_ATTEMPTS = 5;
6582
+ const SAFE_SWITCH_POLL_INTERVAL_MS = 2e3;
6551
6583
  async function scheduleDaemonServiceUpdate(input, overrides = {}) {
6552
6584
  const deps = resolveScheduleDependencies(overrides, { useDefaultLock: Object.keys(overrides).length === 0 });
6553
6585
  return await deps.withReconcileLock(async () => await scheduleDaemonServiceUpdateLocked(input, deps));
@@ -6649,20 +6681,24 @@ async function pruneWorkerVersionsBestEffort(input) {
6649
6681
  }
6650
6682
  async function runPendingDaemonServiceUpdate(overrides = {}) {
6651
6683
  const deps = resolveRunDependencies(overrides, { useDefaultLock: Object.keys(overrides).length === 0 });
6652
- const pending = await deps.withReconcileLock(async () => await preparePendingUpdateForSwitch(deps));
6653
- if (!pending) return null;
6654
- if (pending.phase === "updated") return pending;
6655
- if (pending.urgency === "available") try {
6656
- await deps.waitUntilSafeToSwitch(pending);
6657
- } catch (waitError) {
6658
- try {
6659
- await deps.withReconcileLock(async () => await recordSafeSwitchWaitFailure(deps, pending, waitError));
6660
- } catch (recordError) {
6661
- throw new AggregateError([waitError, recordError], "OpenMeld could not safely switch the Service or record the failure.");
6684
+ while (true) {
6685
+ const pending = await deps.withReconcileLock(async () => await preparePendingUpdateForSwitch(deps));
6686
+ if (!pending) return null;
6687
+ if (pending.phase === "updated") return pending;
6688
+ if (pending.urgency === "available") try {
6689
+ await deps.waitUntilSafeToSwitch(pending);
6690
+ } catch (waitError) {
6691
+ try {
6692
+ await deps.withReconcileLock(async () => await recordSafeSwitchWaitFailure(deps, pending, waitError));
6693
+ } catch (recordError) {
6694
+ throw new AggregateError([waitError, recordError], "OpenMeld could not safely switch the Service or record the failure.");
6695
+ }
6696
+ throw waitError;
6662
6697
  }
6663
- throw waitError;
6698
+ const result = await deps.withReconcileLock(async () => await runPreparedPendingUpdate(deps));
6699
+ if (result?.phase !== "waiting_for_work") return result;
6700
+ await sleep(SAFE_SWITCH_POLL_INTERVAL_MS);
6664
6701
  }
6665
- return await deps.withReconcileLock(async () => await runPreparedPendingUpdate(deps));
6666
6702
  }
6667
6703
  async function preparePendingUpdateForSwitch(deps) {
6668
6704
  const pending = await deps.readPendingJob();
@@ -6683,6 +6719,14 @@ async function preparePendingUpdateForSwitch(deps) {
6683
6719
  async function recordSafeSwitchWaitFailure(deps, waiting, error) {
6684
6720
  const current = await deps.readPendingJob();
6685
6721
  if (!(current && isSameWaitingUpdate(current, waiting))) return;
6722
+ if (isPreviousHostWorkUnconfirmed(error)) {
6723
+ await deps.completePendingJob(finishJob(current, {
6724
+ errorMessage: `${error.code}: ${toErrorMessage$6(error)}`,
6725
+ now: deps.now(),
6726
+ phase: "needs_help"
6727
+ }));
6728
+ return;
6729
+ }
6686
6730
  await deps.persistPendingJob({
6687
6731
  ...current,
6688
6732
  errorMessage: toErrorMessage$6(error),
@@ -6696,11 +6740,12 @@ async function runPreparedPendingUpdate(deps) {
6696
6740
  const pending = await deps.readPendingJob();
6697
6741
  if (!pending) return null;
6698
6742
  if (pending.phase === "updated") return pending;
6743
+ const onlyIfIdle = pending.urgency === "available" && pending.requestSource === "automatic";
6699
6744
  const running = {
6700
6745
  ...pending,
6701
6746
  attempts: pending.attempts + 1,
6702
6747
  errorMessage: null,
6703
- phase: "updating",
6748
+ phase: onlyIfIdle ? "waiting_for_work" : "updating",
6704
6749
  updatedAt: deps.now()
6705
6750
  };
6706
6751
  await deps.persistPendingJob(running);
@@ -6713,7 +6758,17 @@ async function runPreparedPendingUpdate(deps) {
6713
6758
  installSource: "cli.auto_check",
6714
6759
  operation: "upgrade_reconcile",
6715
6760
  preparedBundle: running.preparedBundle,
6716
- shouldStartAfterLifecycle: running.desiredState === "background"
6761
+ 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
+ } : {}
6717
6772
  });
6718
6773
  if (lifecycle.status !== "aligned" && lifecycle.status !== "already_aligned") {
6719
6774
  const failed = finishJob(running, {
@@ -6732,6 +6787,16 @@ async function runPreparedPendingUpdate(deps) {
6732
6787
  await deps.completePendingJob(completed);
6733
6788
  return completed;
6734
6789
  } catch (error) {
6790
+ if (error instanceof DaemonServiceUpdateDeferredError && onlyIfIdle) {
6791
+ const waiting = {
6792
+ ...pending,
6793
+ phase: "waiting_for_work",
6794
+ errorMessage: null,
6795
+ updatedAt: deps.now()
6796
+ };
6797
+ await deps.persistPendingJob(waiting);
6798
+ return waiting;
6799
+ }
6735
6800
  const errorMessage = toErrorMessage$6(error);
6736
6801
  if (running.attempts < MAX_BACKGROUND_UPDATE_ATTEMPTS) {
6737
6802
  const retry = {
@@ -6827,9 +6892,10 @@ async function waitUntilDaemonServiceSafeSwitch(job, overrides = {}) {
6827
6892
  try {
6828
6893
  if ((await requestReadiness()).safeToSwitch) return;
6829
6894
  } catch (error) {
6895
+ if (isPreviousHostWorkUnconfirmed(error)) throw error;
6830
6896
  if (error instanceof LocalDaemonControlPlaneClientError && (error.code === "daemon.control.contract_mismatch" || error.code === "daemon.control.endpoint_missing")) return;
6831
6897
  }
6832
- await wait(2e3);
6898
+ await wait(SAFE_SWITCH_POLL_INTERVAL_MS);
6833
6899
  }
6834
6900
  }
6835
6901
  async function resolveCurrentDaemonDesiredState() {
@@ -6838,6 +6904,9 @@ async function resolveCurrentDaemonDesiredState() {
6838
6904
  const runtime = await readCurrentObservedDaemonRuntimeStatus();
6839
6905
  return runtime.status === "running" && runtime.mode === "background" ? "background" : "stopped";
6840
6906
  }
6907
+ function isPreviousHostWorkUnconfirmed(error) {
6908
+ return error instanceof LocalDaemonControlPlaneClientError && error.code === "host.previous_work_unconfirmed";
6909
+ }
6841
6910
  function finishJob(job, input) {
6842
6911
  return {
6843
6912
  ...job,
@@ -7451,4 +7520,4 @@ function projectServiceJob(job) {
7451
7520
  //#endregion
7452
7521
  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 };
7453
7522
 
7454
- //# sourceMappingURL=openmeld-tools-update-coordinator-DasnCwiO.js.map
7523
+ //# sourceMappingURL=openmeld-tools-update-coordinator-B_Dd_-GW.js.map