openmeld 0.3.152 → 0.3.154
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.
- package/dist/{add-me-membership-D8gJ8GVZ.js → add-me-membership-CW6n-hmp.js} +2 -2
- package/dist/{add-me-membership-D8gJ8GVZ.js.map → add-me-membership-CW6n-hmp.js.map} +1 -1
- package/dist/{api-client-foundation-D_LFUhPR.js → api-client-foundation-CLOdRX5Y.js} +3 -3
- package/dist/{api-client-foundation-D_LFUhPR.js.map → api-client-foundation-CLOdRX5Y.js.map} +1 -1
- package/dist/{auth-session-DjqQNk5F.js → auth-session-Bg4ATgGF.js} +2 -2
- package/dist/{auth-session-DjqQNk5F.js.map → auth-session-Bg4ATgGF.js.map} +1 -1
- package/dist/{command-5l6nj4IO.js → command-l73B9ykv.js} +497 -270
- package/dist/{command-5l6nj4IO.js.map → command-l73B9ykv.js.map} +1 -1
- package/dist/{daemon-runtime-lease-6DIprlJy.js → daemon-runtime-lease-Dqmxqrzi.js} +40 -40
- package/dist/daemon-runtime-lease-Dqmxqrzi.js.map +1 -0
- package/dist/{dist-H9F26fYn.js → dist-Bu7QFqmt.js} +24 -3
- package/dist/{dist-H9F26fYn.js.map → dist-Bu7QFqmt.js.map} +1 -1
- package/dist/openmeld.js +98 -110
- package/dist/openmeld.js.map +1 -1
- package/dist/{runtime-transport-4sib9j0_.js → runtime-transport-21JL5nu5.js} +99 -6
- package/dist/runtime-transport-21JL5nu5.js.map +1 -0
- package/package.json +2 -2
- package/skills/openmeld-cli/SKILL.md +6 -4
- package/dist/daemon-runtime-lease-6DIprlJy.js.map +0 -1
- package/dist/runtime-transport-4sib9j0_.js.map +0 -1
|
@@ -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 {
|
|
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-
|
|
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
|
|
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([
|
|
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-
|
|
18231
|
+
//# sourceMappingURL=dist-Bu7QFqmt.js.map
|