openmeld 0.3.247 → 0.3.248

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 (96) hide show
  1. package/dist/{add-me-membership-DUeJA9q4.js → add-me-membership-zSJAa2ET.js} +2 -2
  2. package/dist/{add-me-membership-DUeJA9q4.js.map → add-me-membership-zSJAa2ET.js.map} +1 -1
  3. package/dist/{agents-woAcH0O6.js → agents-DLjDbkLV.js} +10 -10
  4. package/dist/{agents-woAcH0O6.js.map → agents-DLjDbkLV.js.map} +1 -1
  5. package/dist/{api-client-foundation-DMEfIARh.js → api-client-foundation-BZvzqIeX.js} +3 -3
  6. package/dist/{api-client-foundation-DMEfIARh.js.map → api-client-foundation-BZvzqIeX.js.map} +1 -1
  7. package/dist/{api-client-foundation-mqLjUunz.js → api-client-foundation-DE_UqE2s.js} +1 -1
  8. package/dist/auth-session-BOi-tZ2y.js +4 -0
  9. package/dist/{auth-session-D7hlE-47.js → auth-session-DywRZLBr.js} +4 -4
  10. package/dist/{auth-session-D7hlE-47.js.map → auth-session-DywRZLBr.js.map} +1 -1
  11. package/dist/{channel-BeUv2bLR.js → channel-40SR2b5S.js} +3 -3
  12. package/dist/{channel-BeUv2bLR.js.map → channel-40SR2b5S.js.map} +1 -1
  13. package/dist/{cloud-computer-C81_vVOV.js → cloud-computer-BqFhsHhC.js} +4 -4
  14. package/dist/{cloud-computer-C81_vVOV.js.map → cloud-computer-BqFhsHhC.js.map} +1 -1
  15. package/dist/{command-qNknO9gl.js → command-DBfu-GeG.js} +15 -15
  16. package/dist/{command-qNknO9gl.js.map → command-DBfu-GeG.js.map} +1 -1
  17. package/dist/{computer-connection-WpsIQfkh.js → computer-connection-CVyM42a0.js} +2 -2
  18. package/dist/{computer-connection-WpsIQfkh.js.map → computer-connection-CVyM42a0.js.map} +1 -1
  19. package/dist/{computer-connection-review-Df2G8VWY.js → computer-connection-review-B5qKu2C9.js} +5 -5
  20. package/dist/{computer-connection-review-Df2G8VWY.js.map → computer-connection-review-B5qKu2C9.js.map} +1 -1
  21. package/dist/{computer-disconnect-ttAH9WgN.js → computer-disconnect-BxhAjQQx.js} +7 -7
  22. package/dist/{computer-disconnect-ttAH9WgN.js.map → computer-disconnect-BxhAjQQx.js.map} +1 -1
  23. package/dist/{computer-setup-continuation-tbuUZSe5.js → computer-setup-continuation-V40ov5FS.js} +3 -3
  24. package/dist/{computer-setup-continuation-tbuUZSe5.js.map → computer-setup-continuation-V40ov5FS.js.map} +1 -1
  25. package/dist/{context-x0T_qTHp.js → context-BEgBhfbb.js} +4 -4
  26. package/dist/{context-x0T_qTHp.js.map → context-BEgBhfbb.js.map} +1 -1
  27. package/dist/{daemon-device-id-DgwvQllt.js → daemon-device-id-CmykIapy.js} +3 -3
  28. package/dist/{daemon-device-id-DgwvQllt.js.map → daemon-device-id-CmykIapy.js.map} +1 -1
  29. package/dist/{daemon-lifecycle-journal-C32I8p4n.js → daemon-lifecycle-journal-2dzGUSWU.js} +2 -2
  30. package/dist/{daemon-lifecycle-journal-C32I8p4n.js.map → daemon-lifecycle-journal-2dzGUSWU.js.map} +1 -1
  31. package/dist/{daemon-service-runtime-DVqzJKke.js → daemon-service-runtime-pECs8jVc.js} +2 -2
  32. package/dist/{daemon-service-runtime-DVqzJKke.js.map → daemon-service-runtime-pECs8jVc.js.map} +1 -1
  33. package/dist/{daemon-service-update-coordinator-BTlVzU-7.js → daemon-service-update-coordinator-DJKBTEjx.js} +10 -10
  34. package/dist/{daemon-service-update-coordinator-BTlVzU-7.js.map → daemon-service-update-coordinator-DJKBTEjx.js.map} +1 -1
  35. package/dist/{dispatch-owned-runtime-g2lLeYtx.js → dispatch-owned-runtime-QhxDRdNr.js} +12 -10
  36. package/dist/dispatch-owned-runtime-QhxDRdNr.js.map +1 -0
  37. package/dist/{dist-DGeoVaIx.js → dist-BQcUIyf6.js} +319 -226
  38. package/dist/dist-BQcUIyf6.js.map +1 -0
  39. package/dist/dist-C8M8nzJ2.js +4 -0
  40. package/dist/{dual-view-guide-catalog-CkcY09Kh.js → dual-view-guide-catalog-DDsnLpIT.js} +3 -3
  41. package/dist/{dual-view-guide-catalog-CkcY09Kh.js.map → dual-view-guide-catalog-DDsnLpIT.js.map} +1 -1
  42. package/dist/{elapsed-time-BMG1CU23.js → elapsed-time-DTb6L36x.js} +3 -3
  43. package/dist/{elapsed-time-BMG1CU23.js.map → elapsed-time-DTb6L36x.js.map} +1 -1
  44. package/dist/{entry-CP7_Vgs4.js → entry-B3w4ZTC5.js} +7 -7
  45. package/dist/{entry-CP7_Vgs4.js.map → entry-B3w4ZTC5.js.map} +1 -1
  46. package/dist/{installation-inventory-7JOtUjyG.js → installation-inventory-CCkKix8R.js} +3 -3
  47. package/dist/{installation-inventory-7JOtUjyG.js.map → installation-inventory-CCkKix8R.js.map} +1 -1
  48. package/dist/{installer-BRpAz1X_.js → installer-BiZM-o_y.js} +2 -2
  49. package/dist/{installer-BRpAz1X_.js.map → installer-BiZM-o_y.js.map} +1 -1
  50. package/dist/{meta-api-QskBmfuf.js → meta-api-9iqkG_MP.js} +5 -5
  51. package/dist/{meta-api-QskBmfuf.js.map → meta-api-9iqkG_MP.js.map} +1 -1
  52. package/dist/{openmeld-BxTCCHMn.js → openmeld-C70uo4ON.js} +53 -43
  53. package/dist/openmeld-C70uo4ON.js.map +1 -0
  54. package/dist/{openmeld-maintenance-worker-BQ2YbwA9.js → openmeld-maintenance-worker-BFPEm1rE.js} +9 -9
  55. package/dist/{openmeld-maintenance-worker-BQ2YbwA9.js.map → openmeld-maintenance-worker-BFPEm1rE.js.map} +1 -1
  56. package/dist/{openmeld-tools-update-join-Dj-MEQW_.js → openmeld-tools-update-join-Bki3ugUW.js} +4 -4
  57. package/dist/{openmeld-tools-update-join-Dj-MEQW_.js.map → openmeld-tools-update-join-Bki3ugUW.js.map} +1 -1
  58. package/dist/openmeld.js +4 -4
  59. package/dist/{prepare-provider-runtime-B6_dfpiZ.js → prepare-provider-runtime-CWZOcEF7.js} +21 -11
  60. package/dist/{prepare-provider-runtime-B6_dfpiZ.js.map → prepare-provider-runtime-CWZOcEF7.js.map} +1 -1
  61. package/dist/{prepare-session-executor-DA9saGAk.js → prepare-session-executor-B8XSTQdx.js} +18 -18
  62. package/dist/{prepare-session-executor-DA9saGAk.js.map → prepare-session-executor-B8XSTQdx.js.map} +1 -1
  63. package/dist/{process-channel-HthE5ehS.js → process-channel-DLXPiGRF.js} +2 -2
  64. package/dist/{process-channel-HthE5ehS.js.map → process-channel-DLXPiGRF.js.map} +1 -1
  65. package/dist/{runtime-C7lY_Z2r.js → runtime-DzToUfqW.js} +28 -28
  66. package/dist/{runtime-C7lY_Z2r.js.map → runtime-DzToUfqW.js.map} +1 -1
  67. package/dist/{runtime-agent-controller-reporting-submission-IhxMO4UA.js → runtime-agent-controller-reporting-submission-BszHi0S1.js} +8 -8
  68. package/dist/{runtime-agent-controller-reporting-submission-IhxMO4UA.js.map → runtime-agent-controller-reporting-submission-BszHi0S1.js.map} +1 -1
  69. package/dist/{runtime-transport-DRb5__yP.js → runtime-transport-DFBYm5Re.js} +28 -5
  70. package/dist/runtime-transport-DFBYm5Re.js.map +1 -0
  71. package/dist/{service-DveGEdh3.js → service-8EozP77B.js} +262 -28
  72. package/dist/service-8EozP77B.js.map +1 -0
  73. package/dist/{service-account-authorization-CAVkiKSF.js → service-account-authorization-CqUcNoD1.js} +2 -2
  74. package/dist/{service-account-authorization-CAVkiKSF.js.map → service-account-authorization-CqUcNoD1.js.map} +1 -1
  75. package/dist/{service-account-control-BtE73wcO.js → service-account-control-CzPgo-Iy.js} +9 -9
  76. package/dist/{service-account-control-BtE73wcO.js.map → service-account-control-CzPgo-Iy.js.map} +1 -1
  77. package/dist/{service-control-capabilities-BQrqIGBP.js → service-control-capabilities-C5hd37o9.js} +3 -3
  78. package/dist/{service-control-capabilities-BQrqIGBP.js.map → service-control-capabilities-C5hd37o9.js.map} +1 -1
  79. package/dist/{service-control-capabilities-adDptMIH.js → service-control-capabilities-CcwdbQf3.js} +1 -1
  80. package/dist/{state-DWwNdCy5.js → state-Fskb-utn.js} +2 -2
  81. package/dist/{state-DWwNdCy5.js.map → state-Fskb-utn.js.map} +1 -1
  82. package/dist/{updates-api-9midbUU1.js → updates-api-JM7f1ZDQ.js} +41 -20
  83. package/dist/updates-api-JM7f1ZDQ.js.map +1 -0
  84. package/dist/{upgrade-H-_QW75e.js → upgrade-CDW-7zvb.js} +8 -8
  85. package/dist/{upgrade-H-_QW75e.js.map → upgrade-CDW-7zvb.js.map} +1 -1
  86. package/dist/upgrade-r6W5TzOo.js +4 -0
  87. package/package.json +11 -11
  88. package/dist/auth-session-DXxmGll1.js +0 -4
  89. package/dist/dispatch-owned-runtime-g2lLeYtx.js.map +0 -1
  90. package/dist/dist-CXB_bdSS.js +0 -4
  91. package/dist/dist-DGeoVaIx.js.map +0 -1
  92. package/dist/openmeld-BxTCCHMn.js.map +0 -1
  93. package/dist/runtime-transport-DRb5__yP.js.map +0 -1
  94. package/dist/service-DveGEdh3.js.map +0 -1
  95. package/dist/updates-api-9midbUU1.js.map +0 -1
  96. package/dist/upgrade-BvpBhL0U.js +0 -4
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { tt as resolveSkillsAgentRegistry } from "./prepare-provider-runtime-B6_dfpiZ.js";
4
- import { f as withSkillsInstallLock, l as downloadOfficialSkillUpdate, r as ensureLocalSkills } from "./state-DWwNdCy5.js";
5
- import { $ as readPendingDaemonServiceUpdate, K as reconcileManagedCliLauncher, X as completePendingDaemonServiceUpdate, g as assertDaemonMaintenanceInstallationOwnership, nt as configureDaemonMaintenanceEnvironment } from "./daemon-service-runtime-DVqzJKke.js";
6
- import { at as readPendingOpenMeldToolsUpdateAttempt, n as scheduleDaemonServiceUpdate, nt as createOpenMeldToolsUpdateCoordinator, ot as readOpenMeldToolsMaintenancePolicy, t as runPendingDaemonServiceUpdate, ut as prepareDaemonServiceUpdateWorkerCarrier } from "./daemon-service-update-coordinator-BTlVzU-7.js";
3
+ import { tt as resolveSkillsAgentRegistry } from "./prepare-provider-runtime-CWZOcEF7.js";
4
+ import { f as withSkillsInstallLock, l as downloadOfficialSkillUpdate, r as ensureLocalSkills } from "./state-Fskb-utn.js";
5
+ import { $ as readPendingDaemonServiceUpdate, K as reconcileManagedCliLauncher, X as completePendingDaemonServiceUpdate, g as assertDaemonMaintenanceInstallationOwnership, nt as configureDaemonMaintenanceEnvironment } from "./daemon-service-runtime-pECs8jVc.js";
6
+ import { at as readPendingOpenMeldToolsUpdateAttempt, n as scheduleDaemonServiceUpdate, nt as createOpenMeldToolsUpdateCoordinator, ot as readOpenMeldToolsMaintenancePolicy, t as runPendingDaemonServiceUpdate, ut as prepareDaemonServiceUpdateWorkerCarrier } from "./daemon-service-update-coordinator-DJKBTEjx.js";
7
7
  import { a as isOpenMeldOrphanedLockError, d as runWithHeldLock, i as isOpenMeldLockError, t as acquireLock } from "./lock-BMI00i2F.js";
8
8
  import { g as getConfiguredSkillsConfig } from "./base-url-0AoeTi3w.js";
9
9
  import { W as withDaemonServiceReconcileLock } from "./daemon-state-Dte9re5V.js";
10
10
  import { i as readDaemonServiceContract } from "./daemon-service-contract-COPKbCy_.js";
11
- import { l as OPENMELD_VERSION } from "./daemon-lifecycle-journal-C32I8p4n.js";
11
+ import { l as OPENMELD_VERSION } from "./daemon-lifecycle-journal-2dzGUSWU.js";
12
12
  import { S as resolveDaemonServiceManager, v as readDaemonServiceStartupPolicyCurrent } from "./daemon-service-manager-SXQcFE9c.js";
13
- import { s as resolveTrackedInstallTargets } from "./installation-inventory-7JOtUjyG.js";
14
- import { t as installSkillsToTargets } from "./installer-BRpAz1X_.js";
13
+ import { s as resolveTrackedInstallTargets } from "./installation-inventory-CCkKix8R.js";
14
+ import { t as installSkillsToTargets } from "./installer-BiZM-o_y.js";
15
15
  //#region src/skills/maintenance.ts
16
16
  async function maintainOfficialCliSkill() {
17
17
  if (await downloadOfficialSkillUpdate().catch((error) => {
@@ -76,7 +76,7 @@ async function runMaintenancePass() {
76
76
  }
77
77
  const result = await runPendingDaemonServiceUpdate();
78
78
  if (result?.phase === "updated") {
79
- const { finishComputerSetupAfterBackgroundUpdate, recoverComputerSetupAfterBackgroundUpdate } = await import("./computer-setup-continuation-tbuUZSe5.js");
79
+ const { finishComputerSetupAfterBackgroundUpdate, recoverComputerSetupAfterBackgroundUpdate } = await import("./computer-setup-continuation-V40ov5FS.js");
80
80
  await prepareDaemonServiceUpdateWorkerCarrier(result);
81
81
  await finishComputerSetupAfterBackgroundUpdate();
82
82
  await withDaemonServiceReconcileLock(async () => {
@@ -105,4 +105,4 @@ async function reconcileCurrentServiceStartupPolicy(updatesCurrent) {
105
105
  //#endregion
106
106
  export { runOpenMeldMaintenanceWorker };
107
107
 
108
- //# sourceMappingURL=openmeld-maintenance-worker-BQ2YbwA9.js.map
108
+ //# sourceMappingURL=openmeld-maintenance-worker-BFPEm1rE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-maintenance-worker-BQ2YbwA9.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-BFPEm1rE.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,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { $ as readPendingDaemonServiceUpdate } from "./daemon-service-runtime-DVqzJKke.js";
4
- import { at as readPendingOpenMeldToolsUpdateAttempt } from "./daemon-service-update-coordinator-BTlVzU-7.js";
5
- import { m as resolveOpenMeldToolsUpdateOperation } from "./elapsed-time-BMG1CU23.js";
3
+ import { $ as readPendingDaemonServiceUpdate } from "./daemon-service-runtime-pECs8jVc.js";
4
+ import { at as readPendingOpenMeldToolsUpdateAttempt } from "./daemon-service-update-coordinator-DJKBTEjx.js";
5
+ import { m as resolveOpenMeldToolsUpdateOperation } from "./elapsed-time-DTb6L36x.js";
6
6
  import { setTimeout } from "node:timers/promises";
7
7
  //#region src/local-service/maintenance/openmeld-tools-update-join.ts
8
8
  const DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS = 500;
@@ -61,4 +61,4 @@ async function waitForExternalOpenMeldToolsUpdate(input = {}) {
61
61
  //#endregion
62
62
  export { waitForExternalOpenMeldToolsUpdate as n, waitForOpenMeldToolsUpdateCompletion as r, resolveExternalOpenMeldToolsUpdate as t };
63
63
 
64
- //# sourceMappingURL=openmeld-tools-update-join-Dj-MEQW_.js.map
64
+ //# sourceMappingURL=openmeld-tools-update-join-Bki3ugUW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-tools-update-join-Dj-MEQW_.js","names":["sleep"],"sources":["../src/local-service/maintenance/openmeld-tools-update-join.ts"],"sourcesContent":["import { setTimeout as sleep } from \"node:timers/promises\";\nimport type { OpenMeldToolsUpdateOperation } from \"@openmeld/schemas/types\";\nimport type { OpenMeldPathResolutionInput } from \"../../config/paths\";\nimport { readPendingDaemonServiceUpdate } from \"../lifecycle/daemon-service-update-state\";\nimport { readPendingOpenMeldToolsUpdateAttempt } from \"./openmeld-tools-update-attempt-state\";\nimport { resolveOpenMeldToolsUpdateOperation } from \"./openmeld-tools-update-operation\";\n\nconst DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS = 500;\n\n// This is an observer of the existing durable operation, never an updater.\n// The OS-owned worker continues even if this caller exits while waiting.\nexport async function waitForOpenMeldToolsUpdateCompletion(\n input: {\n operationId?: string;\n pollIntervalMs?: number;\n onWaiting?: (\n operation: OpenMeldToolsUpdateOperation\n ) => Promise<void> | void;\n } = {}\n): Promise<OpenMeldToolsUpdateOperation | null> {\n let operationId = input.operationId ?? null;\n await waitForExternalOpenMeldToolsUpdate({\n completedServiceUpdateIsIdle: true,\n pollIntervalMs: input.pollIntervalMs,\n onWaiting: async (operation) => {\n if (operationId !== null && operationId !== operation.operationId) {\n throw new Error(\n `OpenMeld update ${operationId} was replaced before its completion could be verified.`\n );\n }\n operationId = operation.operationId;\n await input.onWaiting?.(operation);\n },\n });\n const completed = await resolveOpenMeldToolsUpdateOperation();\n if (\n operationId !== null &&\n (completed?.operationId !== operationId || completed.phase !== \"updated\")\n ) {\n throw new Error(\n `OpenMeld update ${operationId} did not finish successfully (${completed?.phase ?? \"completion evidence unavailable\"}).`\n );\n }\n return completed;\n}\n\nexport async function resolveExternalOpenMeldToolsUpdate(\n input: OpenMeldPathResolutionInput & {\n currentOperationId?: string | null;\n completedServiceUpdateIsIdle?: boolean;\n } = {}\n): Promise<OpenMeldToolsUpdateOperation | null> {\n // The coordinator persists the Service job before discarding the tools\n // attempt. Reading in this order prevents observers from seeing a false idle\n // gap while ownership moves from the CLI download to the Service worker.\n const toolsAttempt = await readPendingOpenMeldToolsUpdateAttempt(input);\n const serviceJob = await readPendingDaemonServiceUpdate(input);\n if (\n serviceJob &&\n serviceJob.jobId !== (input.currentOperationId ?? null) &&\n !(input.completedServiceUpdateIsIdle && serviceJob.phase === \"updated\")\n ) {\n return {\n operationId: serviceJob.jobId,\n phase: serviceJob.phase,\n requestSource: serviceJob.requestSource,\n requestedAt: serviceJob.requestedAt,\n ...(serviceJob.targetCliVersion\n ? { targetCliVersion: serviceJob.targetCliVersion }\n : {}),\n ...(serviceJob.targetServiceVersion\n ? { targetServiceVersion: serviceJob.targetServiceVersion }\n : {}),\n targetVersion: serviceJob.targetVersion,\n updatedAt: serviceJob.updatedAt,\n urgency: serviceJob.urgency,\n };\n }\n if (\n toolsAttempt &&\n toolsAttempt.operation.operationId !== (input.currentOperationId ?? null)\n ) {\n return toolsAttempt.operation;\n }\n return null;\n}\n\nexport async function waitForExternalOpenMeldToolsUpdate(\n input: OpenMeldPathResolutionInput & {\n currentOperationId?: string | null;\n completedServiceUpdateIsIdle?: boolean;\n onWaiting?: (\n operation: OpenMeldToolsUpdateOperation\n ) => Promise<void> | void;\n pollIntervalMs?: number;\n unclaimedTimeoutMs?: number;\n } = {}\n): Promise<void> {\n let reportedOperationId: string | null = null;\n let unclaimedSince: number | null = null;\n while (true) {\n const operation = await resolveExternalOpenMeldToolsUpdate(input);\n if (!operation) {\n return;\n }\n if (input.unclaimedTimeoutMs !== undefined) {\n const pending = await readPendingOpenMeldToolsUpdateAttempt(input);\n if (\n pending?.operation.operationId === operation.operationId &&\n pending.attempts === 0\n ) {\n unclaimedSince ??= Date.now();\n if (Date.now() - unclaimedSince >= input.unclaimedTimeoutMs) {\n throw new Error(\n \"OpenMeld's background updater did not start. Run openmeld doctor to check the background service, then try setup again.\"\n );\n }\n } else {\n unclaimedSince = null;\n }\n }\n if (reportedOperationId !== operation.operationId) {\n reportedOperationId = operation.operationId;\n await input.onWaiting?.(operation);\n }\n await sleep(\n Math.max(1, input.pollIntervalMs ?? DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS)\n );\n }\n}\n"],"mappings":";;;;;;;AAOA,MAAM,uCAAuC;AAI7C,eAAsB,qCACpB,QAMI,CAAC,GACyC;CAC9C,IAAI,cAAc,MAAM,eAAe;CACvC,MAAM,mCAAmC;EACvC,8BAA8B;EAC9B,gBAAgB,MAAM;EACtB,WAAW,OAAO,cAAc;GAC9B,IAAI,gBAAgB,QAAQ,gBAAgB,UAAU,aACpD,MAAM,IAAI,MACR,mBAAmB,YAAY,uDACjC;GAEF,cAAc,UAAU;GACxB,MAAM,MAAM,YAAY,SAAS;EACnC;CACF,CAAC;CACD,MAAM,YAAY,MAAM,oCAAoC;CAC5D,IACE,gBAAgB,SACf,WAAW,gBAAgB,eAAe,UAAU,UAAU,YAE/D,MAAM,IAAI,MACR,mBAAmB,YAAY,gCAAgC,WAAW,SAAS,kCAAkC,GACvH;CAEF,OAAO;AACT;AAEA,eAAsB,mCACpB,QAGI,CAAC,GACyC;CAI9C,MAAM,eAAe,MAAM,sCAAsC,KAAK;CACtE,MAAM,aAAa,MAAM,+BAA+B,KAAK;CAC7D,IACE,cACA,WAAW,WAAW,MAAM,sBAAsB,SAClD,EAAE,MAAM,gCAAgC,WAAW,UAAU,YAE7D,OAAO;EACL,aAAa,WAAW;EACxB,OAAO,WAAW;EAClB,eAAe,WAAW;EAC1B,aAAa,WAAW;EACxB,GAAI,WAAW,mBACX,EAAE,kBAAkB,WAAW,iBAAiB,IAChD,CAAC;EACL,GAAI,WAAW,uBACX,EAAE,sBAAsB,WAAW,qBAAqB,IACxD,CAAC;EACL,eAAe,WAAW;EAC1B,WAAW,WAAW;EACtB,SAAS,WAAW;CACtB;CAEF,IACE,gBACA,aAAa,UAAU,iBAAiB,MAAM,sBAAsB,OAEpE,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,eAAsB,mCACpB,QAQI,CAAC,GACU;CACf,IAAI,sBAAqC;CACzC,IAAI,iBAAgC;CACpC,OAAO,MAAM;EACX,MAAM,YAAY,MAAM,mCAAmC,KAAK;EAChE,IAAI,CAAC,WACH;EAEF,IAAI,MAAM,uBAAuB,KAAA,GAAW;GAC1C,MAAM,UAAU,MAAM,sCAAsC,KAAK;GACjE,IACE,SAAS,UAAU,gBAAgB,UAAU,eAC7C,QAAQ,aAAa,GACrB;IACA,mBAAmB,KAAK,IAAI;IAC5B,IAAI,KAAK,IAAI,IAAI,kBAAkB,MAAM,oBACvC,MAAM,IAAI,MACR,yHACF;GAEJ,OACE,iBAAiB;EAErB;EACA,IAAI,wBAAwB,UAAU,aAAa;GACjD,sBAAsB,UAAU;GAChC,MAAM,MAAM,YAAY,SAAS;EACnC;EACA,MAAMA,WACJ,KAAK,IAAI,GAAG,MAAM,kBAAkB,oCAAoC,CAC1E;CACF;AACF"}
1
+ {"version":3,"file":"openmeld-tools-update-join-Bki3ugUW.js","names":["sleep"],"sources":["../src/local-service/maintenance/openmeld-tools-update-join.ts"],"sourcesContent":["import { setTimeout as sleep } from \"node:timers/promises\";\nimport type { OpenMeldToolsUpdateOperation } from \"@openmeld/schemas/types\";\nimport type { OpenMeldPathResolutionInput } from \"../../config/paths\";\nimport { readPendingDaemonServiceUpdate } from \"../lifecycle/daemon-service-update-state\";\nimport { readPendingOpenMeldToolsUpdateAttempt } from \"./openmeld-tools-update-attempt-state\";\nimport { resolveOpenMeldToolsUpdateOperation } from \"./openmeld-tools-update-operation\";\n\nconst DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS = 500;\n\n// This is an observer of the existing durable operation, never an updater.\n// The OS-owned worker continues even if this caller exits while waiting.\nexport async function waitForOpenMeldToolsUpdateCompletion(\n input: {\n operationId?: string;\n pollIntervalMs?: number;\n onWaiting?: (\n operation: OpenMeldToolsUpdateOperation\n ) => Promise<void> | void;\n } = {}\n): Promise<OpenMeldToolsUpdateOperation | null> {\n let operationId = input.operationId ?? null;\n await waitForExternalOpenMeldToolsUpdate({\n completedServiceUpdateIsIdle: true,\n pollIntervalMs: input.pollIntervalMs,\n onWaiting: async (operation) => {\n if (operationId !== null && operationId !== operation.operationId) {\n throw new Error(\n `OpenMeld update ${operationId} was replaced before its completion could be verified.`\n );\n }\n operationId = operation.operationId;\n await input.onWaiting?.(operation);\n },\n });\n const completed = await resolveOpenMeldToolsUpdateOperation();\n if (\n operationId !== null &&\n (completed?.operationId !== operationId || completed.phase !== \"updated\")\n ) {\n throw new Error(\n `OpenMeld update ${operationId} did not finish successfully (${completed?.phase ?? \"completion evidence unavailable\"}).`\n );\n }\n return completed;\n}\n\nexport async function resolveExternalOpenMeldToolsUpdate(\n input: OpenMeldPathResolutionInput & {\n currentOperationId?: string | null;\n completedServiceUpdateIsIdle?: boolean;\n } = {}\n): Promise<OpenMeldToolsUpdateOperation | null> {\n // The coordinator persists the Service job before discarding the tools\n // attempt. Reading in this order prevents observers from seeing a false idle\n // gap while ownership moves from the CLI download to the Service worker.\n const toolsAttempt = await readPendingOpenMeldToolsUpdateAttempt(input);\n const serviceJob = await readPendingDaemonServiceUpdate(input);\n if (\n serviceJob &&\n serviceJob.jobId !== (input.currentOperationId ?? null) &&\n !(input.completedServiceUpdateIsIdle && serviceJob.phase === \"updated\")\n ) {\n return {\n operationId: serviceJob.jobId,\n phase: serviceJob.phase,\n requestSource: serviceJob.requestSource,\n requestedAt: serviceJob.requestedAt,\n ...(serviceJob.targetCliVersion\n ? { targetCliVersion: serviceJob.targetCliVersion }\n : {}),\n ...(serviceJob.targetServiceVersion\n ? { targetServiceVersion: serviceJob.targetServiceVersion }\n : {}),\n targetVersion: serviceJob.targetVersion,\n updatedAt: serviceJob.updatedAt,\n urgency: serviceJob.urgency,\n };\n }\n if (\n toolsAttempt &&\n toolsAttempt.operation.operationId !== (input.currentOperationId ?? null)\n ) {\n return toolsAttempt.operation;\n }\n return null;\n}\n\nexport async function waitForExternalOpenMeldToolsUpdate(\n input: OpenMeldPathResolutionInput & {\n currentOperationId?: string | null;\n completedServiceUpdateIsIdle?: boolean;\n onWaiting?: (\n operation: OpenMeldToolsUpdateOperation\n ) => Promise<void> | void;\n pollIntervalMs?: number;\n unclaimedTimeoutMs?: number;\n } = {}\n): Promise<void> {\n let reportedOperationId: string | null = null;\n let unclaimedSince: number | null = null;\n while (true) {\n const operation = await resolveExternalOpenMeldToolsUpdate(input);\n if (!operation) {\n return;\n }\n if (input.unclaimedTimeoutMs !== undefined) {\n const pending = await readPendingOpenMeldToolsUpdateAttempt(input);\n if (\n pending?.operation.operationId === operation.operationId &&\n pending.attempts === 0\n ) {\n unclaimedSince ??= Date.now();\n if (Date.now() - unclaimedSince >= input.unclaimedTimeoutMs) {\n throw new Error(\n \"OpenMeld's background updater did not start. Run openmeld doctor to check the background service, then try setup again.\"\n );\n }\n } else {\n unclaimedSince = null;\n }\n }\n if (reportedOperationId !== operation.operationId) {\n reportedOperationId = operation.operationId;\n await input.onWaiting?.(operation);\n }\n await sleep(\n Math.max(1, input.pollIntervalMs ?? DEFAULT_UPDATE_JOIN_POLL_INTERVAL_MS)\n );\n }\n}\n"],"mappings":";;;;;;;AAOA,MAAM,uCAAuC;AAI7C,eAAsB,qCACpB,QAMI,CAAC,GACyC;CAC9C,IAAI,cAAc,MAAM,eAAe;CACvC,MAAM,mCAAmC;EACvC,8BAA8B;EAC9B,gBAAgB,MAAM;EACtB,WAAW,OAAO,cAAc;GAC9B,IAAI,gBAAgB,QAAQ,gBAAgB,UAAU,aACpD,MAAM,IAAI,MACR,mBAAmB,YAAY,uDACjC;GAEF,cAAc,UAAU;GACxB,MAAM,MAAM,YAAY,SAAS;EACnC;CACF,CAAC;CACD,MAAM,YAAY,MAAM,oCAAoC;CAC5D,IACE,gBAAgB,SACf,WAAW,gBAAgB,eAAe,UAAU,UAAU,YAE/D,MAAM,IAAI,MACR,mBAAmB,YAAY,gCAAgC,WAAW,SAAS,kCAAkC,GACvH;CAEF,OAAO;AACT;AAEA,eAAsB,mCACpB,QAGI,CAAC,GACyC;CAI9C,MAAM,eAAe,MAAM,sCAAsC,KAAK;CACtE,MAAM,aAAa,MAAM,+BAA+B,KAAK;CAC7D,IACE,cACA,WAAW,WAAW,MAAM,sBAAsB,SAClD,EAAE,MAAM,gCAAgC,WAAW,UAAU,YAE7D,OAAO;EACL,aAAa,WAAW;EACxB,OAAO,WAAW;EAClB,eAAe,WAAW;EAC1B,aAAa,WAAW;EACxB,GAAI,WAAW,mBACX,EAAE,kBAAkB,WAAW,iBAAiB,IAChD,CAAC;EACL,GAAI,WAAW,uBACX,EAAE,sBAAsB,WAAW,qBAAqB,IACxD,CAAC;EACL,eAAe,WAAW;EAC1B,WAAW,WAAW;EACtB,SAAS,WAAW;CACtB;CAEF,IACE,gBACA,aAAa,UAAU,iBAAiB,MAAM,sBAAsB,OAEpE,OAAO,aAAa;CAEtB,OAAO;AACT;AAEA,eAAsB,mCACpB,QAQI,CAAC,GACU;CACf,IAAI,sBAAqC;CACzC,IAAI,iBAAgC;CACpC,OAAO,MAAM;EACX,MAAM,YAAY,MAAM,mCAAmC,KAAK;EAChE,IAAI,CAAC,WACH;EAEF,IAAI,MAAM,uBAAuB,KAAA,GAAW;GAC1C,MAAM,UAAU,MAAM,sCAAsC,KAAK;GACjE,IACE,SAAS,UAAU,gBAAgB,UAAU,eAC7C,QAAQ,aAAa,GACrB;IACA,mBAAmB,KAAK,IAAI;IAC5B,IAAI,KAAK,IAAI,IAAI,kBAAkB,MAAM,oBACvC,MAAM,IAAI,MACR,yHACF;GAEJ,OACE,iBAAiB;EAErB;EACA,IAAI,wBAAwB,UAAU,aAAa;GACjD,sBAAsB,UAAU;GAChC,MAAM,MAAM,YAAY,SAAS;EACnC;EACA,MAAMA,WACJ,KAAK,IAAI,GAAG,MAAM,kBAAkB,oCAAoC,CAC1E;CACF;AACF"}
package/dist/openmeld.js CHANGED
@@ -11,7 +11,7 @@ if (process.argv.includes("--openmeld-windows-task")) {
11
11
  }
12
12
  const args = process.argv.slice(2);
13
13
  if (args.length === 3 && args[0] === "service" && args[1] === "execution-host") try {
14
- const { runExecutionHost } = await import("./entry-CP7_Vgs4.js");
14
+ const { runExecutionHost } = await import("./entry-B3w4ZTC5.js");
15
15
  const hostInstanceId = args[2];
16
16
  if (!hostInstanceId) throw new Error("The Host incarnation is required.");
17
17
  await runExecutionHost(hostInstanceId);
@@ -21,14 +21,14 @@ if (args.length === 3 && args[0] === "service" && args[1] === "execution-host")
21
21
  if (process.connected) process.disconnect();
22
22
  }
23
23
  else if (args.length === 2 && args[0] === "service" && args[1] === "update-worker") try {
24
- const { runOpenMeldMaintenanceWorker } = await import("./openmeld-maintenance-worker-BQ2YbwA9.js");
24
+ const { runOpenMeldMaintenanceWorker } = await import("./openmeld-maintenance-worker-BFPEm1rE.js");
25
25
  await runOpenMeldMaintenanceWorker();
26
26
  } catch (error) {
27
27
  console.error("[openmeld.maintenance.failed]", error);
28
28
  process.exitCode = 1;
29
29
  }
30
30
  else if (args.length === 1 && (args[0] === "maintenance-upgrade" || args[0] === "maintenance-align-service")) try {
31
- const { runMaintenanceUpgrade } = await import("./upgrade-BvpBhL0U.js");
31
+ const { runMaintenanceUpgrade } = await import("./upgrade-r6W5TzOo.js");
32
32
  await runMaintenanceUpgrade(args[0] === "maintenance-align-service");
33
33
  } catch (error) {
34
34
  try {
@@ -38,7 +38,7 @@ else if (args.length === 1 && (args[0] === "maintenance-upgrade" || args[0] ===
38
38
  console.error("[openmeld.maintenance.upgrade_failed]", error);
39
39
  process.exitCode = 1;
40
40
  }
41
- else await import("./openmeld-BxTCCHMn.js");
41
+ else await import("./openmeld-C70uo4ON.js");
42
42
  //#endregion
43
43
  export {};
44
44
 
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { F as resolveOpenMeldRootDir, P as resolveOpenMeldEnvPreset, a as accountProfileWorkspacePath, b as normalizeOpenMeldProfileId, c as deviceOpenClawProfileBootstrapPath, h as isPublishedOpenMeldHome, l as deviceOpenClawProfileDir, n as accountProfileLocalMetaPath, u as deviceOpenClawProfileWorkspaceDir } from "./paths-De9xdA2h.js";
4
- import { G as isOriginalErrorSafeForMessageDetails, J as openMeldDaemonProviderAccessEvidenceSchema, Jn as agentInteractionResolutionSchema, W as OPENMELD_ORIGINAL_ERROR_MAX_LENGTH, X as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, Xn as agentControllerPermissionModeSchema, Y as openMeldDaemonTaskResultEnvelopeWriteSchema, ei as resolveCommandAgentWorkActivity, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, tt as aiUsageObservationSchema, wn as normalizeMessageEnvelope, xn as formatCanonicalMentionLiteral } from "./runtime-transport-DRb5__yP.js";
4
+ import { G as isOriginalErrorSafeForMessageDetails, J as openMeldDaemonProviderAccessEvidenceSchema, W as OPENMELD_ORIGINAL_ERROR_MAX_LENGTH, X as openMeldDaemonTaskResultOpenClawGatewayVisibilityStatusSchema, Y as openMeldDaemonTaskResultEnvelopeWriteSchema, Yn as agentInteractionResolutionSchema, Zn as agentControllerPermissionModeSchema, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, ti as resolveCommandAgentWorkActivity, tt as aiUsageObservationSchema, wn as normalizeMessageEnvelope, xn as formatCanonicalMentionLiteral } from "./runtime-transport-DFBYm5Re.js";
5
5
  import { C as conversationExecutionStateSchema, D as normalizeOptionalWorkingDirectory, P as profileWorkspaceModeSchema, T as MAX_PROFILE_WORKING_DIRECTORY_LENGTH, o as openMeldDaemonControlPlaneRequestSchema, s as openMeldDaemonControlPlaneResponseSchema, x as providerDispatchRuntimeContextSchema } from "./control-plane-B93wmVS6.js";
6
- import { Ki as modelCatalogSchema, Rt as createAgentProfileBindingApi, en as createLocalRuntimeExpectedRoutesApi, t as OpenMeldApiClientHttpError } from "./dist-DGeoVaIx.js";
6
+ import { Rt as createAgentProfileBindingApi, Vi as modelCatalogSchema, t as OpenMeldApiClientHttpError, tn as createLocalRuntimeExpectedRoutesApi } from "./dist-BQcUIyf6.js";
7
7
  import { _ as canonicalizeAgentControllerRef, b as normalizeKnownBuiltinAgentControllerId, d as resolveBuiltinAgentControllerConversationKind, f as HOSTED_CENTER_AGENT_CONTROLLER_REF, g as buildAgentControllerRoutingKey, l as buildAgentControllerConversationRef, m as HOSTED_REMOTE_AGENT_CONTROLLER_REF, p as HOSTED_CENTER_AGENT_CONTROLLER_REF_ID, s as runtimeTransportModeSchema, v as canonicalizeBuiltinAgentControllerRef, x as parseAgentControllerRef$1 } from "./controller-contract-DAOCaefz.js";
8
- import { J as OPENCLAW_CLI_TIMEOUT_MS$1, d as getAuthSessionState } from "./auth-session-D7hlE-47.js";
8
+ import { J as OPENCLAW_CLI_TIMEOUT_MS$1, d as getAuthSessionState } from "./auth-session-DywRZLBr.js";
9
9
  import { r as daemonServiceLaneSchema } from "./service-contract-CRyDcIIf.js";
10
- import { H as agentExecutionSteerRequestSchema, V as daemonRouteCatalogCacheSchema, _ as toErrorMessage$20, d as normalizeText$11, g as parseTransportMode$1, h as parseStreamingMode$1, m as parseRuntimeTransportMode, p as parseContextIdMappingSpec, s as emitRunLine, u as normalizeOptionalText$49, z as DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME } from "./daemon-device-id-DgwvQllt.js";
10
+ import { H as agentExecutionSteerRequestSchema, V as daemonRouteCatalogCacheSchema, _ as toErrorMessage$20, d as normalizeText$11, g as parseTransportMode$1, h as parseStreamingMode$1, m as parseRuntimeTransportMode, p as parseContextIdMappingSpec, s as emitRunLine, u as normalizeOptionalText$49, z as DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME } from "./daemon-device-id-CmykIapy.js";
11
11
  import { n as agentControllerCollaborationModeSchema } from "./open-code-permission-B5f1e5an.js";
12
12
  import { c as readWindowsProcessStartFileTime, d as resolveWindowsNativeProcessHelper, f as windowsNativeProcessRequestSchema, l as resolveWindowsPowerShellPath, o as powerShellEncodedArguments, r as isProcessIdentityAlive, t as CURRENT_PROCESS_START_IDENTITY, u as WINDOWS_NATIVE_PROCESS_REQUEST_ENV } from "./process-identity-BRbhGGTM.js";
13
13
  import { a as isOpenMeldOrphanedLockError, d as runWithHeldLock, i as isOpenMeldLockError, t as acquireLock } from "./lock-BMI00i2F.js";
14
14
  import { C as updateConfiguredDeviceRuntimeState, T as updateConfiguredSkillsConfig, a as resolveBaseUrl, d as createDefaultRuntimeAgentControllerSettings, g as getConfiguredSkillsConfig, p as getConfiguredDeviceRuntimeState, v as getRuntimeConfigReadHealth, y as resolveRuntimeSkillsCustomTargetId } from "./base-url-0AoeTi3w.js";
15
15
  import { n as normalizeCommandEnvironment } from "./process-environment-BWSFeUu6.js";
16
- import { F as resolveCurrentOpenMeldAccountContext, _ as touchDaemonCatalogSyncSignal, d as listOpenMeldProfiles } from "./context-x0T_qTHp.js";
16
+ import { F as resolveCurrentOpenMeldAccountContext, _ as touchDaemonCatalogSyncSignal, d as listOpenMeldProfiles } from "./context-BEgBhfbb.js";
17
17
  import { n as writeDaemonLocalStateFile, t as readDaemonLocalStateFile } from "./daemon-local-state-file-jOXuXrky.js";
18
18
  import { m as daemonRuntimeDataPath } from "./daemon-state-Dte9re5V.js";
19
- import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-DMEfIARh.js";
19
+ import { d as buildOpenMeldRequestContextFromProfile, t as createCliApiClientFoundation } from "./api-client-foundation-BZvzqIeX.js";
20
20
  import { i as readDaemonServiceContract } from "./daemon-service-contract-COPKbCy_.js";
21
- import { C as requestLocalSyncRouteCatalog } from "./daemon-lifecycle-journal-C32I8p4n.js";
21
+ import { C as requestLocalSyncRouteCatalog } from "./daemon-lifecycle-journal-2dzGUSWU.js";
22
22
  import { i as resolveWindowsCommandPath, n as quoteWindowsProcessArgument, r as resolvePlatformCommand, t as execPlatformFile } from "./process-launch-B0pHlkV_.js";
23
23
  import { createRequire } from "node:module";
24
24
  import { createHash, randomUUID } from "node:crypto";
@@ -27272,6 +27272,16 @@ function createRouteCatalogFromMutableState(state) {
27272
27272
  workingFolderObservations: [...state.workingFolderObservations ?? []]
27273
27273
  };
27274
27274
  }
27275
+ /** Apply accepted facts without stranding deliveries that already hold the map. */
27276
+ function replaceMutableRouteCatalogState(state, catalog) {
27277
+ const routeByProfileId = state.routeByProfileId;
27278
+ const next = createMutableRouteCatalogState(catalog);
27279
+ replaceRouteCatalogMap({
27280
+ routeByProfileId,
27281
+ nextRouteByProfileId: next.routeByProfileId
27282
+ });
27283
+ Object.assign(state, next, { routeByProfileId });
27284
+ }
27275
27285
  async function syncDaemonRouteCatalogState(input) {
27276
27286
  let nextCatalog;
27277
27287
  try {
@@ -33232,9 +33242,9 @@ function createModelCatalogReadSession(input) {
33232
33242
  async function readModelCatalogOnce(baseUrl) {
33233
33243
  try {
33234
33244
  const [apiClient, baseUrlModule, clientFoundationModule] = await Promise.all([
33235
- import("./dist-CXB_bdSS.js"),
33245
+ import("./dist-C8M8nzJ2.js"),
33236
33246
  import("./base-url-Bdjp-5vy.js"),
33237
- import("./api-client-foundation-mqLjUunz.js")
33247
+ import("./api-client-foundation-DE_UqE2s.js")
33238
33248
  ]);
33239
33249
  if (typeof apiClient.createConfigApi !== "function") throw new Error("config api client is unavailable");
33240
33250
  const resolvedBaseUrl = baseUrl ?? await baseUrlModule.resolveBaseUrl();
@@ -35090,6 +35100,6 @@ async function prepareProviderRuntime(input, options = {}) {
35090
35100
  return await preparer(input);
35091
35101
  }
35092
35102
  //#endregion
35093
- export { canManageRegistryAgentSkillTargets as $, resolveDispatchSpaceActionMcpServer as $n, mergeOpenClawGatewayVisibility as $t, createExpectedRoutesReadSession as A, isAntigravityAcpLaunchContract as An, resolveAgentExecutionStatus as Ar, ensureOpenMeldManagedProfileWorkspace as At, reconcileNewRunnableBuiltinAgentsForSetup as B, commitResolvedAgentContext as Bn, applyIntervalJitterMs as Br, createMutableRouteCatalogState as Bt, createModelCatalogReadSession as C, forkCodexAppServerThread as Cn, parseAgentControllerRef as Cr, resolveLocalProjectConnectionForPath as Ct, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as D, projectCodexUsageLimits as Dn, renderTaskKnowledgeIndex as Dr, resolveRegistryOriginLaunchCommand as Dt, resolveProfileWorkspaceRuntime as E, verifyCodexAppServerThread as En, renderInformationProtectionPrompt as Er, listBuiltinAgentsRegistryEntries as Et, listAgentRegistrations as F, DaemonServiceRunError as Fn, resolveRouteRegistrationReconcileDecision as Fr, resolveConfiguredProfileWorkspacePathForAccount as Ft, updateAgentRegistrations as G, settleInflightTask as Gn, resolveBuiltinAgentControllerBrand as Gr, syncRuntimeEventToInflightTaskControlRegistry as Gt, resolveAgentTargetState as H, removeConversationExecutionState as Hn, resolveAdaptiveHeartbeatIntervalMs as Hr, summarizeSkippedDaemonProfiles as Ht, listAgentTargetStates as I, runRuntimeTask as In, ADAPTIVE_HEARTBEAT_JITTER_RATIO as Ir, setCustomProfileWorkspace as It, normalizeAgentIds as J, buildAuthenticatedControlPlaneResponse as Jn, isDaemonReconcileInProgressError as Jt, notifyDaemonRouteCatalogChanged as K, upsertConversationExecutionState as Kn, __toESM as Kr, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as Kt, manageAgentRegistrationInstallation as L, buildRuntimeWorkspaceFingerprint as Ln, MAX_HEARTBEAT_INTERVAL_MS as Lr, setOpenMeldManagedProfileWorkspace as Lt, addAgentCustomTarget as M, emitDriftDetectedEvidence as Mn, resolveEvidenceSyncHealth as Mr, readProfileWorkspaceConfig as Mt, createRegistrationFromCatalogTarget as N, emitReconcileCompletedEvidence as Nn, resolveNativeAgentControllerPermissionModeForController as Nr, readProfileWorkspaceConfigForAccount as Nt, syncDeviceRuntimeStateProjection as O, probeClaudeCodeUsageLimits as On, renderWorkingLanguagePrompt as Or, resolveRegistryRuntimeAdapterCapabilitySnapshot as Ot, listAgentCustomTargets as P, emitReconcileStartedEvidence as Pn, resolveSelectableCandidates as Pr, resolveConfiguredProfileWorkspacePath as Pt, resolveLocalRegistryAgentIdFromAgentControllerRef as Q, createUnsupportedProviderUsageLimits as Qn, createPendingAgentInteractionRegistry as Qt, readAgentRuntimeConfigHealth as R, buildTaskResultEnvelope as Rn, MIN_HEARTBEAT_INTERVAL_MS as Rr, validateCustomProfileWorkspacePath as Rt, syncProfileWorkspaceState as S, resolveInstalledCodexLaunchCandidates as Sn, listAgentControllerPermissionModeOptions as Sr, canonicalizeLocalProjectPath as St, resolveEffectiveProfileWorkingFolderRuntime as T, resolveCodexAppServerCompletedTurn as Tn, projectPeopleComputersToLegacyLocalRuntimes as Tr, withAgentActivityLocalStateLock as Tt, setAgentRegistrationEnabled as U, resolveConversationExecutionStateByLookupKey as Un, resolveCatalogSyncIntervalMs as Ur, syncDaemonRouteCatalogState as Ut, removeAgentCustomTarget as V, loadLedgerState as Vn, pruneStaleLeases as Vr, createRouteCatalogFromMutableState as Vt, updateAgentCustomTarget as W, seedLegacyAgentContext as Wn, compareAgentControllerRefsForDisplay as Wr, normalizeDispatchThreadAction as Wt, sortAgentRegistrations as X, buildAgentContextLookupKey as Xn, buildDispatchReplyContextSummary as Xt, parseAgentEnabledOption as Y, assertLegacyAgentContextAssociation as Yn, createSerialAgentInteractionCallback as Yt, repairBuiltinControllerInstall as Z, createUnavailableProviderUsageLimits as Zn, normalizeDispatchPostMessageAction as Zt, loadDaemonRouteCatalog as _, GrokBuildAcpTransportError as _n, getAgentControllerPermissionModeDisplayMetadata as _r, removeProjectConnection as _t, buildOpenClawSpaceSessionKey as a, resolveDispatchContinuityObservation as an, DISPATCH_SPACE_ACTION_DELIVERY_ONLY_ENV as ar, isHomebrewCommandPath as at, resolveLocalController as b, projectCursorUsageLimits as bn, isAgentControllerUsageRefreshUnavailable as br, setDefaultProjectConnection as bt, findOpenClawAgentById as c, resolveLatestScopedConversationExecutionState as cn, TASK_KNOWLEDGE_GUIDANCE as cr, ProjectBindingOperationError as ct, resolveOpenClawAuthStatus as d, createLocalAdapterEntries as dn, buildInformationProtectionPromptPlan as dr, isProjectBound as dt, createLocalTaskInterruptSender as en, buildCliLaunchInvocation as er, detectInstalledSkillsAgents as et, resolveOpenClawProviderRuntimeWorkingDirectory as f, parseOpenRouterUsageResponse as fn, buildWorkingLanguagePromptPlan as fr, listProjectBindings as ft, writeDaemonRouteCatalogCache as g, resolveInstalledOpenCodeLaunchCandidates as gn, createAuthorityOpenMeldServiceRuntimeId as gr, removeMissingProjectConnections as gt, readDaemonRouteCatalogCache as h, readOpenCode2Inventory as hn, createAgentExecutionStatusDisplayRows as hr, removeAgentActivityBindingsWhileDeliveryLocked as ht, listOpenClawGatewayAgents as i, resolveDispatchQueueLogMeta as in, createProviderOriginalError as ir, isBunGlobalCommandPath as it, resolveAgentProfilePrimaryAgentControllerReport as j, probeAntigravityAcp as jn, resolveAgentProfileEditCapabilities as jr, normalizeCustomProfileWorkspacePath as jt, createPrimaryBindingReadSession as k, resolveInstalledClaudeCodeLaunchCandidates as kn, resolveAgentControllerPermissionModeForController as kr, resolveRegistryRuntimeAdapterContractByAgentControllerRef as kt, findOpenClawAgentsByWorkspace as l, resolveCatalogSyncSkippedProfilesLogState as ln, areAgentControllerInterfaceAccountsSame as lr, ProjectBindingStoreUpdateRequiredError as lt, resolveOpenClawLocalBootstrapPaths as m, forkOpenCodeServerSession as mn, createAgentControllerInterfaceDisplayRows as mr, migrateProjectBindingStore as mt, fetchOpenClawGatewayHealth as n, createLocalExecutionSlots as nn, resolveExecutablePathsOnPath as nr, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as nt, normalizeOpenClawSpaceIdPrefix as o, resolveCompatibleAgentContextMatch as on, isDispatchSpaceActionDeliveryOnly as or, isNpmGlobalCommandPath as ot, readOpenClawLocalBootstrapState as p, parseOpenCodeGoUsageResponse as pn, compareAgentControllerVersions as pr, listProjectConnectionsWithStatus as pt, normalizeAgentId as q, withLedgerStateTransaction as qn, SPACE_ACTION_TARGET_GUIDANCE_LINES as qt, listOpenClawAgents as r, createInflightTaskControlRegistry as rn, listAgentControllerSupervisedProcessIds as rr, resolveBuiltinAgentControllerDefinition as rt, slugifyOpenClawNamePart as s, resolveCompatibleConversationExecutionState as sn, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as sr, isPnpmGlobalCommandPath as st, prepareProviderRuntime as t, buildLocalServiceDiagnosticsPayload as tn, materializeCliLaunchCommand as tr, resolveSkillsAgentRegistry as tt, matchesExpectedWorkspace as u, createLocalAdapterContainer as un, buildAgentControllerRef as ur, bindProject as ut, buildRuntimeRouteTargets as v, probeGrokBuildAcpInterface as vn, getAgentControllerPermissionModeFieldLabel as vr, resolveProjectBindingForPath as vt, resolveCurrentEffectiveProfileWorkingFolderRuntime as w, probeCodexAppServerAccount as wn, peopleComputerContainsDevice as wr, withAgentActivityDeliveryLock as wt, resolveLocalRuntimeControllerSupport as x, resolveCodexTimeoutMs as xn, isAgentExecutionReadyOrConnecting as xr, unbindProject as xt, readLocalEnabledControllers as y, resolveInstalledGrokBuildLaunchCandidates as yn, isAgentControllerUsageAccountUnavailable as yr, runIfAgentActivityBindingGenerationIsCurrent as yt, reconcileNewRunnableBuiltinAgentRegistrations as z, appendLedgerHistoryEntry as zn, applyAcceptedLeases as zr, describeProfileWorkspacePathValidationFailure as zt };
35103
+ export { canManageRegistryAgentSkillTargets as $, createUnsupportedProviderUsageLimits as $n, createPendingAgentInteractionRegistry as $t, createExpectedRoutesReadSession as A, resolveInstalledClaudeCodeLaunchCandidates as An, resolveAgentControllerPermissionModeForController as Ar, ensureOpenMeldManagedProfileWorkspace as At, reconcileNewRunnableBuiltinAgentsForSetup as B, appendLedgerHistoryEntry as Bn, applyAcceptedLeases as Br, createMutableRouteCatalogState as Bt, createModelCatalogReadSession as C, resolveInstalledCodexLaunchCandidates as Cn, listAgentControllerPermissionModeOptions as Cr, resolveLocalProjectConnectionForPath as Ct, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as D, verifyCodexAppServerThread as Dn, renderInformationProtectionPrompt as Dr, resolveRegistryOriginLaunchCommand as Dt, resolveProfileWorkspaceRuntime as E, resolveCodexAppServerCompletedTurn as En, projectPeopleComputersToLegacyLocalRuntimes as Er, listBuiltinAgentsRegistryEntries as Et, listAgentRegistrations as F, emitReconcileStartedEvidence as Fn, resolveSelectableCandidates as Fr, resolveConfiguredProfileWorkspacePathForAccount as Ft, updateAgentRegistrations as G, seedLegacyAgentContext as Gn, compareAgentControllerRefsForDisplay as Gr, normalizeDispatchThreadAction as Gt, resolveAgentTargetState as H, loadLedgerState as Hn, pruneStaleLeases as Hr, replaceMutableRouteCatalogState as Ht, listAgentTargetStates as I, DaemonServiceRunError as In, resolveRouteRegistrationReconcileDecision as Ir, setCustomProfileWorkspace as It, normalizeAgentIds as J, withLedgerStateTransaction as Jn, SPACE_ACTION_TARGET_GUIDANCE_LINES as Jt, notifyDaemonRouteCatalogChanged as K, settleInflightTask as Kn, resolveBuiltinAgentControllerBrand as Kr, syncRuntimeEventToInflightTaskControlRegistry as Kt, manageAgentRegistrationInstallation as L, runRuntimeTask as Ln, ADAPTIVE_HEARTBEAT_JITTER_RATIO as Lr, setOpenMeldManagedProfileWorkspace as Lt, addAgentCustomTarget as M, probeAntigravityAcp as Mn, resolveAgentProfileEditCapabilities as Mr, readProfileWorkspaceConfig as Mt, createRegistrationFromCatalogTarget as N, emitDriftDetectedEvidence as Nn, resolveEvidenceSyncHealth as Nr, readProfileWorkspaceConfigForAccount as Nt, syncDeviceRuntimeStateProjection as O, projectCodexUsageLimits as On, renderTaskKnowledgeIndex as Or, resolveRegistryRuntimeAdapterCapabilitySnapshot as Ot, listAgentCustomTargets as P, emitReconcileCompletedEvidence as Pn, resolveNativeAgentControllerPermissionModeForController as Pr, resolveConfiguredProfileWorkspacePath as Pt, resolveLocalRegistryAgentIdFromAgentControllerRef as Q, createUnavailableProviderUsageLimits as Qn, normalizeDispatchPostMessageAction as Qt, readAgentRuntimeConfigHealth as R, buildRuntimeWorkspaceFingerprint as Rn, MAX_HEARTBEAT_INTERVAL_MS as Rr, validateCustomProfileWorkspacePath as Rt, syncProfileWorkspaceState as S, resolveCodexTimeoutMs as Sn, isAgentExecutionReadyOrConnecting as Sr, canonicalizeLocalProjectPath as St, resolveEffectiveProfileWorkingFolderRuntime as T, probeCodexAppServerAccount as Tn, peopleComputerContainsDevice as Tr, withAgentActivityLocalStateLock as Tt, setAgentRegistrationEnabled as U, removeConversationExecutionState as Un, resolveAdaptiveHeartbeatIntervalMs as Ur, summarizeSkippedDaemonProfiles as Ut, removeAgentCustomTarget as V, commitResolvedAgentContext as Vn, applyIntervalJitterMs as Vr, createRouteCatalogFromMutableState as Vt, updateAgentCustomTarget as W, resolveConversationExecutionStateByLookupKey as Wn, resolveCatalogSyncIntervalMs as Wr, syncDaemonRouteCatalogState as Wt, sortAgentRegistrations as X, assertLegacyAgentContextAssociation as Xn, createSerialAgentInteractionCallback as Xt, parseAgentEnabledOption as Y, buildAuthenticatedControlPlaneResponse as Yn, isDaemonReconcileInProgressError as Yt, repairBuiltinControllerInstall as Z, buildAgentContextLookupKey as Zn, buildDispatchReplyContextSummary as Zt, loadDaemonRouteCatalog as _, resolveInstalledOpenCodeLaunchCandidates as _n, createAuthorityOpenMeldServiceRuntimeId as _r, removeProjectConnection as _t, buildOpenClawSpaceSessionKey as a, resolveDispatchQueueLogMeta as an, createProviderOriginalError as ar, isHomebrewCommandPath as at, resolveLocalController as b, resolveInstalledGrokBuildLaunchCandidates as bn, isAgentControllerUsageAccountUnavailable as br, setDefaultProjectConnection as bt, findOpenClawAgentById as c, resolveCompatibleConversationExecutionState as cn, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as cr, ProjectBindingOperationError as ct, resolveOpenClawAuthStatus as d, createLocalAdapterContainer as dn, buildAgentControllerRef as dr, isProjectBound as dt, mergeOpenClawGatewayVisibility as en, resolveDispatchSpaceActionMcpServer as er, detectInstalledSkillsAgents as et, resolveOpenClawProviderRuntimeWorkingDirectory as f, createLocalAdapterEntries as fn, buildInformationProtectionPromptPlan as fr, listProjectBindings as ft, writeDaemonRouteCatalogCache as g, readOpenCode2Inventory as gn, createAgentExecutionStatusDisplayRows as gr, removeMissingProjectConnections as gt, readDaemonRouteCatalogCache as h, forkOpenCodeServerSession as hn, createAgentControllerInterfaceDisplayRows as hr, removeAgentActivityBindingsWhileDeliveryLocked as ht, listOpenClawGatewayAgents as i, createInflightTaskControlRegistry as in, listAgentControllerSupervisedProcessIds as ir, isBunGlobalCommandPath as it, resolveAgentProfilePrimaryAgentControllerReport as j, isAntigravityAcpLaunchContract as jn, resolveAgentExecutionStatus as jr, normalizeCustomProfileWorkspacePath as jt, createPrimaryBindingReadSession as k, probeClaudeCodeUsageLimits as kn, renderWorkingLanguagePrompt as kr, resolveRegistryRuntimeAdapterContractByAgentControllerRef as kt, findOpenClawAgentsByWorkspace as l, resolveLatestScopedConversationExecutionState as ln, TASK_KNOWLEDGE_GUIDANCE as lr, ProjectBindingStoreUpdateRequiredError as lt, resolveOpenClawLocalBootstrapPaths as m, parseOpenCodeGoUsageResponse as mn, compareAgentControllerVersions as mr, migrateProjectBindingStore as mt, fetchOpenClawGatewayHealth as n, buildLocalServiceDiagnosticsPayload as nn, materializeCliLaunchCommand as nr, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as nt, normalizeOpenClawSpaceIdPrefix as o, resolveDispatchContinuityObservation as on, DISPATCH_SPACE_ACTION_DELIVERY_ONLY_ENV as or, isNpmGlobalCommandPath as ot, readOpenClawLocalBootstrapState as p, parseOpenRouterUsageResponse as pn, buildWorkingLanguagePromptPlan as pr, listProjectConnectionsWithStatus as pt, normalizeAgentId as q, upsertConversationExecutionState as qn, __toESM as qr, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as qt, listOpenClawAgents as r, createLocalExecutionSlots as rn, resolveExecutablePathsOnPath as rr, resolveBuiltinAgentControllerDefinition as rt, slugifyOpenClawNamePart as s, resolveCompatibleAgentContextMatch as sn, isDispatchSpaceActionDeliveryOnly as sr, isPnpmGlobalCommandPath as st, prepareProviderRuntime as t, createLocalTaskInterruptSender as tn, buildCliLaunchInvocation as tr, resolveSkillsAgentRegistry as tt, matchesExpectedWorkspace as u, resolveCatalogSyncSkippedProfilesLogState as un, areAgentControllerInterfaceAccountsSame as ur, bindProject as ut, buildRuntimeRouteTargets as v, GrokBuildAcpTransportError as vn, getAgentControllerPermissionModeDisplayMetadata as vr, resolveProjectBindingForPath as vt, resolveCurrentEffectiveProfileWorkingFolderRuntime as w, forkCodexAppServerThread as wn, parseAgentControllerRef as wr, withAgentActivityDeliveryLock as wt, resolveLocalRuntimeControllerSupport as x, projectCursorUsageLimits as xn, isAgentControllerUsageRefreshUnavailable as xr, unbindProject as xt, readLocalEnabledControllers as y, probeGrokBuildAcpInterface as yn, getAgentControllerPermissionModeFieldLabel as yr, runIfAgentActivityBindingGenerationIsCurrent as yt, reconcileNewRunnableBuiltinAgentRegistrations as z, buildTaskResultEnvelope as zn, MIN_HEARTBEAT_INTERVAL_MS as zr, describeProfileWorkspacePathValidationFailure as zt };
35094
35104
 
35095
- //# sourceMappingURL=prepare-provider-runtime-B6_dfpiZ.js.map
35105
+ //# sourceMappingURL=prepare-provider-runtime-CWZOcEF7.js.map