openmeld 0.3.183 → 0.3.185

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 (21) hide show
  1. package/dist/{add-me-membership-DIitJ8dr.js → add-me-membership-kEglOlMH.js} +2 -2
  2. package/dist/{add-me-membership-DIitJ8dr.js.map → add-me-membership-kEglOlMH.js.map} +1 -1
  3. package/dist/{command-DjlEX-zv.js → command-Bg1PSlmG.js} +4 -4
  4. package/dist/{command-DjlEX-zv.js.map → command-Bg1PSlmG.js.map} +1 -1
  5. package/dist/{elapsed-time-2WDamvW-.js → elapsed-time-BeiTYXIX.js} +2 -2
  6. package/dist/{elapsed-time-2WDamvW-.js.map → elapsed-time-BeiTYXIX.js.map} +1 -1
  7. package/dist/{installer-dwLUBjsE.js → installer-FZhbR-NM.js} +2 -2
  8. package/dist/{installer-dwLUBjsE.js.map → installer-FZhbR-NM.js.map} +1 -1
  9. package/dist/{openmeld-DLc5vNwj.js → openmeld-BdF3lNUo.js} +7 -7
  10. package/dist/{openmeld-DLc5vNwj.js.map → openmeld-BdF3lNUo.js.map} +1 -1
  11. package/dist/{openmeld-maintenance-worker-eh_5tnc4.js → openmeld-maintenance-worker-BajwpwJR.js} +3 -3
  12. package/dist/{openmeld-maintenance-worker-eh_5tnc4.js.map → openmeld-maintenance-worker-BajwpwJR.js.map} +1 -1
  13. package/dist/{openmeld-tools-update-coordinator-BuqXr_v5.js → openmeld-tools-update-coordinator-BjbxzbIB.js} +121 -12
  14. package/dist/openmeld-tools-update-coordinator-BjbxzbIB.js.map +1 -0
  15. package/dist/openmeld.js +3 -3
  16. package/dist/upgrade-BH7yOfAS.js +4 -0
  17. package/dist/{upgrade-u_fbcgeG.js → upgrade-C6S4golR.js} +3 -3
  18. package/dist/{upgrade-u_fbcgeG.js.map → upgrade-C6S4golR.js.map} +1 -1
  19. package/package.json +1 -1
  20. package/dist/openmeld-tools-update-coordinator-BuqXr_v5.js.map +0 -1
  21. package/dist/upgrade-DYbMyKtt.js +0 -4
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { i as isOpenMeldOrphanedLockError, r as isOpenMeldLockError, t as acquireLock, u as runWithHeldLock } from "./lock-Dv-vQTmI.js";
4
- import { On as resolveSkillsAgentRegistry, Wi as assertDaemonMaintenanceInstallationOwnership, h as prepareDaemonServiceUpdateWorkerCarrier, i as readOpenMeldToolsMaintenancePolicy, r as readPendingOpenMeldToolsUpdateAttempt, ss as readDaemonServiceContract, t as createOpenMeldToolsUpdateCoordinator, u as runPendingDaemonServiceUpdate, ua as readPendingDaemonServiceUpdate } from "./openmeld-tools-update-coordinator-BuqXr_v5.js";
5
- import { c as resolveTrackedInstallTargets, f as ensureLocalSkills, h as downloadOfficialSkillUpdate, t as installSkillsToTargets, v as withSkillsInstallLock } from "./installer-dwLUBjsE.js";
4
+ import { On as resolveSkillsAgentRegistry, Wi as assertDaemonMaintenanceInstallationOwnership, h as prepareDaemonServiceUpdateWorkerCarrier, i as readOpenMeldToolsMaintenancePolicy, r as readPendingOpenMeldToolsUpdateAttempt, ss as readDaemonServiceContract, t as createOpenMeldToolsUpdateCoordinator, u as runPendingDaemonServiceUpdate, ua as readPendingDaemonServiceUpdate } from "./openmeld-tools-update-coordinator-BjbxzbIB.js";
5
+ import { c as resolveTrackedInstallTargets, f as ensureLocalSkills, h as downloadOfficialSkillUpdate, t as installSkillsToTargets, v as withSkillsInstallLock } from "./installer-FZhbR-NM.js";
6
6
  import { g as getConfiguredSkillsConfig } from "./base-url-CcjogygH.js";
7
7
  //#region src/skills/maintenance.ts
8
8
  async function maintainOfficialCliSkill() {
@@ -75,4 +75,4 @@ async function runMaintenancePass() {
75
75
  //#endregion
76
76
  export { runOpenMeldMaintenanceWorker };
77
77
 
78
- //# sourceMappingURL=openmeld-maintenance-worker-eh_5tnc4.js.map
78
+ //# sourceMappingURL=openmeld-maintenance-worker-BajwpwJR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openmeld-maintenance-worker-eh_5tnc4.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 {\n acquireLock,\n isOpenMeldLockError,\n isOpenMeldOrphanedLockError,\n runWithHeldLock,\n} from \"../../config/lock\";\nimport { maintainOfficialCliSkill } from \"../../skills/maintenance\";\nimport { assertDaemonMaintenanceInstallationOwnership } from \"../lifecycle/daemon-service-manager-command-match\";\nimport { runPendingDaemonServiceUpdate } from \"../lifecycle/daemon-service-update-coordinator\";\nimport { readPendingDaemonServiceUpdate } 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 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 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 await coordinator.requestUpdate({ requestSource: \"automatic\" });\n }\n await coordinator.waitForIdle();\n }\n const result = await runPendingDaemonServiceUpdate();\n if (result?.phase === \"updated\") {\n // Only a verified replacement may replace the working recovery carrier.\n await prepareDaemonServiceUpdateWorkerCarrier(result);\n return true;\n }\n if (result?.phase === \"restored\" || result?.phase === \"needs_help\") {\n process.exitCode = 1;\n }\n return false;\n}\n"],"mappings":";;;;;;;AAOA,eAAsB,2BAA0C;CAS9D,IAAI,MARkB,4BAA4B,CAAC,CAAC,OACjD,UAAmB;EAClB,QAAQ,OAAO,MACb,uCAAuC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAChG;EACA,OAAO;CACT,CACF,MACgB,iBACd;CAEF,MAAM,sBAAsB,YAAY;EACtC,MAAM,cAAc,MAAM,kBAAkB;EAC5C,MAAM,eAAe,MAAM,0BAA0B;EAWrD,MAAM,YAAW,MAJK,uBAAuB;GAC3C,QAAQ;GACR,SAAA,MARoB,6BAA6B;IACjD;IACA,UAAU,2BAA2B,YAAY;IACjD;IACA,8BAA8B;GAChC,CAAC;EAID,CAAC,EAAA,CACwB,QAAQ,WAAW,OAAO,WAAW,QAAQ;EACtE,IAAI,SAAS,QACX,MAAM,IAAI,MACR,SACG,KAAK,WAAW,GAAG,OAAO,SAAS,IAAI,OAAO,QAAQ,CAAC,CACvD,KAAK,IAAI,CACd;CAEJ,CAAC;AACH;;;ACvBA,eAAsB,+BAA8C;CAClE,MAAM,uBAAuB;AAC/B;AAEA,eAAe,yBAA2C;CACxD,IAAI;EAKF,OAAO,MAAM,gBAAgB;GAC3B,MAAA,MALiB,YAAY;IAC7B,mBAAmB;IACnB,KAAK;GACP,CAAC;GAGC,KAAK;GACL,gBAAgB,EAAE,WAAW,qBAAqB;EACpD,CAAC;CACH,SAAS,OAAO;EAGd,IAAI,oBAAoB,KAAK,KAAK,CAAC,4BAA4B,KAAK,GAClE,OAAO;EAET,MAAM;CACR;AACF;AAEA,eAAe,qBAAuC;CACpD,MAAM,aAAa,MAAM,+BAA+B;CACxD,MAAM,iBAAiB,MAAM,sCAAsC;CACnE,IAAI,EAAE,cAAc,iBAAiB;EACnC,MAAM,WAAW,MAAM,0BAA0B;EACjD,IAAI,CAAC,YAAY,SAAS,iBAAiB,cACzC,OAAO;CAEX;CACA,MAAM,6CAA6C;CACnD,KAAK,MAAM,mCAAmC,EAAA,CAAG,yBAC/C,IAAI;EACF,MAAM,yBAAyB;CACjC,SAAS,OAAO;EACd,QAAQ,OAAO,MACb,0CAA0C,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GACnG;CACF;CAEF,MAAM,cAAc,qCAAqC;CACzD,IAAI,CAAC,YAAY;EACf,IAAI,gBACF,MAAM,YAAY,oBAAoB;OAEtC,MAAM,YAAY,cAAc,EAAE,eAAe,YAAY,CAAC;EAEhE,MAAM,YAAY,YAAY;CAChC;CACA,MAAM,SAAS,MAAM,8BAA8B;CACnD,IAAI,QAAQ,UAAU,WAAW;EAE/B,MAAM,wCAAwC,MAAM;EACpD,OAAO;CACT;CACA,IAAI,QAAQ,UAAU,cAAc,QAAQ,UAAU,cACpD,QAAQ,WAAW;CAErB,OAAO;AACT"}
1
+ {"version":3,"file":"openmeld-maintenance-worker-BajwpwJR.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 {\n acquireLock,\n isOpenMeldLockError,\n isOpenMeldOrphanedLockError,\n runWithHeldLock,\n} from \"../../config/lock\";\nimport { maintainOfficialCliSkill } from \"../../skills/maintenance\";\nimport { assertDaemonMaintenanceInstallationOwnership } from \"../lifecycle/daemon-service-manager-command-match\";\nimport { runPendingDaemonServiceUpdate } from \"../lifecycle/daemon-service-update-coordinator\";\nimport { readPendingDaemonServiceUpdate } 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 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 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 await coordinator.requestUpdate({ requestSource: \"automatic\" });\n }\n await coordinator.waitForIdle();\n }\n const result = await runPendingDaemonServiceUpdate();\n if (result?.phase === \"updated\") {\n // Only a verified replacement may replace the working recovery carrier.\n await prepareDaemonServiceUpdateWorkerCarrier(result);\n return true;\n }\n if (result?.phase === \"restored\" || result?.phase === \"needs_help\") {\n process.exitCode = 1;\n }\n return false;\n}\n"],"mappings":";;;;;;;AAOA,eAAsB,2BAA0C;CAS9D,IAAI,MARkB,4BAA4B,CAAC,CAAC,OACjD,UAAmB;EAClB,QAAQ,OAAO,MACb,uCAAuC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAChG;EACA,OAAO;CACT,CACF,MACgB,iBACd;CAEF,MAAM,sBAAsB,YAAY;EACtC,MAAM,cAAc,MAAM,kBAAkB;EAC5C,MAAM,eAAe,MAAM,0BAA0B;EAWrD,MAAM,YAAW,MAJK,uBAAuB;GAC3C,QAAQ;GACR,SAAA,MARoB,6BAA6B;IACjD;IACA,UAAU,2BAA2B,YAAY;IACjD;IACA,8BAA8B;GAChC,CAAC;EAID,CAAC,EAAA,CACwB,QAAQ,WAAW,OAAO,WAAW,QAAQ;EACtE,IAAI,SAAS,QACX,MAAM,IAAI,MACR,SACG,KAAK,WAAW,GAAG,OAAO,SAAS,IAAI,OAAO,QAAQ,CAAC,CACvD,KAAK,IAAI,CACd;CAEJ,CAAC;AACH;;;ACvBA,eAAsB,+BAA8C;CAClE,MAAM,uBAAuB;AAC/B;AAEA,eAAe,yBAA2C;CACxD,IAAI;EAKF,OAAO,MAAM,gBAAgB;GAC3B,MAAA,MALiB,YAAY;IAC7B,mBAAmB;IACnB,KAAK;GACP,CAAC;GAGC,KAAK;GACL,gBAAgB,EAAE,WAAW,qBAAqB;EACpD,CAAC;CACH,SAAS,OAAO;EAGd,IAAI,oBAAoB,KAAK,KAAK,CAAC,4BAA4B,KAAK,GAClE,OAAO;EAET,MAAM;CACR;AACF;AAEA,eAAe,qBAAuC;CACpD,MAAM,aAAa,MAAM,+BAA+B;CACxD,MAAM,iBAAiB,MAAM,sCAAsC;CACnE,IAAI,EAAE,cAAc,iBAAiB;EACnC,MAAM,WAAW,MAAM,0BAA0B;EACjD,IAAI,CAAC,YAAY,SAAS,iBAAiB,cACzC,OAAO;CAEX;CACA,MAAM,6CAA6C;CACnD,KAAK,MAAM,mCAAmC,EAAA,CAAG,yBAC/C,IAAI;EACF,MAAM,yBAAyB;CACjC,SAAS,OAAO;EACd,QAAQ,OAAO,MACb,0CAA0C,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GACnG;CACF;CAEF,MAAM,cAAc,qCAAqC;CACzD,IAAI,CAAC,YAAY;EACf,IAAI,gBACF,MAAM,YAAY,oBAAoB;OAEtC,MAAM,YAAY,cAAc,EAAE,eAAe,YAAY,CAAC;EAEhE,MAAM,YAAY,YAAY;CAChC;CACA,MAAM,SAAS,MAAM,8BAA8B;CACnD,IAAI,QAAQ,UAAU,WAAW;EAE/B,MAAM,wCAAwC,MAAM;EACpD,OAAO;CACT;CACA,IAAI,QAAQ,UAAU,cAAc,QAAQ,UAAU,cACpD,QAAQ,WAAW;CAErB,OAAO;AACT"}
@@ -17,7 +17,7 @@ import { C as resolveDaemonServiceIdentity, D as isTestProcess, E as isPublished
17
17
  import { c as buildRequestAuthHeaders, n as fetchSpaceRequestWithTimeout, s as buildOpenMeldRequestContextHeadersWithAuth, t as createCliApiClientFoundation, u as buildOpenMeldRequestContextFromProfile } from "./api-client-foundation-wW__rrcr.js";
18
18
  import { createRequire } from "node:module";
19
19
  import { createHash, randomUUID } from "node:crypto";
20
- import { homedir, tmpdir, userInfo } from "node:os";
20
+ import { homedir, loadavg, tmpdir, userInfo } from "node:os";
21
21
  import path, { basename, delimiter, dirname, extname, isAbsolute, join, normalize, parse, relative, resolve, sep } from "node:path";
22
22
  import { access, appendFile, chmod, copyFile, cp, lstat, mkdir, mkdtemp, open, readFile, readdir, readlink, realpath, rename, rm, stat, symlink, writeFile } from "node:fs/promises";
23
23
  import * as z$1 from "zod/v4";
@@ -28,7 +28,7 @@ import { setTimeout as setTimeout$1 } from "node:timers/promises";
28
28
  import { fileURLToPath, pathToFileURL } from "node:url";
29
29
  import { promisify } from "node:util";
30
30
  import { query } from "@anthropic-ai/claude-agent-sdk";
31
- import { createConnection, createServer } from "node:net";
31
+ import { connect, createConnection, createServer } from "node:net";
32
32
  import { createOpencodeClient } from "@opencode-ai/sdk/v2";
33
33
  //#region ../../packages/schemas/dist/agent-controller-brand.js
34
34
  const BUILTIN_AGENT_CONTROLLER_DISPLAY_ORDER = [
@@ -3100,7 +3100,7 @@ function parseJson$1(raw) {
3100
3100
  var package_default = {
3101
3101
  $schema: "https://www.schemastore.org/package.json",
3102
3102
  name: "openmeld",
3103
- version: "0.3.183",
3103
+ version: "0.3.185",
3104
3104
  openMeldReleaseDate: "2026-09-09",
3105
3105
  description: "OpenMeld CLI - https://openmeld.ai",
3106
3106
  license: "MIT",
@@ -19663,8 +19663,10 @@ function normalizeBoundedText(value, maxLength) {
19663
19663
  //#region ../../runtime/adapters/opencode/dist/transport/opencode-server-transport.js
19664
19664
  const SERVER_HOSTNAME = "127.0.0.1";
19665
19665
  const SERVER_HEALTH_TIMEOUT_MS = 5e3;
19666
- const SERVER_INITIAL_STARTUP_TIMEOUT_MS = 5e3;
19667
19666
  const SERVER_STARTUP_TIMEOUT_MS = 15e3;
19667
+ const SERVER_MAX_START_ATTEMPTS = 2;
19668
+ const SERVER_SLOW_START_MS = 5e3;
19669
+ const SERVER_DIAGNOSTIC_CONNECT_TIMEOUT_MS = 250;
19668
19670
  const SERVER_PROCESS_KILL_GRACE_MS = 1e3;
19669
19671
  const SERVER_PROCESS_CLOSE_TIMEOUT_MS = 2e3;
19670
19672
  const SERVER_READY_LINE_PATTERN = /^opencode server listening on (https?:\/\/[^\s]+)$/;
@@ -19800,12 +19802,12 @@ async function forkOpenCodeSessionWithClient(input) {
19800
19802
  }));
19801
19803
  }
19802
19804
  async function startHealthyOpenCodeServer(input) {
19803
- const startupTimeoutLimits = [SERVER_INITIAL_STARTUP_TIMEOUT_MS, SERVER_STARTUP_TIMEOUT_MS];
19804
19805
  let lastError = null;
19805
- for (const [attemptIndex, startupTimeoutLimitMs] of startupTimeoutLimits.entries()) {
19806
+ const startupEvidence = [];
19807
+ for (let attemptIndex = 0; attemptIndex < SERVER_MAX_START_ATTEMPTS; attemptIndex += 1) {
19806
19808
  const remainingTimeoutMs = readRemainingTimeoutMs(input.deadlineMs);
19807
19809
  if (remainingTimeoutMs !== null && remainingTimeoutMs <= 0) break;
19808
- const startupTimeoutMs = Math.min(remainingTimeoutMs ?? Number.POSITIVE_INFINITY, startupTimeoutLimitMs);
19810
+ const startupTimeoutMs = Math.min(remainingTimeoutMs ?? Number.POSITIVE_INFINITY, SERVER_STARTUP_TIMEOUT_MS);
19809
19811
  const attempt = await runOpenCodeServerStartAttempt({
19810
19812
  ...input,
19811
19813
  openCodeTimeoutMs: remainingTimeoutMs,
@@ -19815,9 +19817,18 @@ async function startHealthyOpenCodeServer(input) {
19815
19817
  server: attempt.server,
19816
19818
  serverUrl: attempt.serverUrl
19817
19819
  };
19818
- lastError = attempt.error;
19820
+ startupEvidence.push(`Startup evidence, attempt ${attemptIndex + 1}: ${JSON.stringify(attempt.evidence)}`);
19821
+ lastError = new OpenCodeServerTransportError({
19822
+ ...attempt.error,
19823
+ message: `${attempt.error.message} OpenCode server ${attempt.phase === "startup" ? "startup" : "health check"} failed on attempt ${attemptIndex + 1} of ${SERVER_MAX_START_ATTEMPTS}. No Agent task was sent.`,
19824
+ originalError: createProviderOriginalError([
19825
+ ...startupEvidence,
19826
+ `OpenCode server ${attempt.phase}, attempt ${attemptIndex + 1} of ${SERVER_MAX_START_ATTEMPTS}.`,
19827
+ attempt.error.originalError ?? attempt.error.message
19828
+ ].join("\n")) ?? void 0
19829
+ });
19819
19830
  if (!attempt.serverExited) throw createOpenCodeServerCleanupError();
19820
- const hasNextAttempt = attemptIndex < startupTimeoutLimits.length - 1;
19831
+ const hasNextAttempt = attemptIndex < SERVER_MAX_START_ATTEMPTS - 1;
19821
19832
  if (!shouldRetryOpenCodeServerStart({
19822
19833
  attempt,
19823
19834
  deadlineMs: input.deadlineMs,
@@ -19880,9 +19891,16 @@ async function assertOpenCodeServerHealthy(input) {
19880
19891
  }
19881
19892
  async function closeFailedOpenCodeServer(input) {
19882
19893
  const error = toOpenCodeServerTransportError(input.error, input.server.readStderr());
19894
+ const evidence = input.server.readStartupEvidence();
19895
+ console.warn("[openmeld.opencode.server_start.failed]", {
19896
+ ...evidence,
19897
+ errorCode: error.code,
19898
+ phase: input.phase
19899
+ });
19883
19900
  const serverExited = await input.server.close();
19884
19901
  return {
19885
19902
  error,
19903
+ evidence,
19886
19904
  phase: input.phase,
19887
19905
  serverExited,
19888
19906
  status: "failed"
@@ -19899,6 +19917,7 @@ function logOpenCodeServerStartRetry(input) {
19899
19917
  console.warn("[openmeld.opencode.server_start.retry]", {
19900
19918
  attempt: input.attemptIndex + 1,
19901
19919
  errorCode: input.attempt.error.code,
19920
+ originalError: input.attempt.error.originalError ?? null,
19902
19921
  nextAttempt: input.attemptIndex + 2,
19903
19922
  phase: input.attempt.phase,
19904
19923
  reasonCode: startupTimedOut ? "opencode.server_start.timeout" : "opencode.server_health.unavailable"
@@ -20256,6 +20275,15 @@ var OpenCodeServerProcess = class {
20256
20275
  #processTimeout = null;
20257
20276
  #settledFailure = null;
20258
20277
  #stderr = "";
20278
+ #stdoutBytes = 0;
20279
+ #stderrBytes = 0;
20280
+ #stdoutLines = 0;
20281
+ #readyLineObserved = false;
20282
+ #startupStartedAt = 0;
20283
+ #port = null;
20284
+ #portProbe = { status: "not_sampled" };
20285
+ #slowStartTimer = null;
20286
+ #diagnosticSocket = null;
20259
20287
  #startupReject = null;
20260
20288
  #startupResolve = null;
20261
20289
  #startupTimeoutMs;
@@ -20282,6 +20310,8 @@ var OpenCodeServerProcess = class {
20282
20310
  }
20283
20311
  async start() {
20284
20312
  const port = await reserveLocalPort();
20313
+ this.#port = port;
20314
+ this.#startupStartedAt = performance.now();
20285
20315
  const invocation = buildCliLaunchInvocation({
20286
20316
  args: [
20287
20317
  "serve",
@@ -20325,6 +20355,7 @@ var OpenCodeServerProcess = class {
20325
20355
  });
20326
20356
  child.stdout.setEncoding("utf8");
20327
20357
  child.stdout.on("data", (chunk) => {
20358
+ this.#stdoutBytes += Buffer.byteLength(chunk);
20328
20359
  if (this.#lifecycle.firstStdoutAtMs === null) {
20329
20360
  const firstStdoutAtMs = Date.now();
20330
20361
  this.#lifecycle.firstStdoutAtMs = firstStdoutAtMs;
@@ -20338,6 +20369,7 @@ var OpenCodeServerProcess = class {
20338
20369
  });
20339
20370
  child.stderr.setEncoding("utf8");
20340
20371
  child.stderr.on("data", (chunk) => {
20372
+ this.#stderrBytes += Buffer.byteLength(chunk);
20341
20373
  if (this.#lifecycle.firstStderrAtMs === null) {
20342
20374
  const firstStderrAtMs = Date.now();
20343
20375
  this.#lifecycle.firstStderrAtMs = firstStderrAtMs;
@@ -20396,7 +20428,74 @@ var OpenCodeServerProcess = class {
20396
20428
  }));
20397
20429
  this.#requestProcessTermination();
20398
20430
  }, this.#openCodeTimeoutMs);
20399
- return await Promise.race([startup, timeoutAfter(this.#startupTimeoutMs, "Timed out waiting for opencode serve to start.")]);
20431
+ if (this.#startupTimeoutMs > SERVER_SLOW_START_MS) {
20432
+ this.#slowStartTimer = setTimeout(() => this.#sampleSlowStartup(port), SERVER_SLOW_START_MS);
20433
+ this.#slowStartTimer.unref?.();
20434
+ }
20435
+ try {
20436
+ return await Promise.race([startup, timeoutAfter(this.#startupTimeoutMs, `OpenCode did not open its local server within ${this.#startupTimeoutMs}ms.`)]);
20437
+ } finally {
20438
+ this.#clearStartupDiagnostic();
20439
+ }
20440
+ }
20441
+ readStartupEvidence() {
20442
+ return {
20443
+ processId: this.#lifecycle.processId,
20444
+ processSpawnedAtMs: this.#lifecycle.processSpawnedAtMs,
20445
+ elapsedMs: Math.round(performance.now() - this.#startupStartedAt),
20446
+ budgetMs: this.#startupTimeoutMs,
20447
+ firstStdoutAtMs: this.#lifecycle.firstStdoutAtMs,
20448
+ firstStderrAtMs: this.#lifecycle.firstStderrAtMs,
20449
+ stdoutBytes: this.#stdoutBytes,
20450
+ stderrBytes: this.#stderrBytes,
20451
+ stdoutLines: this.#stdoutLines,
20452
+ readyLineObserved: this.#readyLineObserved,
20453
+ port: this.#port,
20454
+ portProbe: this.#portProbe,
20455
+ processExitObserved: this.#lifecycle.exitObservedAtMs !== null,
20456
+ hostLoadAverage: loadavg().map((value) => Math.round(value * 100) / 100)
20457
+ };
20458
+ }
20459
+ #sampleSlowStartup(port) {
20460
+ const startedAt = performance.now();
20461
+ const socket = connect({
20462
+ host: SERVER_HOSTNAME,
20463
+ port
20464
+ });
20465
+ this.#diagnosticSocket = socket;
20466
+ this.#portProbe = {
20467
+ status: "pending",
20468
+ observedAtMs: Date.now()
20469
+ };
20470
+ const finish = (status) => {
20471
+ if (this.#diagnosticSocket !== socket) return;
20472
+ this.#portProbe = {
20473
+ status,
20474
+ elapsedMs: Math.round(performance.now() - startedAt),
20475
+ observedAtMs: Date.now()
20476
+ };
20477
+ this.#diagnosticSocket = null;
20478
+ socket.destroy();
20479
+ console.warn("[openmeld.opencode.server_start.slow]", this.readStartupEvidence());
20480
+ };
20481
+ socket.once("connect", () => finish("connected"));
20482
+ socket.once("error", (error) => finish(error.code === "ECONNREFUSED" ? "refused" : "error"));
20483
+ socket.setTimeout(SERVER_DIAGNOSTIC_CONNECT_TIMEOUT_MS, () => finish("timeout"));
20484
+ socket.unref();
20485
+ }
20486
+ #clearStartupDiagnostic() {
20487
+ if (this.#slowStartTimer) {
20488
+ clearTimeout(this.#slowStartTimer);
20489
+ this.#slowStartTimer = null;
20490
+ }
20491
+ if (this.#diagnosticSocket) {
20492
+ this.#diagnosticSocket.destroy();
20493
+ this.#diagnosticSocket = null;
20494
+ this.#portProbe = {
20495
+ ...this.#portProbe,
20496
+ status: "cancelled"
20497
+ };
20498
+ }
20400
20499
  }
20401
20500
  async close() {
20402
20501
  this.#expectedExit = true;
@@ -20461,6 +20560,7 @@ var OpenCodeServerProcess = class {
20461
20560
  return this.#failure.promise;
20462
20561
  }
20463
20562
  #clearTimers() {
20563
+ this.#clearStartupDiagnostic();
20464
20564
  if (this.#processTimeout !== null) {
20465
20565
  clearTimeout(this.#processTimeout);
20466
20566
  this.#processTimeout = null;
@@ -20476,6 +20576,7 @@ var OpenCodeServerProcess = class {
20476
20576
  const newlineIndex = this.#lineBuffer.indexOf("\n");
20477
20577
  if (newlineIndex < 0) return;
20478
20578
  const line = this.#lineBuffer.slice(0, newlineIndex).trim();
20579
+ this.#stdoutLines += 1;
20479
20580
  this.#lineBuffer = this.#lineBuffer.slice(newlineIndex + 1);
20480
20581
  const match = line.match(SERVER_READY_LINE_PATTERN);
20481
20582
  if (!match) continue;
@@ -20491,6 +20592,7 @@ var OpenCodeServerProcess = class {
20491
20592
  return;
20492
20593
  }
20493
20594
  this.#startupResolve?.(reportedUrl);
20595
+ this.#readyLineObserved = true;
20494
20596
  this.#startupResolve = null;
20495
20597
  this.#startupReject = null;
20496
20598
  }
@@ -20594,7 +20696,14 @@ function unwrapSdkData(value) {
20594
20696
  return record && "data" in record ? record.data : value;
20595
20697
  }
20596
20698
  function toOpenCodeServerTransportError(error, stderr) {
20597
- if (error instanceof OpenCodeServerTransportError) return error;
20699
+ if (error instanceof OpenCodeServerTransportError) {
20700
+ const originalError = createProviderOriginalError([error.originalError ?? error.message, normalizeOptionalText$14(stderr)].filter(Boolean).join("\n"));
20701
+ return new OpenCodeServerTransportError({
20702
+ ...error,
20703
+ message: error.message,
20704
+ originalError: originalError ?? void 0
20705
+ });
20706
+ }
20598
20707
  return new OpenCodeServerTransportError(classifyOpenCodeFailureMessage({
20599
20708
  isContextLost: isLikelyOpenCodeContextLostError,
20600
20709
  message: [error instanceof Error ? error.message : String(error), normalizeOptionalText$14(stderr)].filter((value) => Boolean(value)).join("\n")
@@ -40569,4 +40678,4 @@ function projectServiceJob(job) {
40569
40678
  //#endregion
40570
40679
  export { formatReplyReadinessSummary as $, extractAuthenticationPromptAction as $a, emitDaemonLifecycleEvent as $i, SPACE_ACTION_TARGET_GUIDANCE_LINES as $n, PROVIDER_CONVERSATION_PROOF_SYNC_INTERVAL_MS as $o, renderInformationProtectionPrompt as $r, setDefaultProjectConnection as $t, resolveServiceReadiness as A, isSelectedOpenMeldProfileRequiredError as Aa, hasActiveDaemonOwners as Ai, resolveRegistryOriginLaunchCommand as An, resolvePreferredDaemonDeviceId as Ao, removeConversationExecutionState as Ar, resolveProfileWorkspaceRuntime as At, resolveDaemonServiceFreshnessWarning as B, updateOpenMeldProfile as Ba, resolveDaemonServiceManagerForRuntimeState as Bi, parseAgentEnabledOption as Bn, warnDaemonEvent as Bo, buildAgentControllerRef as Br, describeProfileWorkspacePathValidationFailure as Bt, ensureDaemonSystemServiceCommandFiles as C, getSetupFlowCopy as Ca, createUnsupportedProviderUsageLimits as Ci, setAgentRegistrationEnabled as Cn, assessServerRequiredVersion as Co, resolveLatestScopedConversationExecutionState as Cr, buildRuntimeRouteTargets as Ct, resolveDaemonStatusSnapshot as D, getProfileDefaultView as Da, inspectDaemonServiceInventory as Di, detectInstalledSkillsAgents as Dn, buildLedgerPaths as Do, appendLedgerHistoryEntry as Dr, syncProfileWorkspaceState as Dt, formatDaemonFailureContextText as E, resolveViewProfileKey as Ea, materializeCliLaunchCommand as Ei, canManageRegistryAgentSkillTargets as En, readCurrentLocalDeviceId as Eo, buildTaskResultEnvelope as Er, resolveLocalRuntimeControllerSupport as Et, buildDaemonServiceStatusReadOnlyDetail as F, deleteOpenMeldProfile as Fa, clearDaemonRuntimeStateIfDefinitelyStopped as Fi, requestLocalAgentActivitySync as Fn, normalizeNonNegativeInteger as Fo, withLedgerStateTransaction as Fr, resolveConfiguredProfileWorkspacePath as Ft, buildDaemonServiceDependencyNextStep as G, clearSelectedOpenMeldProfileId as Ga, extractDaemonCommandEntryPath as Gi, isBunGlobalCommandPath as Gn, CONTROLLED_SHUTDOWN_SOCKET_CLOSE_TIMEOUT_MS as Go, createAuthorityOpenMeldServiceRuntimeId as Gr, listProjectBindings as Gt, writeDaemonStartFailureState as H, readDaemonCatalogSyncSignal as Ha, cleanupLegacySharedDaemonServiceState as Hi, repairBuiltinControllerInstall as Hn, CATALOG_SYNC_SIGNAL_POLL_INTERVAL_MS as Ho, buildWorkingLanguagePromptPlan as Hr, ProjectBindingStoreUpdateRequiredError as Ht, buildDaemonServiceUpdateRequiredNextStep as I, getOpenMeldProfileCapabilities as Ia, getEffectiveDaemonRuntimeStatus as Ii, requestLocalDaemonShutdown as In, normalizeOptionalText$53 as Io, buildAuthenticatedControlPlaneResponse as Ir, resolveConfiguredProfileWorkspacePathForAccount as It, resolveDaemonServiceDependencyDiagnostics as J, buildAgentAuthenticationGuide as Ja, cleanupInactiveDaemonServiceBundles as Ji, isPnpmGlobalCommandPath as Jn, DAEMON_STREAM_KEEPALIVE_INTERVAL_MS as Jo, isAgentExecutionReadyOrConnecting as Jr, removeAgentActivityBindingsWhileDeliveryLocked as Jt, buildDaemonServiceDependencySummary as K, getSelectedOpenMeldProfileId as Ka, resolveDaemonBundleIdFromEntryPath as Ki, isHomebrewCommandPath as Kn, DAEMON_RUNTIME_CONTRACT_EPOCH as Ko, getAgentControllerPermissionModeDisplayMetadata as Kr, listProjectConnectionsWithStatus as Kt, formatDaemonServiceRefreshReliabilityMessage as L, listOpenMeldProfiles as La, readCurrentDaemonRuntimeContext as Li, sendLocalDaemonControlPlaneRequest as Ln, normalizeText$11 as Lo, buildAgentContextLookupKey as Lr, setCustomProfileWorkspace as Lt, buildDaemonServiceRefreshNextStep as M, resolveOpenMeldProfileOrNull as Ma, resolveDaemonStopStrategy as Mi, resolveRegistryRuntimeAdapterContractByAgentControllerRef as Mn, dirnamePath as Mo, seedLegacyAgentContext as Mr, normalizeCustomProfileWorkspacePath as Mt, buildDaemonServiceRefreshPromptMessage as N, createOpenMeldAgentProfile as Na, resolveStoppedContractWriteBlockedReason as Ni, notifyDaemonRouteCatalogChanged as Nn, emitRunLine as No, settleInflightTask as Nr, readProfileWorkspaceConfig as Nt, resolveDaemonStatusAttention as O, setProfileDefaultView as Oa, buildDaemonOwnerSnapshotFromObservedState as Oi, resolveSkillsAgentRegistry as On, ensureDaemonRuntimePaths as Oo, commitResolvedAgentContext as Or, createModelCatalogReadSession as Ot, buildDaemonServiceRepairGuidance as P, createOpenMeldHumanProfile as Pa, summarizeDaemonOwnerSnapshot as Pi, LocalDaemonControlPlaneClientError as Pn, normalizeHeartbeatIntervalMs as Po, upsertConversationExecutionState as Pr, readProfileWorkspaceConfigForAccount as Pt, formatHumanReplyReadinessReason as Q, createAuthenticationError as Qa, resolveDaemonBundleEntryPathFromState as Qi, SPACE_ACTION_CONTEXT_GUIDANCE_LINES as Qn, MAX_RECONNECT_DELAY_MS as Qo, projectPeopleComputersToLegacyLocalRuntimes as Qr, runIfAgentActivityBindingGenerationIsCurrent as Qt, formatDaemonServiceUpdateRequiredMessage as R, primeOpenMeldProfilesSessionCache as Ra, readCurrentObservedDaemonRuntimeStatus as Ri, normalizeAgentId as Rn, nowIsoString as Ro, DEFAULT_TASK_LIFECYCLE_HEARTBEAT_INTERVAL_MS as Rr, setOpenMeldManagedProfileWorkspace as Rt, buildDaemonSystemServiceCommandSpec as S, buildOnboardingPlan as Sa, createUnavailableProviderUsageLimits as Si, resolveAgentTargetState as Sn, resolveServiceUpdateUrgency as So, resolveCompatibleConversationExecutionState as Sr, resolveBuiltinAgentControllerBrand as Ss, syncDaemonRouteCatalogState as St, captureDaemonServiceEvidenceBestEffort as T, resolveRuntimeContext as Ta, buildCliLaunchInvocation as Ti, updateAgentRegistrations as Tn, buildLocalAgentCatalogFromReadiness as To, buildRuntimeWorkspaceFingerprint as Tr, resolveLocalController as Tt, buildDaemonServiceDependencyDetails as U, alignSelectedOpenMeldProfileStorage as Ua, listDaemonOwnedProcesses as Ui, EMPTY_AGENT_CONTROLLER_INTERFACE_CAPABILITIES as Un, CONTROLLED_SHUTDOWN_REQUEST_TIMEOUT_MS as Uo, createAgentControllerInterfaceDisplayRows as Ur, bindProject as Ut, clearDaemonStartFailureState as V, assertAdditionalHumanProfileCreationEnabled as Va, waitForDaemonSystemServiceToStop as Vi, sortAgentRegistrations as Vn, CATALOG_SYNC_RETRY_INTERVAL_MS as Vo, buildInformationProtectionPromptPlan as Vr, ProjectBindingOperationError as Vt, buildDaemonServiceDependencyMeaning as W, clearAllSelectedOpenMeldProfileIds as Wa, assertDaemonMaintenanceInstallationOwnership as Wi, resolveBuiltinAgentControllerDefinition as Wn, CONTROLLED_SHUTDOWN_RESULT_ACK_TIMEOUT_MS as Wo, createAgentExecutionStatusDisplayRows as Wr, isProjectBound as Wt, formatAgentReplyReadinessLabel as X, buildCommandAuthenticationPromptMessage as Xa, readDaemonActiveBundleState as Xi, normalizeDispatchThreadAction as Xn, DEFAULT_RECONNECT_DELAY_MS as Xo, parseAgentControllerRef as Xr, removeProjectConnection as Xt, resolveCurrentReplyReadinessSnapshot as Y, buildAuthenticationStatusLabel as Ya, prepareDaemonServiceBundle as Yi, resolveLocalRegistryAgentIdFromAgentControllerRef as Yn, DAEMON_STREAM_KEEPALIVE_PONG_TIMEOUT_MS as Yo, listAgentControllerPermissionModeOptions as Yr, removeMissingProjectConnections as Yt, formatDeviceReplyReadinessLabel as Z, buildHumanAuthenticationCard as Za, resolveAlignedDaemonActiveBundleEntryPath as Zi, syncRuntimeEventToInflightTaskControlRegistry as Zn, HEARTBEAT_RESPONSE_TIMEOUT_MS as Zo, peopleComputerContainsDevice as Zr, resolveProjectBindingForPath as Zt, isDaemonInventoryRunningAndStartReady as _, resolveCurrentDaemonExpectedVersion as _a, resolveCodexTimeoutMs as _i, manageAgentRegistrationInstallation as _n, fetchLatestCliBinaryRelease as _o, resolveAdaptiveHeartbeatIntervalMs as _r, formatProfileAwareOpenMeldCliCommands as _s, resolveLocalServiceDemand as _t, resolveOpenMeldToolsMaintenanceProjection as a, runDaemonServiceManagerAction as aa, resolveNativeAgentControllerPermissionModeForController as ai, NO_LOCAL_AGENTS_NEED_OPENMELD_SERVICE_REASON as an, resolveDaemonServiceAlignmentDecision as ao, createPendingAgentInteractionRegistry as ar, clearDaemonServiceContract as as, resolveOpenClawDiagnosticsGuidance as at, waitForSystemServiceStartup as b, PREPARE_SESSION_RECONNECT_GRACE_MS as ba, verifyCodexAppServerThread as bi, reconcileNewRunnableBuiltinAgentsForSetup as bn, writeVersionState as bo, resolveDispatchContinuityObservation as br, cliBinaryDeltaPatchSchema as bs, loadDaemonRouteCatalog as bt, isCliUpdateCheckApplicable as c, performManagedInstall as ca, createLocalAdapterContainer as ci, emitReconcileCompletedEvidence as cn, DAEMON_SERVICE_AUTO_HEAL_ANOMALIES as co, buildLocalServiceDiagnosticsPayload as cr, upsertDaemonServiceContract as cs, resolveGatewayChainRepairGuidance as ct, scheduleDaemonServiceUpdate as d, resolveDaemonServiceUpdateOperation as da, forkOpenCodeServerSession as di, resolveAgentProfilePrimaryAgentControllerReport as dn, DAEMON_SERVICE_WAKEABILITY_ADVISORY_ANOMALIES as do, ADAPTIVE_HEARTBEAT_JITTER_RATIO as dr, formatInlineOpenMeldCliCommands as ds, prepareProviderRuntime as dt, formatDaemonLifecycleOriginSummary as ea, renderWorkingLanguagePrompt as ei, unbindProject as en, resolveAuthenticationGuidance as eo, isDaemonReconcileInProgressError as er, PROVIDER_CONVERSATION_PROOF_SYNC_RETRY_INTERVAL_MS as es, mapAgentReplyReadinessToLegacyAutoReply as et, DaemonServiceLifecycleDrainTimeoutError as f, resolveDaemonRuntimeContractCompatibility as fa, resolveInstalledOpenCodeLaunchCandidates as fi, addAgentCustomTarget as fn, classifyDaemonServiceRunStartability as fo, MAX_HEARTBEAT_INTERVAL_MS as fr, formatOpenMeldCliCommand as fs, buildOpenClawSpaceSessionKey as ft, uninstallDaemonServiceUpdateWorker as g, DaemonServiceRunError as ga, projectCodexUsageLimits as gi, listAgentTargetStates as gn, ensureVersionStateReady as go, pruneStaleLeases as gr, formatProfileAwareOpenMeldCliCommand as gs, writeDaemonRouteCatalogCache as gt, prepareDaemonServiceUpdateWorkerCarrier as h, readDaemonRuntimeContractRepairReport as ha, resolveInstalledGrokBuildLaunchCandidates as hi, listAgentRegistrations as hn, compareSemver as ho, applyIntervalJitterMs as hr, formatOpenMeldCliTextBlock as hs, readDaemonRouteCatalogCache as ht, readOpenMeldToolsMaintenancePolicy as i, resolveRecentDaemonSignalStopCause as ia, resolveEvidenceSyncHealth as ii, withAgentActivityLocalStateLock as in, buildDaemonServiceTargetSpec as io, normalizeDispatchPostMessageAction as ir, RUNTIME_STATE_PERSIST_MIN_INTERVAL_MS as is, resolveReplyReadinessGuidanceSummaryCopy as it, resolveServiceReadinessFromServiceStatus as j, requireOpenMeldProfile as ja, readCurrentDaemonOwnerSnapshot as ji, resolveRegistryRuntimeAdapterCapabilitySnapshot as jn, asRecord as jo, resolveConversationExecutionStateByLookupKey as jr, ensureOpenMeldManagedProfileWorkspace as jt, resolveDaemonStatusAuthenticationAttention as k, resolveCurrentOpenMeldAccountContext as ka, formatDaemonOwnerSummaryLabel as ki, listBuiltinAgentsRegistryEntries as kn, resolveDaemonDeviceId as ko, loadLedgerState as kr, resolveCurrentEffectiveProfileWorkingFolderRuntime as kt, readOpenMeldToolsUpdateContextFromEnv as l, readLastDaemonServiceUpdate as la, createLocalAdapterEntries as li, emitReconcileStartedEvidence as ln, DAEMON_SERVICE_FULL_ALIGNMENT_ANOMALIES as lo, createLocalExecutionSlots as lr, resolveOpenMeldEnvironmentTarget as ls, resolveGatewayChainRetryGuidance as lt, ensureDaemonServiceMaintenanceInstalled as m, ensureDaemonRuntimeContractState as ma, probeGrokBuildAcpInterface as mi, listAgentCustomTargets as mn, buildNextVersionState as mo, applyAcceptedLeases as mr, formatOpenMeldCliLine as ms, slugifyOpenClawNamePart as mt, readLastOpenMeldToolsUpdateAttempt as n, readLatestDaemonLifecycleOriginEvent as na, resolveAgentExecutionStatus as ni, resolveLocalProjectConnectionForPath as nn, resolveAuthenticationGuidanceFromMessage as no, createSerialAgentInteractionCallback as nr, RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_INTERVAL_MS as ns, formatSpaceMemberCommandRecoveryCopy as nt, writeOpenMeldToolsMaintenancePolicy as o, runWithDaemonLifecycleCommandJournal as oa, resolveSelectableCandidates as oi, syncDeviceRuntimeStateProjection as on, isVersionDowngrade as oo, mergeOpenClawGatewayVisibility as or, isDaemonServiceContractIdentityReusable as os, classifyGatewayChainFailure as ot, runDaemonServiceLifecycle as p, toStartBackgroundHelperExecutionCompatibility as pa, GrokBuildAcpTransportError as pi, createRegistrationFromCatalogTarget as pn, classifyDaemonServiceWakeability as po, MIN_HEARTBEAT_INTERVAL_MS as pr, formatOpenMeldCliCommands as ps, normalizeOpenClawSpaceIdPrefix as pt, buildDaemonServiceDependencyTitle as q, setSelectedOpenMeldProfileId as qa, isOpenMeldManagedBinaryPath as qi, isNpmGlobalCommandPath as qn, DAEMON_STREAM_CONNECT_TIMEOUT_MS as qo, getAgentControllerPermissionModeFieldLabel as qr, migrateProjectBindingStore as qt, readPendingOpenMeldToolsUpdateAttempt as r, readRecentDaemonLifecycleEvents as ra, resolveAgentProfileEditCapabilities as ri, withAgentActivityDeliveryLock as rn, resolveAuthenticationReasonFromState as ro, buildDispatchReplyContextSummary as rr, RUNTIME_AGENT_CONTROLLER_REPORT_SYNC_RETRY_INTERVAL_MS as rs, resolveReplyReadinessAvailabilityReasonCopy as rt, assessCliUpdate as s, buildInstallSelfJsonPayload as sa, resolveCatalogSyncSkippedProfilesLogState as si, emitDriftDetectedEvidence as sn, resolveVersionChangeDirection as so, createLocalTaskInterruptSender as sr, readDaemonServiceContract as ss, resolveGatewayChainReadiness as st, createOpenMeldToolsUpdateCoordinator as t, readLatestDaemonLifecycleConnectionStateEvent as ta, resolveAgentControllerPermissionModeForController as ti, canonicalizeLocalProjectPath as tn, resolveAuthenticationGuidanceFromError as to, resolveRouteRegistrationReconcileDecision as tr, REGISTER_RESPONSE_TIMEOUT_MS as ts, REPLY_READINESS_COPY as tt, runPendingDaemonServiceUpdate as u, readPendingDaemonServiceUpdate as ua, parseOpenCodeGoUsageResponse as ui, createPrimaryBindingReadSession as un, DAEMON_SERVICE_REPAIR_ANOMALIES as uo, createInflightTaskControlRegistry as ur, resolveAuthBaseUrl as us, resolveOpenClawLocalDiagnosticsValue as ut, isSystemServiceStartupTimeoutError as v, OPENMELD_VERSION as va, resolveInstalledCodexLaunchCandidates as vi, readAgentRuntimeConfigHealth as vn, fetchLatestPackageInfo as vo, resolveCatalogSyncIntervalMs as vr, resolveSetupFollowUpCliEntryCommand as vs, createMutableRouteCatalogState as vt, captureDaemonServiceEvidence as w, parseCliViewMode as wa, resolveDispatchSpaceActionMcpServer as wi, updateAgentCustomTarget as wn, describeServerRequiredVersionUnavailableReason as wo, runRuntimeTask as wr, readLocalEnabledControllers as wt, writeDaemonServiceContract as x, buildDaemonRouteObservationPresentation as xa, resolveInstalledClaudeCodeLaunchCandidates as xi, removeAgentCustomTarget as xn, hasIndependentMaintenanceRegistration as xo, resolveCompatibleAgentContextMatch as xr, compareAgentControllerRefsForDisplay as xs, summarizeSkippedDaemonProfiles as xt, resolveSystemServiceStartupWaitMs as y, package_default as ya, forkCodexAppServerThread as yi, reconcileNewRunnableBuiltinAgentRegistrations as yn, readVersionState as yo, resolveDispatchQueueLogMeta as yr, resolveUserFacingCliEntryCommand as ys, createRouteCatalogFromMutableState as yt, buildDaemonServiceFreshnessPromptLines as z, resolveOpenMeldProfile as za, resolveDaemonRuntimeState as zi, normalizeAgentIds as zn, toErrorMessage$23 as zo, areAgentControllerInterfaceAccountsSame as zr, validateCustomProfileWorkspacePath as zt };
40571
40680
 
40572
- //# sourceMappingURL=openmeld-tools-update-coordinator-BuqXr_v5.js.map
40681
+ //# sourceMappingURL=openmeld-tools-update-coordinator-BjbxzbIB.js.map