openmeld 0.3.152 → 0.3.153

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.
@@ -24,44 +24,6 @@ const daemonRuntimeLeaseSchema = z$1.strictObject({
24
24
  managedBySystemService: z$1.boolean()
25
25
  });
26
26
  //#endregion
27
- //#region src/config/daemon-local-state-file.ts
28
- async function readDaemonLocalStateFile(input) {
29
- const raw = await readFile(input.path, "utf8").catch((error) => {
30
- if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") return null;
31
- throw error;
32
- });
33
- if (raw === null) return null;
34
- const parsedJson = safeParseJson(raw);
35
- if (parsedJson === null) return null;
36
- const parsed = input.schema.safeParse(parsedJson);
37
- return parsed.success ? parsed.data : null;
38
- }
39
- async function writeDaemonLocalStateFile(input) {
40
- const parsed = input.schema.safeParse(input.value);
41
- if (!parsed.success) throw new Error(`invalid daemon local state for ${input.path}`);
42
- await mkdir(dirname(input.path), { recursive: true });
43
- const tempPath = `${input.path}.tmp-${process.pid}-${Date.now()}`;
44
- let shouldCleanupTemp = true;
45
- try {
46
- await writeFile(tempPath, `${JSON.stringify(parsed.data, null, 2)}\n`, {
47
- encoding: "utf8",
48
- ...typeof input.mode === "number" ? { mode: input.mode } : {}
49
- });
50
- await rename(tempPath, input.path);
51
- if (typeof input.mode === "number") await chmod(input.path, input.mode);
52
- shouldCleanupTemp = false;
53
- } finally {
54
- if (shouldCleanupTemp) await rm(tempPath, { force: true }).catch(() => void 0);
55
- }
56
- }
57
- function safeParseJson(raw) {
58
- try {
59
- return JSON.parse(raw);
60
- } catch {
61
- return null;
62
- }
63
- }
64
- //#endregion
65
27
  //#region src/config/daemon-state.ts
66
28
  const DAEMON_STATE_SCHEMA = "openmeld-daemon-install-v1";
67
29
  const DAEMON_SERVICE_RUNTIME_STATE_SCHEMA = "openmeld-daemon-service-state-v1";
@@ -700,6 +662,44 @@ async function pathExists(path) {
700
662
  }
701
663
  }
702
664
  //#endregion
665
+ //#region src/config/daemon-local-state-file.ts
666
+ async function readDaemonLocalStateFile(input) {
667
+ const raw = await readFile(input.path, "utf8").catch((error) => {
668
+ if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") return null;
669
+ throw error;
670
+ });
671
+ if (raw === null) return null;
672
+ const parsedJson = safeParseJson(raw);
673
+ if (parsedJson === null) return null;
674
+ const parsed = input.schema.safeParse(parsedJson);
675
+ return parsed.success ? parsed.data : null;
676
+ }
677
+ async function writeDaemonLocalStateFile(input) {
678
+ const parsed = input.schema.safeParse(input.value);
679
+ if (!parsed.success) throw new Error(`invalid daemon local state for ${input.path}`);
680
+ await mkdir(dirname(input.path), { recursive: true });
681
+ const tempPath = `${input.path}.tmp-${process.pid}-${Date.now()}`;
682
+ let shouldCleanupTemp = true;
683
+ try {
684
+ await writeFile(tempPath, `${JSON.stringify(parsed.data, null, 2)}\n`, {
685
+ encoding: "utf8",
686
+ ...typeof input.mode === "number" ? { mode: input.mode } : {}
687
+ });
688
+ await rename(tempPath, input.path);
689
+ if (typeof input.mode === "number") await chmod(input.path, input.mode);
690
+ shouldCleanupTemp = false;
691
+ } finally {
692
+ if (shouldCleanupTemp) await rm(tempPath, { force: true }).catch(() => void 0);
693
+ }
694
+ }
695
+ function safeParseJson(raw) {
696
+ try {
697
+ return JSON.parse(raw);
698
+ } catch {
699
+ return null;
700
+ }
701
+ }
702
+ //#endregion
703
703
  //#region src/config/daemon-runtime-lease.ts
704
704
  var daemon_runtime_lease_exports = /* @__PURE__ */ __exportAll({
705
705
  clearDaemonRuntimeLease: () => clearDaemonRuntimeLease,
@@ -729,6 +729,6 @@ async function clearDaemonRuntimeLease(pathInput = {}) {
729
729
  await rm(daemonRuntimeLeasePath(pathInput), { force: true });
730
730
  }
731
731
  //#endregion
732
- export { getDaemonRuntimeStatus as A, resolveDaemonServiceRuntimeMetadata as B, daemonServiceRepairJournalPath as C, daemonServiceUpdateWorkerBinaryExecutablePath as D, daemonServiceStableLauncherPath as E, readDaemonServiceLifecycleLockMeta as F, withDaemonServiceReconcileLock as G, rotateDaemonControlPlaneTokenIfExpired as H, readDaemonServiceLifecycleLockMetaWithCleanup as I, withDaemonServiceStopLock as J, withDaemonServiceRegistrationMutationLock as K, readDaemonServiceRuntimeSnapshot as L, installDaemon as M, isDaemonServiceRuntimeHeartbeatStale as N, daemonStatePath as O, readDaemonControlPlaneToken as P, releaseDaemonServiceLifecycleLock as R, daemonServiceRecognizedExecutablePaths as S, daemonServiceStableExecutableWrapperPath as T, setDaemonServiceRuntimeState as U, restoreDaemonInstallStateSnapshot as V, uninstallDaemon as W, writeDaemonLocalStateFile as X, readDaemonLocalStateFile as Y, daemonRuntimeServiceManagerPath as _, DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV as a, daemonServiceExecutableWrapperPaths as b, DAEMON_SERVICE_RUNTIME_STATE_SCHEMA as c, clearDaemonServiceRuntimeState as d, daemonDispatchJournalPath as f, daemonRuntimeRootPath as g, daemonRuntimeDataPath as h, DAEMON_SERVICE_RUNTIME_AUTO_START_ENV as i, getDaemonStatus as j, ensureDaemonControlPlaneToken as k, DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV as l, daemonRuntimeBundlesPath as m, writeDaemonRuntimeLease as n, DAEMON_SERVICE_RUNTIME_DETACHED_ENV as o, daemonLifecycleJournalPath as p, withDaemonServiceRunLock as q, DAEMON_HEARTBEAT_STALE_MS as r, DAEMON_SERVICE_RUNTIME_MODE_ENV as s, readDaemonRuntimeLease as t, acquireDaemonServiceLifecycleLock as u, daemonRuntimeStateRootPath as v, daemonServiceStableBinaryExecutablePath as w, daemonServiceLegacyExecutableWrapperPath as x, daemonServiceActiveBundleStatePath as y, resolveDaemonControlPlaneEndpoint as z };
732
+ export { daemonStatePath as A, releaseDaemonServiceLifecycleLock as B, daemonServiceLegacyExecutableWrapperPath as C, daemonServiceStableExecutableWrapperPath as D, daemonServiceStableBinaryExecutablePath as E, isDaemonServiceRuntimeHeartbeatStale as F, setDaemonServiceRuntimeState as G, resolveDaemonServiceRuntimeMetadata as H, readDaemonControlPlaneToken as I, withDaemonServiceRegistrationMutationLock as J, uninstallDaemon as K, readDaemonServiceLifecycleLockMeta as L, getDaemonRuntimeStatus as M, getDaemonStatus as N, daemonServiceStableLauncherPath as O, installDaemon as P, readDaemonServiceLifecycleLockMetaWithCleanup as R, daemonServiceExecutableWrapperPaths as S, daemonServiceRepairJournalPath as T, restoreDaemonInstallStateSnapshot as U, resolveDaemonControlPlaneEndpoint as V, rotateDaemonControlPlaneTokenIfExpired as W, withDaemonServiceStopLock as X, withDaemonServiceRunLock as Y, daemonRuntimeDataPath as _, DAEMON_HEARTBEAT_STALE_MS as a, daemonRuntimeStateRootPath as b, DAEMON_SERVICE_RUNTIME_DETACHED_ENV as c, DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV as d, acquireDaemonServiceLifecycleLock as f, daemonRuntimeBundlesPath as g, daemonLifecycleJournalPath as h, writeDaemonLocalStateFile as i, ensureDaemonControlPlaneToken as j, daemonServiceUpdateWorkerBinaryExecutablePath as k, DAEMON_SERVICE_RUNTIME_MODE_ENV as l, daemonDispatchJournalPath as m, writeDaemonRuntimeLease as n, DAEMON_SERVICE_RUNTIME_AUTO_START_ENV as o, clearDaemonServiceRuntimeState as p, withDaemonServiceReconcileLock as q, readDaemonLocalStateFile as r, DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV as s, readDaemonRuntimeLease as t, DAEMON_SERVICE_RUNTIME_STATE_SCHEMA as u, daemonRuntimeRootPath as v, daemonServiceRecognizedExecutablePaths as w, daemonServiceActiveBundleStatePath as x, daemonRuntimeServiceManagerPath as y, readDaemonServiceRuntimeSnapshot as z };
733
733
 
734
- //# sourceMappingURL=daemon-runtime-lease-6DIprlJy.js.map
734
+ //# sourceMappingURL=daemon-runtime-lease-Dqmxqrzi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-runtime-lease-Dqmxqrzi.js","names":[],"sources":["../../../packages/schemas/dist/schemas/daemon/runtime-lease.js","../src/config/daemon-state.ts","../src/config/daemon-local-state-file.ts","../src/config/daemon-runtime-lease.ts"],"sourcesContent":["import { daemonServiceControllerSchema } from \"./service-contract.js\";\nimport * as z$1 from \"zod/v4\";\n//#region src/schemas/daemon/runtime-lease.ts\nconst DAEMON_RUNTIME_LEASE_SCHEMA_VERSION = 1;\nconst daemonRuntimeLeaseModeSchema = z$1.enum([\"foreground\", \"background\"]);\nconst daemonRuntimeLeaseSchema = z$1.strictObject({\n\tschema: z$1.literal(\"openmeld-daemon-runtime-lease-v1\"),\n\tv: z$1.literal(1),\n\tgeneration: z$1.int().nonnegative(),\n\tbundleId: z$1.string().min(1),\n\tpid: z$1.int().positive(),\n\tmode: daemonRuntimeLeaseModeSchema,\n\tstartedAt: z$1.string().min(1),\n\tupdatedAt: z$1.string().min(1),\n\theartbeatAt: z$1.string().nullable(),\n\tserviceController: daemonServiceControllerSchema,\n\tmanagedBySystemService: z$1.boolean()\n});\n//#endregion\nexport { DAEMON_RUNTIME_LEASE_SCHEMA_VERSION, daemonRuntimeLeaseModeSchema, daemonRuntimeLeaseSchema };\n\n//# sourceMappingURL=runtime-lease.js.map","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { createHash, randomBytes } from \"node:crypto\";\nimport {\n chmod,\n mkdir,\n readFile,\n rename,\n rm,\n stat,\n writeFile,\n} from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport {\n acquireLock,\n type OpenMeldLock,\n readLockMeta,\n releaseLock,\n runWithHeldLock,\n tryCleanupStaleLock,\n} from \"./lock\";\nimport type { OpenMeldEnvPreset, OpenMeldPathResolutionInput } from \"./paths\";\nimport {\n resolveOpenMeldEnvPreset,\n resolveOpenMeldPresetOwnedPathInput,\n resolveOpenMeldRootDir,\n runtimeDir,\n systemDir,\n} from \"./paths\";\n\nconst DAEMON_STATE_SCHEMA = \"openmeld-daemon-install-v1\";\nexport const DAEMON_SERVICE_RUNTIME_STATE_SCHEMA =\n \"openmeld-daemon-service-state-v1\";\nexport const DAEMON_SERVICE_RUNTIME_MODE_ENV = \"OPENMELD_DAEMON_RUNTIME_MODE\";\nexport const DAEMON_SERVICE_RUNTIME_DETACHED_ENV =\n \"OPENMELD_DAEMON_RUNTIME_DETACHED\";\nexport const DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV =\n \"OPENMELD_DAEMON_SERVICE_CONTROLLER\";\nexport const DAEMON_SERVICE_RUNTIME_AUTO_START_ENV =\n \"OPENMELD_DAEMON_SERVICE_AUTO_START\";\nexport const DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV =\n \"OPENMELD_DAEMON_RUNTIME_SYSTEM_SERVICE\";\nconst DAEMON_TOKEN_SCHEMA = \"openmeld-daemon-token-v1\";\nconst DAEMON_TOKEN_ROTATE_MAX_AGE_MS = 24 * 60 * 60 * 1000;\nexport const DAEMON_HEARTBEAT_STALE_MS = 3 * 60 * 1000;\nconst DAEMON_ACTIVE_BUNDLE_STATE_FILENAME = \"active-bundle.json\";\nconst DAEMON_DISPATCH_JOURNAL_FILENAME = \"daemon-dispatch-journal.jsonl\";\nconst DAEMON_LIFECYCLE_JOURNAL_FILENAME = \"daemon-lifecycle-journal.jsonl\";\nconst DAEMON_REPAIR_JOURNAL_FILENAME = \"repair-journal.json\";\nconst DAEMON_SERVICE_LOCK_PROFILE = \"daemon-service\";\nconst DAEMON_SERVICE_LOCK_KEY = \"daemon-service-run\";\ntype DaemonServiceLifecycleLockContext = {\n active: boolean;\n failures: unknown[];\n ownerRoot: string;\n pendingOperations: Set<Promise<void>>;\n};\nconst daemonServiceLifecycleLockContext =\n new AsyncLocalStorage<DaemonServiceLifecycleLockContext>();\nconst DAEMON_STABLE_LAUNCHER_FILENAME = \"daemon-service-launcher.mjs\";\nconst DAEMON_SERVICE_EXECUTABLE_WRAPPER_FILENAME_BY_PRESET = {\n prod: \"OpenMeld Service\",\n \"dev-local\": \"OpenMeld Service Dev\",\n canary: \"OpenMeld Service Canary\",\n} as const satisfies Record<OpenMeldEnvPreset, string>;\nconst DAEMON_SERVICE_BINARY_EXECUTABLE_FILENAME_BY_PRESET = {\n prod: \"OpenMeld Service Binary\",\n \"dev-local\": \"OpenMeld Service Binary Dev\",\n canary: \"OpenMeld Service Binary Canary\",\n} as const satisfies Record<OpenMeldEnvPreset, string>;\nconst DAEMON_SERVICE_UPDATE_WORKER_BINARY_FILENAME_BY_PRESET = {\n prod: \"OpenMeld Update Worker Binary\",\n \"dev-local\": \"OpenMeld Update Worker Binary Dev\",\n canary: \"OpenMeld Update Worker Binary Canary\",\n} as const satisfies Record<OpenMeldEnvPreset, string>;\nconst DAEMON_SERVICE_LEGACY_EXECUTABLE_WRAPPER_FILENAME_BY_PRESET = {\n prod: \"openmeld-service\",\n \"dev-local\": \"openmeld-dev-service\",\n canary: \"openmeld-canary-service\",\n} as const satisfies Record<OpenMeldEnvPreset, string>;\nexport const DAEMON_SERVICE_LIFECYCLE_LOCK_PROFILE =\n DAEMON_SERVICE_LOCK_PROFILE;\nexport const DAEMON_SERVICE_LIFECYCLE_LOCK_KEY = DAEMON_SERVICE_LOCK_KEY;\nexport type DaemonServiceLifecycleLock = OpenMeldLock;\n\nexport type DaemonLifecycleIntent =\n | \"run_background\"\n | \"run_foreground\"\n | \"stop\"\n | \"autostart\"\n | \"status_cleanup\"\n | \"startup_check\"\n | \"start\"\n | \"reinstall\"\n | \"uninstall\"\n | \"upgrade_reconcile\";\n\nexport type DaemonLifecycleLockMeta = {\n intent: DaemonLifecycleIntent;\n command: string;\n pid?: number;\n sessionId?: string;\n at?: string;\n};\n\nexport type DaemonInstallSource = \"cli.auto_check\" | \"daemon.command.install\";\nexport type DaemonRunMode = \"foreground\" | \"background\";\nexport type DaemonServiceController =\n | \"launchd\"\n | \"systemd\"\n | \"windows-service\"\n | \"legacy-detached\"\n | \"unknown\";\n\ntype BaseDaemonServiceRuntimeState = {\n mode: DaemonRunMode;\n command: string;\n gatewayUrl: string | null;\n openMeldProfileId: string | null;\n stopRequestedAt: string | null;\n startedAt: string;\n updatedAt: string;\n heartbeatAt: string | null;\n managedBySystemService: boolean;\n serviceController: DaemonServiceController;\n autoStart: boolean;\n};\n\nexport type DaemonServiceRuntimeState = BaseDaemonServiceRuntimeState & {\n v: 1;\n schema: typeof DAEMON_SERVICE_RUNTIME_STATE_SCHEMA;\n status: \"running\";\n pid: number;\n};\n\nexport type DaemonServiceRuntimeStatus = {\n status: \"running\" | \"stale\" | \"not_running\" | \"unknown\";\n mode: DaemonRunMode | null;\n pid: number | null;\n startedAt: string | null;\n updatedAt: string | null;\n managedBySystemService: boolean;\n serviceController: DaemonServiceRuntimeState[\"serviceController\"];\n autoStart: boolean;\n reason?: string;\n};\n\nexport type DaemonServiceRuntimeMetadataInput = {\n managedBySystemService?: boolean;\n serviceController?: string;\n autoStart?: boolean;\n env?: NodeJS.ProcessEnv;\n};\n\nexport type DaemonServiceRuntimeMetadata = {\n managedBySystemService: boolean;\n serviceController: DaemonServiceController;\n autoStart: boolean;\n};\n\nexport type DaemonInstallState = {\n v: 1;\n schema: typeof DAEMON_STATE_SCHEMA;\n daemonVersion: string;\n installSource: DaemonInstallSource;\n installedAt: string;\n updatedAt: string;\n};\n\nexport type DaemonTokenState = {\n v: 1;\n schema: typeof DAEMON_TOKEN_SCHEMA;\n token: string;\n issuedAt: string;\n updatedAt: string;\n};\n\nexport type DaemonInstallResult = {\n status: \"installed\" | \"already_installed\";\n state: DaemonInstallState;\n};\n\nexport type DaemonUninstallResult = {\n removed: boolean;\n};\n\nexport type DaemonStatus =\n | {\n installed: true;\n state: DaemonInstallState;\n }\n | {\n installed: false;\n state: null;\n };\n\nexport async function getDaemonStatus(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonStatus> {\n const [state, runtimeExists] = await Promise.all([\n readDaemonInstallState(pathInput),\n pathExists(daemonRuntimeRootPath(pathInput)),\n ]);\n if (state && runtimeExists) {\n return {\n installed: true,\n state,\n };\n }\n return {\n installed: false,\n state: null,\n };\n}\n\nexport async function getDaemonRuntimeStatus(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonServiceRuntimeStatus> {\n const state = await readDaemonServiceRuntimeState(pathInput);\n if (!state) {\n return {\n status: \"not_running\",\n mode: null,\n pid: null,\n startedAt: null,\n updatedAt: null,\n managedBySystemService: false,\n serviceController: \"unknown\",\n autoStart: false,\n };\n }\n if (!Number.isInteger(state.pid) || state.pid <= 0) {\n return {\n status: \"stale\",\n mode: state.mode,\n pid: state.pid,\n startedAt: state.startedAt,\n updatedAt: state.updatedAt,\n managedBySystemService: state.managedBySystemService,\n serviceController: state.serviceController,\n autoStart: state.autoStart,\n reason: \"invalid_pid\",\n };\n }\n if (!isPidAlive(state.pid)) {\n return {\n status: \"stale\",\n mode: state.mode,\n pid: state.pid,\n startedAt: state.startedAt,\n updatedAt: state.updatedAt,\n managedBySystemService: state.managedBySystemService,\n serviceController: state.serviceController,\n autoStart: state.autoStart,\n reason: \"process_not_alive\",\n };\n }\n if (isDaemonServiceRuntimeHeartbeatStale(state)) {\n return {\n status: \"stale\",\n mode: state.mode,\n pid: state.pid,\n startedAt: state.startedAt,\n updatedAt: state.updatedAt,\n managedBySystemService: state.managedBySystemService,\n serviceController: state.serviceController,\n autoStart: state.autoStart,\n reason: \"heartbeat_stale\",\n };\n }\n return {\n status: \"running\",\n mode: state.mode,\n pid: state.pid,\n startedAt: state.startedAt,\n updatedAt: state.updatedAt,\n managedBySystemService: state.managedBySystemService,\n serviceController: state.serviceController,\n autoStart: state.autoStart,\n };\n}\n\nexport async function readDaemonServiceRuntimeSnapshot(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonServiceRuntimeState | null> {\n return await readDaemonServiceRuntimeState(pathInput);\n}\n\nexport function resolveDaemonServiceRuntimeMetadata(\n input: DaemonServiceRuntimeMetadataInput = {}\n): DaemonServiceRuntimeMetadata {\n const env = input.env ?? process.env;\n const managedBySystemService =\n input.managedBySystemService === true ||\n env[DAEMON_SERVICE_RUNTIME_SYSTEM_SERVICE_ENV] === \"1\";\n const serviceControllerInput =\n typeof input.serviceController === \"string\" &&\n input.serviceController.length > 0\n ? input.serviceController\n : env[DAEMON_SERVICE_RUNTIME_CONTROLLER_ENV];\n const autoStart =\n input.autoStart === true ||\n env[DAEMON_SERVICE_RUNTIME_AUTO_START_ENV] === \"1\";\n\n return {\n managedBySystemService,\n serviceController: parseDaemonServiceController(serviceControllerInput),\n autoStart,\n };\n}\n\nexport async function setDaemonServiceRuntimeState(\n state: DaemonServiceRuntimeState,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await writeDaemonServiceRuntimeState(state, pathInput);\n}\n\nexport async function clearDaemonServiceRuntimeState(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n const { clearDaemonRuntimeLease } = await import(\"./daemon-runtime-lease\");\n await Promise.all([\n rm(daemonServiceRuntimeStatePath(pathInput), { force: true }),\n clearDaemonRuntimeLease(pathInput),\n ]);\n}\n\nexport function withDaemonServiceRunLock<T>(\n callback: () => Promise<T>,\n meta: DaemonLifecycleLockMeta = {\n intent: \"run_background\",\n command: \"openmeld service start\",\n }\n): Promise<T> {\n return withDaemonServiceLifecycleLock(meta, callback);\n}\n\nexport async function acquireDaemonServiceLifecycleLock(\n meta: DaemonLifecycleLockMeta = {\n intent: \"run_background\",\n command: \"openmeld service start\",\n },\n pathResolution: OpenMeldPathResolutionInput = resolveOpenMeldPresetOwnedPathInput()\n): Promise<DaemonServiceLifecycleLock> {\n return await acquireLock({\n openMeldProfileId: DAEMON_SERVICE_LIFECYCLE_LOCK_PROFILE,\n key: DAEMON_SERVICE_LIFECYCLE_LOCK_KEY,\n meta,\n pathResolution,\n });\n}\n\nexport async function releaseDaemonServiceLifecycleLock(\n lock: DaemonServiceLifecycleLock\n): Promise<void> {\n await releaseLock(lock);\n}\n\nexport function withDaemonServiceStopLock<T>(\n callback: () => Promise<T>,\n meta: DaemonLifecycleLockMeta = {\n intent: \"stop\",\n command: \"openmeld service stop\",\n }\n): Promise<T> {\n return withDaemonServiceLifecycleLock(meta, callback);\n}\n\nexport function withDaemonServiceReconcileLock<T>(\n callback: () => Promise<T>,\n meta: DaemonLifecycleLockMeta = {\n intent: \"upgrade_reconcile\",\n command: \"openmeld service update\",\n }\n): Promise<T> {\n return withDaemonServiceLifecycleLock(meta, callback);\n}\n\nexport function withDaemonServiceRegistrationMutationLock<T>(\n callback: () => Promise<T>,\n meta: DaemonLifecycleLockMeta\n): Promise<T> {\n return withDaemonServiceLifecycleLock(meta, callback);\n}\n\nexport function withDaemonServiceLifecycleLock<T>(\n meta: DaemonLifecycleLockMeta,\n callback: () => Promise<T>\n): Promise<T> {\n const pathResolution = resolveOpenMeldPresetOwnedPathInput();\n const ownerRoot = resolveOpenMeldRootDir(pathResolution);\n const currentContext = daemonServiceLifecycleLockContext.getStore();\n if (currentContext?.active && currentContext.ownerRoot === ownerRoot) {\n let operation: Promise<T>;\n try {\n operation = callback();\n } catch (error) {\n operation = Promise.reject(error);\n }\n let trackedOperation: Promise<void>;\n trackedOperation = operation\n .then(\n () => undefined,\n (error: unknown) => {\n currentContext.failures.push(error);\n }\n )\n .finally(() => {\n currentContext.pendingOperations.delete(trackedOperation);\n });\n currentContext.pendingOperations.add(trackedOperation);\n return operation;\n }\n return withDaemonServiceLifecycleOwnerLock({\n callback,\n meta,\n ownerRoot,\n pathResolution,\n });\n}\n\nasync function withDaemonServiceLifecycleOwnerLock<T>(input: {\n callback: () => Promise<T>;\n meta: DaemonLifecycleLockMeta;\n ownerRoot: string;\n pathResolution: OpenMeldPathResolutionInput;\n}): Promise<T> {\n const lock = await acquireDaemonServiceLifecycleLock(\n input.meta,\n input.pathResolution\n );\n return await runWithHeldLock({\n lock,\n run: async () => {\n const context: DaemonServiceLifecycleLockContext = {\n active: true,\n failures: [],\n ownerRoot: input.ownerRoot,\n pendingOperations: new Set(),\n };\n let outcome: { ok: true; value: T } | { ok: false; error: unknown };\n try {\n outcome = {\n ok: true,\n value: await daemonServiceLifecycleLockContext.run(\n context,\n input.callback\n ),\n };\n } catch (error) {\n outcome = { ok: false, error };\n } finally {\n while (context.pendingOperations.size > 0) {\n await Promise.all([...context.pendingOperations]);\n }\n context.active = false;\n }\n const failures = [\n ...(outcome.ok ? [] : [outcome.error]),\n ...context.failures,\n ].filter(\n (failure, index, allFailures) => allFailures.indexOf(failure) === index\n );\n if (failures.length === 1) {\n throw failures[0];\n }\n if (failures.length > 1) {\n throw new AggregateError(\n failures,\n \"daemon service lifecycle mutation failed in more than one operation\"\n );\n }\n if (!outcome.ok) {\n throw outcome.error;\n }\n return outcome.value;\n },\n releaseContext: {\n command: input.meta.command,\n component: \"daemon_service_lifecycle\",\n intent: input.meta.intent,\n lockKey: DAEMON_SERVICE_LIFECYCLE_LOCK_KEY,\n openMeldProfileId: DAEMON_SERVICE_LIFECYCLE_LOCK_PROFILE,\n },\n });\n}\n\nexport async function readDaemonServiceLifecycleLockMeta(): Promise<DaemonLifecycleLockMeta | null> {\n const meta = await readLockMeta({\n openMeldProfileId: DAEMON_SERVICE_LIFECYCLE_LOCK_PROFILE,\n key: DAEMON_SERVICE_LIFECYCLE_LOCK_KEY,\n pathResolution: resolveOpenMeldPresetOwnedPathInput(),\n });\n if (!meta) {\n return null;\n }\n const intent =\n typeof meta.intent === \"string\"\n ? normalizeDaemonLifecycleIntent(meta.intent)\n : null;\n const command = typeof meta.command === \"string\" ? meta.command.trim() : \"\";\n if (!intent || command.length === 0) {\n return null;\n }\n const pid = typeof meta.pid === \"number\" ? meta.pid : undefined;\n const sessionId =\n typeof meta.sessionId === \"string\" && meta.sessionId.trim().length > 0\n ? meta.sessionId.trim()\n : undefined;\n const at =\n typeof meta.at === \"string\" && meta.at.trim().length > 0\n ? meta.at.trim()\n : undefined;\n return {\n intent,\n command,\n ...(typeof pid === \"number\" ? { pid } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(at ? { at } : {}),\n };\n}\n\nexport async function readDaemonServiceLifecycleLockMetaWithCleanup(): Promise<DaemonLifecycleLockMeta | null> {\n await tryCleanupStaleLock({\n openMeldProfileId: DAEMON_SERVICE_LIFECYCLE_LOCK_PROFILE,\n key: DAEMON_SERVICE_LIFECYCLE_LOCK_KEY,\n pathResolution: resolveOpenMeldPresetOwnedPathInput(),\n });\n return await readDaemonServiceLifecycleLockMeta();\n}\n\nexport async function installDaemon(input: {\n daemonVersion: string;\n source: DaemonInstallSource;\n}): Promise<DaemonInstallResult> {\n const existingState = await readDaemonInstallState();\n const runtimeExists = await pathExists(daemonRuntimeRootPath());\n if (\n existingState &&\n runtimeExists &&\n existingState.daemonVersion === input.daemonVersion\n ) {\n await ensureDaemonTokenState();\n return {\n status: \"already_installed\",\n state: existingState,\n };\n }\n\n await ensureDaemonRuntimeLayout();\n const now = new Date().toISOString();\n const nextState: DaemonInstallState = {\n v: 1,\n schema: DAEMON_STATE_SCHEMA,\n daemonVersion: input.daemonVersion,\n installSource: input.source,\n installedAt: existingState?.installedAt ?? now,\n updatedAt: now,\n };\n await writeDaemonInstallState(nextState);\n await ensureDaemonTokenState();\n\n return {\n status: \"installed\",\n state: nextState,\n };\n}\n\nexport async function uninstallDaemon(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonUninstallResult> {\n const [hasState, hasRuntimeDir, hasToken] = await Promise.all([\n pathExists(daemonStatePath(pathInput)),\n pathExists(daemonRuntimeRootPath(pathInput)),\n pathExists(daemonTokenPath(pathInput)),\n ]);\n\n await Promise.all([\n rm(daemonStatePath(pathInput), { force: true }),\n rm(daemonTokenPath(pathInput), { force: true }),\n rm(daemonServiceRuntimeStatePath(pathInput), { force: true }),\n rm(daemonRuntimeRootPath(pathInput), { recursive: true, force: true }),\n ]);\n\n return {\n removed: hasState || hasRuntimeDir || hasToken,\n };\n}\n\nexport function daemonStatePath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(systemDir(pathInput), \"daemon-install.json\");\n}\n\nexport function daemonRuntimeRootPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(runtimeDir(pathInput), \"daemon\");\n}\n\nexport function daemonServiceRuntimeStatePath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeRootPath(pathInput), \"service-runtime.json\");\n}\n\nexport function daemonRuntimeDataPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeRootPath(pathInput), \"data\");\n}\n\nexport function daemonRuntimeBundlesPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeRootPath(pathInput), \"bundles\");\n}\n\nexport function daemonRuntimeStateRootPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeRootPath(pathInput), \"state\");\n}\n\nexport function daemonLifecycleJournalPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(\n daemonRuntimeRootPath(pathInput),\n \"logs\",\n DAEMON_LIFECYCLE_JOURNAL_FILENAME\n );\n}\n\nexport function daemonDispatchJournalPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(\n daemonRuntimeRootPath(pathInput),\n \"logs\",\n DAEMON_DISPATCH_JOURNAL_FILENAME\n );\n}\n\nexport function daemonServiceActiveBundleStatePath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(\n daemonRuntimeStateRootPath(pathInput),\n DAEMON_ACTIVE_BUNDLE_STATE_FILENAME\n );\n}\n\nexport function daemonServiceRepairJournalPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(\n daemonRuntimeStateRootPath(pathInput),\n DAEMON_REPAIR_JOURNAL_FILENAME\n );\n}\n\nexport function daemonRuntimeServiceManagerPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(daemonRuntimeRootPath(pathInput), \"service-manager\");\n}\n\nexport function daemonServiceStableLauncherPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(\n daemonRuntimeServiceManagerPath(pathInput),\n DAEMON_STABLE_LAUNCHER_FILENAME\n );\n}\n\nexport function daemonServiceStableExecutableWrapperPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n const preset = resolveOpenMeldEnvPreset(pathInput);\n return join(\n daemonRuntimeServiceManagerPath(pathInput),\n DAEMON_SERVICE_EXECUTABLE_WRAPPER_FILENAME_BY_PRESET[preset]\n );\n}\n\nexport function daemonServiceStableBinaryExecutablePath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n const preset = resolveOpenMeldEnvPreset(pathInput);\n return join(\n daemonRuntimeServiceManagerPath(pathInput),\n DAEMON_SERVICE_BINARY_EXECUTABLE_FILENAME_BY_PRESET[preset]\n );\n}\n\nexport function daemonServiceUpdateWorkerBinaryExecutablePath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n const preset = resolveOpenMeldEnvPreset(pathInput);\n return join(\n daemonRuntimeServiceManagerPath(pathInput),\n DAEMON_SERVICE_UPDATE_WORKER_BINARY_FILENAME_BY_PRESET[preset]\n );\n}\n\nexport function daemonServiceLegacyExecutableWrapperPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n const preset = resolveOpenMeldEnvPreset(pathInput);\n return join(\n daemonRuntimeServiceManagerPath(pathInput),\n DAEMON_SERVICE_LEGACY_EXECUTABLE_WRAPPER_FILENAME_BY_PRESET[preset]\n );\n}\n\nexport function daemonServiceExecutableWrapperPaths(\n pathInput: OpenMeldPathResolutionInput = {}\n): string[] {\n return [\n daemonServiceStableExecutableWrapperPath(pathInput),\n daemonServiceLegacyExecutableWrapperPath(pathInput),\n ];\n}\n\nexport function daemonServiceRecognizedExecutablePaths(\n pathInput: OpenMeldPathResolutionInput = {}\n): string[] {\n return [\n daemonServiceStableBinaryExecutablePath(pathInput),\n ...daemonServiceExecutableWrapperPaths(pathInput),\n ];\n}\n\nexport function daemonTokenPath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(systemDir(pathInput), \"daemon-token.json\");\n}\n\nexport async function restoreDaemonInstallStateSnapshot(\n snapshot: DaemonInstallState | null,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n if (!snapshot) {\n await rm(daemonStatePath(pathInput), { force: true });\n return;\n }\n await writeDaemonInstallState(snapshot, pathInput);\n}\n\nexport function resolveDaemonControlPlaneEndpoint(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n const runtimeRoot = daemonRuntimeRootPath(pathInput);\n const suffix = createHash(\"sha256\")\n .update(runtimeRoot)\n .digest(\"hex\")\n .slice(0, 24);\n if (process.platform === \"win32\") {\n return `\\\\\\\\.\\\\pipe\\\\openmeld-daemon-control-${suffix}`;\n }\n return join(tmpdir(), `openmeld-daemon-control-${suffix}.sock`);\n}\n\nexport async function ensureDaemonControlPlaneToken(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<string> {\n const state = await ensureDaemonTokenState(pathInput);\n return state.token;\n}\n\nexport async function rotateDaemonControlPlaneTokenIfExpired(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonTokenState> {\n const current = await readDaemonTokenState(pathInput);\n if (current && !isDaemonTokenExpired(current)) {\n await chmod(daemonTokenPath(pathInput), 0o600).catch(() => undefined);\n return current;\n }\n\n return await writeNewDaemonTokenState(pathInput);\n}\n\nexport async function readDaemonControlPlaneToken(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<string | null> {\n const state = await readDaemonTokenState(pathInput);\n return state?.token ?? null;\n}\n\nfunction isPidAlive(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch (error) {\n return !(\n error instanceof Error &&\n (error as NodeJS.ErrnoException).code === \"ESRCH\"\n );\n }\n}\n\nasync function readDaemonServiceRuntimeState(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonServiceRuntimeState | null> {\n const raw = await readFile(\n daemonServiceRuntimeStatePath(pathInput),\n \"utf8\"\n ).catch((error) => {\n if (\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === \"ENOENT\"\n ) {\n return null;\n }\n throw error;\n });\n if (raw === null) {\n return null;\n }\n return parseDaemonServiceRuntimeState(raw);\n}\n\nfunction parseDaemonServiceRuntimeState(\n raw: string\n): DaemonServiceRuntimeState | null {\n try {\n const parsed = JSON.parse(raw);\n if (!isDaemonServiceRuntimeStateObject(parsed)) {\n return null;\n }\n\n return {\n v: 1,\n schema: DAEMON_SERVICE_RUNTIME_STATE_SCHEMA,\n status: \"running\",\n pid: parsed.pid,\n mode: parsed.mode,\n command: parsed.command,\n gatewayUrl: parseNullableString(parsed.gatewayUrl),\n openMeldProfileId: resolveStoredDaemonServiceOpenMeldProfileId(parsed),\n stopRequestedAt: parseNullableString(parsed.stopRequestedAt),\n heartbeatAt: parseNullableString(parsed.heartbeatAt),\n startedAt: parsed.startedAt,\n updatedAt: parsed.updatedAt,\n managedBySystemService: parsed.managedBySystemService === true,\n serviceController: parseDaemonServiceController(parsed.serviceController),\n autoStart: parsed.autoStart === true,\n };\n } catch {\n return null;\n }\n}\n\nfunction isDaemonServiceRuntimeStateObject(value: unknown): value is {\n v: 1;\n schema: string;\n status: \"running\";\n pid: number;\n mode: DaemonRunMode;\n command: string;\n gatewayUrl: string | null;\n openMeldProfileId?: string | null;\n profile?: string | null;\n stopRequestedAt: string | null;\n heartbeatAt: string | null;\n startedAt: string;\n updatedAt: string;\n managedBySystemService?: boolean;\n serviceController?: string;\n autoStart?: boolean;\n} {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value as Record<string, unknown>;\n return (\n candidate.v === 1 &&\n candidate.schema === DAEMON_SERVICE_RUNTIME_STATE_SCHEMA &&\n candidate.status === \"running\" &&\n typeof candidate.pid === \"number\" &&\n candidate.pid > 0 &&\n (candidate.mode === \"foreground\" || candidate.mode === \"background\") &&\n typeof candidate.command === \"string\" &&\n candidate.command.length > 0 &&\n isValidNullableString(candidate.gatewayUrl) &&\n isValidOptionalNullableString(candidate.openMeldProfileId) &&\n isValidOptionalNullableString(candidate.profile) &&\n isValidNullableString(candidate.stopRequestedAt) &&\n isValidNullableString(candidate.heartbeatAt) &&\n typeof candidate.startedAt === \"string\" &&\n candidate.startedAt.length > 0 &&\n typeof candidate.updatedAt === \"string\" &&\n candidate.updatedAt.length > 0\n );\n}\n\nexport function parseDaemonServiceController(\n value: unknown\n): DaemonServiceController {\n if (\n value === \"launchd\" ||\n value === \"systemd\" ||\n value === \"windows-service\" ||\n value === \"legacy-detached\" ||\n value === \"unknown\"\n ) {\n return value;\n }\n return \"unknown\";\n}\n\nfunction isValidNullableString(value: unknown): value is string | null {\n return value === null || typeof value === \"string\";\n}\n\nfunction isValidOptionalNullableString(\n value: unknown\n): value is string | null | undefined {\n return value === undefined || value === null || typeof value === \"string\";\n}\n\nfunction parseNullableString(value: unknown): string | null {\n if (value === null) {\n return null;\n }\n if (typeof value !== \"string\") {\n return null;\n }\n return value;\n}\n\nfunction resolveStoredDaemonServiceOpenMeldProfileId(input: {\n openMeldProfileId?: unknown;\n profile?: unknown;\n}): string | null {\n const openMeldProfileId = parseNullableString(input.openMeldProfileId);\n const legacyProfile = parseNullableString(input.profile);\n if (\n openMeldProfileId &&\n legacyProfile &&\n openMeldProfileId !== legacyProfile\n ) {\n throw new Error(\"conflicting openMeldProfileId values\");\n }\n return openMeldProfileId ?? legacyProfile;\n}\n\nexport function isDaemonServiceRuntimeHeartbeatStale(\n state: DaemonServiceRuntimeState\n): boolean {\n const latestSignalAt = Math.max(\n parseIsoTimestampOrZero(state.heartbeatAt),\n parseIsoTimestampOrZero(state.updatedAt)\n );\n if (latestSignalAt <= 0) {\n return false;\n }\n return Date.now() - latestSignalAt > DAEMON_HEARTBEAT_STALE_MS;\n}\n\nfunction parseIsoTimestampOrZero(value: string | null): number {\n if (!value) {\n return 0;\n }\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nasync function writeDaemonServiceRuntimeState(\n state: DaemonServiceRuntimeState,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n const path = daemonServiceRuntimeStatePath(pathInput);\n const runtimeRootPath = daemonRuntimeRootPath(pathInput);\n await mkdir(runtimeRootPath, { recursive: true });\n const tempPath = `${path}.tmp-${process.pid}-${Date.now()}`;\n let shouldCleanupTemp = true;\n\n try {\n await writeFile(tempPath, `${JSON.stringify(state, null, 2)}\\n`, {\n encoding: \"utf8\",\n mode: 0o600,\n });\n await rename(tempPath, path);\n await chmod(path, 0o600);\n shouldCleanupTemp = false;\n } finally {\n if (shouldCleanupTemp) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n }\n }\n}\n\nasync function ensureDaemonRuntimeLayout(): Promise<void> {\n await Promise.all([\n mkdir(systemDir(), { recursive: true }),\n mkdir(join(daemonRuntimeRootPath(), \"bin\"), { recursive: true }),\n mkdir(daemonRuntimeBundlesPath(), { recursive: true }),\n mkdir(join(daemonRuntimeRootPath(), \"data\"), { recursive: true }),\n mkdir(join(daemonRuntimeRootPath(), \"logs\"), { recursive: true }),\n mkdir(daemonRuntimeStateRootPath(), { recursive: true }),\n mkdir(daemonRuntimeServiceManagerPath(), { recursive: true }),\n ]);\n}\n\nfunction normalizeDaemonLifecycleIntent(\n value: string\n): DaemonLifecycleIntent | null {\n switch (value) {\n case \"run_background\":\n case \"run_foreground\":\n case \"stop\":\n case \"autostart\":\n case \"status_cleanup\":\n case \"startup_check\":\n case \"start\":\n case \"reinstall\":\n case \"uninstall\":\n case \"upgrade_reconcile\":\n return value;\n default:\n return null;\n }\n}\n\nasync function ensureDaemonTokenState(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonTokenState> {\n const current = await readDaemonTokenState(pathInput);\n if (current) {\n await chmod(daemonTokenPath(pathInput), 0o600).catch(() => undefined);\n return current;\n }\n\n return await writeNewDaemonTokenState(pathInput);\n}\n\nasync function writeNewDaemonTokenState(\n pathInput: OpenMeldPathResolutionInput\n): Promise<DaemonTokenState> {\n const nowIso = new Date().toISOString();\n const next: DaemonTokenState = {\n v: 1,\n schema: DAEMON_TOKEN_SCHEMA,\n token: createDaemonTokenValue(),\n issuedAt: nowIso,\n updatedAt: nowIso,\n };\n await writeDaemonTokenState(next, pathInput);\n return next;\n}\n\nasync function readDaemonInstallState(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonInstallState | null> {\n const raw = await readFile(daemonStatePath(pathInput), \"utf8\").catch(\n (error) => {\n if (\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === \"ENOENT\"\n ) {\n return null;\n }\n throw error;\n }\n );\n if (raw === null) {\n return null;\n }\n return parseDaemonInstallState(raw);\n}\n\nfunction parseDaemonInstallState(raw: string): DaemonInstallState | null {\n try {\n const parsed = JSON.parse(raw) as Partial<DaemonInstallState>;\n if (parsed.v !== 1) {\n return null;\n }\n if (parsed.schema !== DAEMON_STATE_SCHEMA) {\n return null;\n }\n if (typeof parsed.daemonVersion !== \"string\" || !parsed.daemonVersion) {\n return null;\n }\n if (!isDaemonInstallSource(parsed.installSource)) {\n return null;\n }\n if (typeof parsed.installedAt !== \"string\" || !parsed.installedAt) {\n return null;\n }\n if (typeof parsed.updatedAt !== \"string\" || !parsed.updatedAt) {\n return null;\n }\n return {\n v: 1,\n schema: DAEMON_STATE_SCHEMA,\n daemonVersion: parsed.daemonVersion,\n installSource: parsed.installSource,\n installedAt: parsed.installedAt,\n updatedAt: parsed.updatedAt,\n };\n } catch {\n return null;\n }\n}\n\nfunction isDaemonInstallSource(value: unknown): value is DaemonInstallSource {\n return value === \"cli.auto_check\" || value === \"daemon.command.install\";\n}\n\nasync function writeDaemonInstallState(\n state: DaemonInstallState,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n const path = daemonStatePath(pathInput);\n await mkdir(systemDir(pathInput), { recursive: true });\n const tempPath = `${path}.tmp-${process.pid}-${Date.now()}`;\n let shouldCleanupTemp = true;\n\n try {\n await writeFile(tempPath, `${JSON.stringify(state, null, 2)}\\n`, \"utf8\");\n await rename(tempPath, path);\n shouldCleanupTemp = false;\n } finally {\n if (shouldCleanupTemp) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n }\n }\n}\n\nasync function readDaemonTokenState(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonTokenState | null> {\n const raw = await readFile(daemonTokenPath(pathInput), \"utf8\").catch(\n (error) => {\n if (\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === \"ENOENT\"\n ) {\n return null;\n }\n throw error;\n }\n );\n if (raw === null) {\n return null;\n }\n return parseDaemonTokenState(raw);\n}\n\nfunction parseDaemonTokenState(raw: string): DaemonTokenState | null {\n try {\n const parsed = JSON.parse(raw) as Partial<DaemonTokenState>;\n if (parsed.v !== 1 || parsed.schema !== DAEMON_TOKEN_SCHEMA) {\n return null;\n }\n if (typeof parsed.token !== \"string\" || parsed.token.length < 16) {\n return null;\n }\n if (typeof parsed.issuedAt !== \"string\" || !parsed.issuedAt) {\n return null;\n }\n if (typeof parsed.updatedAt !== \"string\" || !parsed.updatedAt) {\n return null;\n }\n return {\n v: 1,\n schema: DAEMON_TOKEN_SCHEMA,\n token: parsed.token,\n issuedAt: parsed.issuedAt,\n updatedAt: parsed.updatedAt,\n };\n } catch {\n return null;\n }\n}\n\nasync function writeDaemonTokenState(\n state: DaemonTokenState,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n const path = daemonTokenPath(pathInput);\n await mkdir(systemDir(pathInput), { recursive: true });\n const tempPath = `${path}.tmp-${process.pid}-${Date.now()}`;\n let shouldCleanupTemp = true;\n\n try {\n await writeFile(tempPath, `${JSON.stringify(state, null, 2)}\\n`, {\n encoding: \"utf8\",\n mode: 0o600,\n });\n await rename(tempPath, path);\n await chmod(path, 0o600);\n shouldCleanupTemp = false;\n } finally {\n if (shouldCleanupTemp) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n }\n }\n}\n\nfunction isDaemonTokenExpired(state: DaemonTokenState): boolean {\n const updatedAtMs = Date.parse(state.updatedAt);\n if (!Number.isFinite(updatedAtMs)) {\n return true;\n }\n return Date.now() - updatedAtMs >= DAEMON_TOKEN_ROTATE_MAX_AGE_MS;\n}\n\nfunction createDaemonTokenValue(): string {\n return randomBytes(32).toString(\"base64url\");\n}\n\nasync function pathExists(path: string): Promise<boolean> {\n try {\n await stat(path);\n return true;\n } catch (error) {\n if (\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === \"ENOENT\"\n ) {\n return false;\n }\n throw error;\n }\n}\n","import {\n chmod,\n mkdir,\n readFile,\n rename,\n rm,\n writeFile,\n} from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\n\ntype SafeParseResult<T> = { success: true; data: T } | { success: false };\n\ntype DaemonLocalStateSchema<T> = {\n safeParse: (value: unknown) => SafeParseResult<T>;\n};\n\nexport async function readDaemonLocalStateFile<T>(input: {\n path: string;\n schema: DaemonLocalStateSchema<T>;\n}): Promise<T | null> {\n const raw = await readFile(input.path, \"utf8\").catch((error) => {\n if (\n error &&\n typeof error === \"object\" &&\n \"code\" in error &&\n error.code === \"ENOENT\"\n ) {\n return null;\n }\n throw error;\n });\n if (raw === null) {\n return null;\n }\n\n const parsedJson = safeParseJson(raw);\n if (parsedJson === null) {\n return null;\n }\n const parsed = input.schema.safeParse(parsedJson);\n return parsed.success ? parsed.data : null;\n}\n\nexport async function writeDaemonLocalStateFile<T>(input: {\n path: string;\n schema: DaemonLocalStateSchema<T>;\n value: T;\n mode?: number;\n}): Promise<void> {\n const parsed = input.schema.safeParse(input.value);\n if (!parsed.success) {\n throw new Error(`invalid daemon local state for ${input.path}`);\n }\n\n await mkdir(dirname(input.path), { recursive: true });\n const tempPath = `${input.path}.tmp-${process.pid}-${Date.now()}`;\n let shouldCleanupTemp = true;\n\n try {\n await writeFile(tempPath, `${JSON.stringify(parsed.data, null, 2)}\\n`, {\n encoding: \"utf8\",\n ...(typeof input.mode === \"number\" ? { mode: input.mode } : {}),\n });\n await rename(tempPath, input.path);\n if (typeof input.mode === \"number\") {\n await chmod(input.path, input.mode);\n }\n shouldCleanupTemp = false;\n } finally {\n if (shouldCleanupTemp) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n }\n }\n}\n\nfunction safeParseJson(raw: string): unknown | null {\n try {\n return JSON.parse(raw);\n } catch {\n return null;\n }\n}\n","import { rm } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { daemonRuntimeLeaseSchema } from \"@openmeld/schemas\";\nimport type { DaemonRuntimeLease } from \"@openmeld/schemas/types\";\nimport {\n readDaemonLocalStateFile,\n writeDaemonLocalStateFile,\n} from \"./daemon-local-state-file\";\nimport { daemonRuntimeStateRootPath } from \"./daemon-state\";\nimport type { OpenMeldPathResolutionInput } from \"./paths\";\n\nconst DAEMON_RUNTIME_LEASE_FILENAME = \"runtime-lease.json\";\n\nexport function daemonRuntimeLeasePath(\n pathInput: OpenMeldPathResolutionInput = {}\n): string {\n return join(\n daemonRuntimeStateRootPath(pathInput),\n DAEMON_RUNTIME_LEASE_FILENAME\n );\n}\n\nexport async function readDaemonRuntimeLease(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<DaemonRuntimeLease | null> {\n return await readDaemonLocalStateFile({\n path: daemonRuntimeLeasePath(pathInput),\n schema: daemonRuntimeLeaseSchema,\n });\n}\n\nexport async function writeDaemonRuntimeLease(\n lease: DaemonRuntimeLease,\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await writeDaemonLocalStateFile({\n path: daemonRuntimeLeasePath(pathInput),\n schema: daemonRuntimeLeaseSchema,\n value: lease,\n mode: 0o600,\n });\n}\n\nexport async function clearDaemonRuntimeLease(\n pathInput: OpenMeldPathResolutionInput = {}\n): Promise<void> {\n await rm(daemonRuntimeLeasePath(pathInput), { force: true });\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  import { Sn as __exportAll, bn as agentControllerConversationCapabilitySchema, on as runtimeTransportModeSchema, pn as agentControllerRefSchema, vn as normalizeKnownBuiltinAgentControllerId, xn as resolveBuiltinAgentControllerConversationCapability } from "./base-url-CY_j4bLH.js";
4
- import { $ as localFolderPickerResultSchema, $n as openMeldToolsMaintenanceProjectionSchema, $t as trashSpaceFileEntryResponseSchema, An as AGENT_STREAM_SNAPSHOT_MAX_CHARS, Ar as clientMessageIdSchema$1, At as spaceAttachmentMimeTypeSchema, B as openMeldDaemonProviderAccessEvidenceProviderSchema, Br as spacePasswordSchema, Bt as discardSpaceComposerUploadResponseSchema, Cr as tuple, Ct as signalStatusDataSchema, Dn as messageEnvelopeSchema, Dr as url, Dt as spaceAttachmentDescriptorSchema, Er as unknown, Et as signalTextSchema, F as runtimeTransportRuntimeCoordinatorRespondInteractionResponseSchema, Fn as spaceAgentStreamSnapshotSchema, G as openMeldDaemonTaskResultProjectFailureContextSchema, Gr as organizationInformationProtectionPolicyResponseSchema, Gt as publishSpaceComposerUploadResponseSchema, In as spaceAgentStreamTerminalFrameSchema, It as centerAgentInteractionSourceSchema, Jn as localComponentUpdatePolicySchema, Jr as executeExecutionRecoveryBodySchema, Jt as restoreSpaceFileRevisionResponseSchema, Kr as organizationProtectedInformationSchema, Lr as spaceTraceExecutionIdentityProjectionSchema, Lt as SPACE_FILE_ERROR_CODES, Mn as spaceAgentStreamDeltaFrameSchema, Mr as runtimeCoordinatorExecutionCreationDiagnosticSchema, Mt as spaceMessageAttachmentSchema, Nn as spaceAgentStreamPartFrameSchema, Nr as runtimeCoordinatorExecutionEventSchema, Nt as spaceMessageAttachmentsSchema, Or as postSpaceWakeStopBodySchema, Ot as spaceAttachmentDimensionSchema, Pn as spaceAgentStreamPresenceSchema, Pr as runtimeCoordinatorExecutionRecordSchema, Pt as conversationCompactionMarkerSchema, Q as localFolderPickerRequestSchema, Qn as openMeldToolsMaintenanceMutationResultSchema, Qr as openMeldRequestContextSchema, Qt as stageSpaceComposerUploadResponseSchema, Rn as agentInteractionPendingSummarySchema, Rr as SPACE_PASSWORD_RATE_LIMITED_ERROR_CODE, Rt as SPACE_FILE_MAX_SIZE_BYTES, Sn as targetWakeLifecycleIdentitySchema, Sr as string, Tr as union, Tt as signalTextDataSchema, Ur as spaceMentionLabelSchema, Ut as listSpaceFileRevisionsResponseSchema, Vn as agentInteractionResponseSchema, Vt as getSpaceFileResponseSchema, Wr as spaceMentionLabelSourceSchema, Wt as listSpaceFilesResponseSchema, Xn as localComponentUpdateStatusSchema, Xr as inspectExecutionRecoveryResponseSchema, Yn as localComponentUpdateProjectionSchema, Yr as executeExecutionRecoveryResponseSchema, Yt as spaceFileMimeTypeSchema, Zt as spaceMessageFileReferencesSchema, _n as spaceAllowedActionsSchema, _r as number, ai as profileWorkingDirectorySchema, an as openMeldDaemonSyncRouteCatalogPayloadSchema, ar as NEVER, at as agentTaskTerminalOutcomeSchema, bi as openMeldNavigationTargetSchema, bn as workingLanguageGuidanceSchema, br as record, ci as finiteIntegerNumber, cr as coerce, ct as controllerAgentTaskHandleSchema, di as trimmedStringFromUnknown, dn as spaceThreadEventSchema, dr as enumFactory, ei as agentProfileIdSchema, en as updateSpaceFileEntryResponseSchema, et as localFolderPathSchema, fi as MAX_TEXT_LENGTH$1, fn as spaceThreadSchema, fr as int, gn as resultArchivePolicySchema, gr as nullFactory, hr as neverFactory, ii as profileSchema, it as agentTaskHandleSchema, jn as agentStreamToolPartSchema, jt as spaceAttachmentSizeBytesSchema, kr as postSpaceWakeStopResponseSchema, kt as spaceAttachmentFileNameSchema, li as nonEmptyTrimmedStringFromUnknown, ln as dispatchExecutionSchema, lr as discriminatedUnion, lt as spaceWakeAgentTaskHandleSchema, mr as literal, n as daemonExecutionCompatibilitySchema, ni as openMeldRuntimeProfileIdSchema, nn as localAgentInstallationOptionSchema, nr as openMeldToolsUpdateOperationSchema, nt as agentTaskCompletionConditionSchema, oi as profileWorkspaceModeSchema, or as array, ot as areAgentTaskTerminalOutcomesEqual, pi as agentProfileWorkRecoveryActionKindSchema, pn as spaceThreadSignalPlacementSchema, pr as iso, qr as updateOrganizationInformationProtectionPolicyBodySchema, qt as restoreSpaceFileEntryResponseSchema, ri as profileKindSchema, rr as openMeldToolsUpdateRequestResultSchema, rt as agentTaskCompletionObservationSchema, si as uuidProfileIdSchema, sr as boolean, st as buildAgentTaskKey, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, tn as uploadSpaceFileResponseSchema, tt as agentDelegationSnapshotSchema, ui as optionalBooleanQuerySchema, un as spaceThreadContextSchema, ur as email, vn as spacePublicationModeSchema, vr as object, wr as undefinedFactory, wt as signalSystemNoticeDataSchema, xi as openMeldWebUrlSchema, xn as workingLanguageTagSchema, xr as strictObject, xt as centerAgentTaskReferenceSchema, yi as computerSetupModeSchema, yn as spaceDispatchPolicySchema, yr as preprocess, z as openMeldDaemonOriginalErrorSchema, zr as normalizeSpacePasswordText, zt as createSpaceFolderResponseSchema } from "./runtime-transport-4sib9j0_.js";
4
+ import { $ as localFolderPickerRequestSchema, $n as openMeldToolsMaintenanceMutationResultSchema, $r as openMeldRequestContextSchema, $t as stageSpaceComposerUploadResponseSchema, Ar as postSpaceWakeStopResponseSchema, At as spaceAttachmentFileNameSchema, B as openMeldDaemonOriginalErrorSchema, Br as normalizeSpacePasswordText, Bt as createSpaceFolderResponseSchema, Cn as targetWakeLifecycleIdentitySchema, Cr as string, Dr as unknown, Dt as signalTextSchema, Er as union, Et as signalTextDataSchema, Fn as spaceAgentStreamPresenceSchema, Fr as runtimeCoordinatorExecutionRecordSchema, Ft as conversationCompactionMarkerSchema, Gr as spaceMentionLabelSourceSchema, Gt as listSpaceFilesResponseSchema, Hn as agentInteractionResponseSchema, Ht as getSpaceFileResponseSchema, I as runtimeTransportRuntimeCoordinatorRespondInteractionResponseSchema, In as spaceAgentStreamSnapshotSchema, Jr as updateOrganizationInformationProtectionPolicyBodySchema, Jt as restoreSpaceFileEntryResponseSchema, K as openMeldDaemonTaskResultProjectFailureContextSchema, Kr as organizationInformationProtectionPolicyResponseSchema, Kt as publishSpaceComposerUploadResponseSchema, Ln as spaceAgentStreamTerminalFrameSchema, Lt as centerAgentInteractionSourceSchema, Mn as agentStreamToolPartSchema, Mt as spaceAttachmentSizeBytesSchema, Nn as spaceAgentStreamDeltaFrameSchema, Nr as runtimeCoordinatorExecutionCreationDiagnosticSchema, Nt as spaceMessageAttachmentSchema, On as messageEnvelopeSchema, Or as url, Ot as spaceAttachmentDescriptorSchema, Pn as spaceAgentStreamPartFrameSchema, Pr as runtimeCoordinatorExecutionEventSchema, Pt as spaceMessageAttachmentsSchema, Qt as spaceMessageFileReferencesSchema, Rr as spaceTraceExecutionIdentityProjectionSchema, Rt as SPACE_FILE_ERROR_CODES, Si as openMeldWebUrlSchema, Sn as workingLanguageTagSchema, Sr as strictObject, St as centerAgentTaskReferenceSchema, Tr as undefinedFactory, Tt as signalSystemNoticeDataSchema, V as openMeldDaemonProviderAccessEvidenceProviderSchema, Vr as spacePasswordSchema, Vt as discardSpaceComposerUploadResponseSchema, Wr as spaceMentionLabelSchema, Wt as listSpaceFileRevisionsResponseSchema, Xn as localComponentUpdateProjectionSchema, Xr as executeExecutionRecoveryResponseSchema, Xt as spaceFileMimeTypeSchema, Yn as localComponentUpdatePolicySchema, Yr as executeExecutionRecoveryBodySchema, Yt as restoreSpaceFileRevisionResponseSchema, Zn as localComponentUpdateStatusSchema, Zr as inspectExecutionRecoveryResponseSchema, _n as resultArchivePolicySchema, _r as nullFactory, ai as profileSchema, at as agentTaskHandleSchema, bi as computerSetupModeSchema, bn as spaceDispatchPolicySchema, br as preprocess, ci as uuidProfileIdSchema, cr as boolean, ct as buildAgentTaskKey, di as optionalBooleanQuerySchema, dn as spaceThreadContextSchema, dr as email, en as trashSpaceFileEntryResponseSchema, er as openMeldToolsMaintenanceProjectionSchema, et as localFolderPickerResultSchema, fi as trimmedStringFromUnknown, fn as spaceThreadEventSchema, fr as enumFactory, gr as neverFactory, hr as literal, ii as profileKindSchema, ir as openMeldToolsUpdateRequestResultSchema, it as agentTaskCompletionObservationSchema, jn as AGENT_STREAM_SNAPSHOT_MAX_CHARS, jr as clientMessageIdSchema$1, jt as spaceAttachmentMimeTypeSchema, kr as postSpaceWakeStopBodySchema, kt as spaceAttachmentDimensionSchema, li as finiteIntegerNumber, lr as coerce, lt as controllerAgentTaskHandleSchema, mi as agentProfileWorkRecoveryActionKindSchema, mn as spaceThreadSignalPlacementSchema, mr as iso, n as daemonExecutionCompatibilitySchema, nn as uploadSpaceFileResponseSchema, nt as agentDelegationSnapshotSchema, oi as profileWorkingDirectorySchema, on as openMeldDaemonSyncRouteCatalogPayloadSchema, or as NEVER, ot as agentTaskTerminalOutcomeSchema, pi as MAX_TEXT_LENGTH$1, pn as spaceThreadSchema, pr as int, qr as organizationProtectedInformationSchema, ri as openMeldRuntimeProfileIdSchema, rn as localAgentInstallationOptionSchema, rr as openMeldToolsUpdateOperationSchema, rt as agentTaskCompletionConditionSchema, si as profileWorkspaceModeSchema, sr as array, st as areAgentTaskTerminalOutcomesEqual, t as CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH, ti as agentProfileIdSchema, tn as updateSpaceFileEntryResponseSchema, tt as localFolderPathSchema, ui as nonEmptyTrimmedStringFromUnknown, un as dispatchExecutionSchema, ur as discriminatedUnion, ut as spaceWakeAgentTaskHandleSchema, vn as spaceAllowedActionsSchema, vr as number, wr as tuple, wt as signalStatusDataSchema, xi as openMeldNavigationTargetSchema, xn as workingLanguageGuidanceSchema, xr as record, yn as spacePublicationModeSchema, yr as object, zn as agentInteractionPendingSummarySchema, zr as SPACE_PASSWORD_RATE_LIMITED_ERROR_CODE, zt as SPACE_FILE_MAX_SIZE_BYTES } from "./runtime-transport-21JL5nu5.js";
5
5
  import { r as daemonServiceLaneSchema } from "./service-contract-CRyDcIIf.js";
6
6
  import * as z$1 from "zod/v4";
7
7
  //#region ../../packages/schemas/dist/agent-execution-readiness-impact-taxonomy.js
@@ -12322,7 +12322,11 @@ const runtimeIdentifierSchema = z$1.string().trim().min(1).max(512);
12322
12322
  const reasonCodeSchema = z$1.string().trim().min(1).max(256);
12323
12323
  const ISO_DATE_TIME_SCHEMA = z$1.iso.datetime({ offset: true });
12324
12324
  const getLocalRuntimeExpectedRoutesQuerySchema = z$1.strictObject({
12325
- contractVersion: z$1.enum(["v2", "v3"]).optional(),
12325
+ contractVersion: z$1.enum([
12326
+ "v2",
12327
+ "v3",
12328
+ "v4"
12329
+ ]).optional(),
12326
12330
  deviceId: boundedIdentifierSchema,
12327
12331
  lane: boundedIdentifierSchema
12328
12332
  });
@@ -12331,6 +12335,7 @@ const localRuntimeExpectedRouteSchema = z$1.strictObject({
12331
12335
  bindingId: boundedIdentifierSchema,
12332
12336
  bindingState: z$1.literal("enabled_primary"),
12333
12337
  configurationRevision: z$1.number().int().positive().optional(),
12338
+ defaultProjectId: boundedIdentifierSchema.nullable().optional(),
12334
12339
  executionTarget: z$1.strictObject({
12335
12340
  agentControllerConversationId: z$1.string().trim().min(1).max(512).nullable(),
12336
12341
  agentControllerRef: boundedIdentifierSchema,
@@ -13201,6 +13206,7 @@ const getSpaceWakeProgressResponseSchema = z$1.strictObject({
13201
13206
  });
13202
13207
  z$1.strictObject({
13203
13208
  spaceId: nonEmptyTrimmedStringFromUnknown,
13209
+ includePageInfo: optionalBooleanQuerySchema,
13204
13210
  includeTiming: optionalBooleanQuerySchema,
13205
13211
  includeSourceContext: optionalBooleanQuerySchema,
13206
13212
  includeWaitReason: optionalBooleanQuerySchema,
@@ -13214,6 +13220,10 @@ const getActiveSpaceWakeProgressResponseSchema = z$1.strictObject({
13214
13220
  sourceProfileId: z$1.string().trim().min(1).nullable().optional(),
13215
13221
  targetProfileId: z$1.string().trim().min(1).nullable()
13216
13222
  }),
13223
+ pageInfo: z$1.strictObject({
13224
+ hasMore: z$1.boolean(),
13225
+ limit: z$1.int().min(1)
13226
+ }).optional(),
13217
13227
  items: z$1.array(wakeProgressItemSchema)
13218
13228
  });
13219
13229
  //#endregion
@@ -17984,6 +17994,7 @@ async function getSpaceWakeProgress(client, input) {
17984
17994
  }
17985
17995
  async function getActiveSpaceWakeProgress(client, input) {
17986
17996
  const searchParams = new URLSearchParams();
17997
+ if (input.includePageInfo === true) searchParams.set("includePageInfo", "true");
17987
17998
  if (input.includeSourceContext === true) searchParams.set("includeSourceContext", "true");
17988
17999
  if (input.includeTiming === true) searchParams.set("includeTiming", "true");
17989
18000
  if (input.includeWaitReason === true) searchParams.set("includeWaitReason", "true");
@@ -18012,6 +18023,16 @@ async function getActiveSpaceWakeProgress(client, input) {
18012
18023
  path: ["query", "sourceProfileId"]
18013
18024
  }
18014
18025
  });
18026
+ if (input.includePageInfo === true && response.pageInfo === void 0) throw new OpenMeldApiClientInvalidResponseError({
18027
+ message: "Active Wake progress did not confirm the requested page information.",
18028
+ operation: "space.active_wake_progress",
18029
+ status: 200,
18030
+ rawBody: JSON.stringify(response),
18031
+ schemaIssue: {
18032
+ message: "The response did not include the requested page information.",
18033
+ path: ["pageInfo"]
18034
+ }
18035
+ });
18015
18036
  return response;
18016
18037
  }
18017
18038
  async function postSpaceWakeStop(client, input) {
@@ -18207,4 +18228,4 @@ function composeAbortSignals(parent, timeout) {
18207
18228
  //#endregion
18208
18229
  export { submitAgentControllerTaskLifecycleEventItemSchema as $, spaceMemberDirectoryAllowedRelationsSchema as $t, MAX_TEXT_LENGTH as A, submitFeedbackIssueRequestSchema as At, toErrorMessage$2 as B, AGENT_ACTIVITY_PRESENCE_TTL_MAX_MS as Bt, createSpaceApi as C, agentControllerCollaborationModeSchema as Cn, ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_CODE as Ct, toStructuredApiClientFailure as D, profileCapabilitiesResponseSchema as Dt, resolveProfileSpaceHistoryGatewayHost as E, authProfileManagedRoleSchema as Et, OPENMELD_HEADER_PROFILE_ID as F, listCenterAgentRoutinesResponseSchema as Ft, SPACE_DISPATCH_TRACE_RESPONSE_CONTRACT_VERSION_HEADER as G, agentActivitySnapshotResponseSchema as Gt, toErrorMessage$3 as H, agentActivityProviderSchema as Ht, OPENMELD_HEADER_REQUESTED_ORGANIZATION_ID as I, pauseCenterAgentRoutineResponseSchema as It, spaceDispatchTraceAttemptStatusSchema as J, localProjectControlDiscoverProjectsResponseSchema as Jt, projectSpaceDispatchTraceFinalVisibleOutcome as K, localProjectControlConnectionSchema as Kt, OPENMELD_HEADER_REQUEST_ID as L, resumeCenterAgentRoutineResponseSchema as Lt, parseIncoming as M, createCenterAgentRoutineResponseSchema as Mt, parseServerErrorFrame as N, deleteCenterAgentRoutineResponseSchema as Nt, DAEMON_STREAM_KEEPALIVE_PING as O, profileErrorResponseSchema as Ot, resolveCustomMentionAliasOverride as P, listCenterAgentRoutineRunsResponseSchema as Pt, projectObservabilityWakeCorrelation as Q, spaceMemberAgentWakeAvailabilitySchema as Qt, OPENMELD_HEADER_SPACE_ADDRESSING_VERSION as R, updateCenterAgentRoutineResponseSchema as Rt, createRuntimeReportingApi as S, agentControllerPermissionModeSchema as Sn, organizationDirectoryResponseSchema as St, resolveAccountSpaceIndexGatewayHost as T, authProfileKindSchema as Tt, getSpaceUpdatesResponseSchema as U, agentActivitySessionStatusSchema as Ut, sleep as V, agentActivityEventSchema as Vt, SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS as W, agentActivitySnapshotQuerySchema as Wt, spaceDispatchTraceResponseSchema as X, postSpaceMembersResponseSchema as Xt, spaceDispatchTraceDispatchStatusSchema as Y, leaveSpaceResponseSchema as Yt, observabilityWakeTraceSelectorSchema as Z, removeSpaceMembersResponseSchema as Zt, createOrganizationSkillsApi as _, START_BOUNDED_VERSION_SCHEMA as _n, listOrganizationSkillsResponseSchema as _t, buildSpaceAttachmentDownloadPath as a, agentActivitySessionInventoryQuerySchema as an, gatewayErrorEnvelopeSchema as at, createProjectsApi as b, startReplyReadinessSummarySchema as bn, organizationSkillSummarySchema as bt, createAgentProfileBindingApi as c, observedLocalAgentSessionSchema as cn, computerFileAccessDaemonFrameSchema as ct, createCurrentDeviceApi as d, listProjectsResponseSchema as dn, modelCatalogSchema as dt, spaceMemberDirectoryEntrySchema as en, ownerComputerDiagnosticsSchema as et, createFeedbackApi as f, projectSchema as fn, organizationSpaceDirectoryWithMemberCountsResponseSchema as ft, createOrganizationApi as g, START_BOUNDED_ID_SCHEMA as gn, getOrganizationSkillResponseSchema as gt, createOpenMeldApiClient as h, openCodePermissionConfigSchema as hn, spaceMetaSchema as ht, buildProfileSpaceHistoryUpsertPath as i, agentActivityInventorySessionStatusSchema as in, agentProfileCreationConfigurationSchema as it, parseEnvelope as j, submitFeedbackIssueResponseSchema as jt, DAEMON_STREAM_KEEPALIVE_PONG as k, organizationComputersResponseSchema as kt, createCenterAgentApi as l, archiveProjectResponseSchema as ln, computerFileAccessPolicyInputSchema as lt, createLocalRuntimeExpectedRoutesApi as m, centerAgentToolSpeakerSchema as mn, spaceCreatorSchema as mt, OpenMeldApiClientInvalidResponseError as n, spaceMemberKindSchema as nn, summarizeComputerFileAccessPolicy as nt, createAccountSpaceIndexApi as o, agentActivitySessionInventoryResponseSchema as on, COMPUTER_FILE_ACCESS_RUNTIME_CAPABILITY as ot, createFetchTransport as p, updateProjectResponseSchema as pn, resolveInitialSpaceAccessMode as pt, resolveSpaceDispatchTraceRootCause as q, localProjectControlDaemonFrameSchema as qt, buildProfileSpaceHistoryStatusPath as r, agentActivityInventorySessionOriginSchema as rn, DEFAULT_AGENT_PROFILE_CREATION_CONFIGURATION as rt, createAgentActivityApi as s, localAgentSessionProviderSchema as sn, OPENMELD_RUNTIME_CAPABILITIES_HEADER as st, OpenMeldApiClientHttpError as t, spaceMemberDirectorySchema as tn, projectOwnerComputerLocalRuntimes as tt, createComputerFileAccessApi as u, createProjectResponseSchema as un, computerFileAccessPolicySchema as ut, createPrepareReadinessApi as v, START_ISO_DATE_TIME_SCHEMA as vn, organizationSkillBundleSchema as vt, dist_exports as w, toCompatibleSpaceAddressingRequestWireValue as wn, ADDITIONAL_HUMAN_PROFILE_CREATION_DISABLED_MESSAGE as wt, createRoutinesApi as x, localAgentCatalogSchema as xn, stringifyOrganizationSkillBundleCanonicalJson as xt, createProfileSpaceHistoryApi as y, START_TRIMMED_NON_EMPTY_STRING_SCHEMA as yn, organizationSkillReleaseSummarySchema as yt, buildOpenMeldRequestContextHeaders as z, AGENT_ACTIVITY_EVENT_MAX_BYTES as zt };
18209
18230
 
18210
- //# sourceMappingURL=dist-H9F26fYn.js.map
18231
+ //# sourceMappingURL=dist-Bu7QFqmt.js.map