agent-transport-system 0.7.39 → 0.7.41

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.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { Mr as runtimeAgentControllerSettingsSchema, a as runWithHeldLock, jr as runtimeAgentControllerLaunchContractSchema, n as isAtsLockError, t as acquireLock } from "./lock-DV2_jevB.js";
3
+ import { Mr as runtimeAgentControllerLaunchContractSchema, Nr as runtimeAgentControllerSettingsSchema, a as runWithHeldLock, n as isAtsLockError, t as acquireLock } from "./lock-BJ3j8Z9n.js";
4
4
  import { D as resolveAtsEnvPreset, _ as deviceSkillsInstallsPath, b as legacyRuntimeConfigPath, g as deviceSkillsDir, h as deviceSkillsCustomTargetsPath, l as deviceAgentRuntimePath, m as devicePreferencesPath, u as deviceDir, v as deviceSkillsStorePath } from "./paths-DFiopT5Y.js";
5
5
  import { dirname, normalize, posix, win32 } from "node:path";
6
6
  import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
@@ -975,4 +975,4 @@ function toErrorMessage(error) {
975
975
 
976
976
  //#endregion
977
977
  export { toSpaceDeleteUrl as A, toSpaceUpdatesUrl as B, updateConfiguredSkillsConfig as C, toSpaceContractUrl as D, toDaemonRouteObservationUrl as E, toSpaceMetaUrl as F, toSpacePasswordUrl as I, toSpaceRemoveMembersUrl as L, toSpaceDispatchTraceUrl as M, toSpaceLeaveUrl as N, toSpaceCreateUrl as O, toSpaceMembersUrl as P, toSpaceResultUrl as R, updateConfiguredOnboardingConfig as S, normalizeBaseUrl as T, toSpaceWsUrl as V, getRuntimeConfigReadHealth as _, resolveBaseUrlOrNull as a, setConfiguredSkillsConfig as b, DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE as c, getConfiguredDaemonDispatchLimits as d, getConfiguredDeviceRuntimeState as f, getConfiguredViewCustomization as g, getConfiguredStartV1OnboardingState as h, resolveBaseUrl as i, toSpaceDispatchLookupUrl as j, toSpaceCursorUrl as k, alignRuntimeConfigStorage as l, getConfiguredSkillsConfig as m, normalizeGatewayBaseUrl as n, resolveDefaultGatewayBaseUrl as o, getConfiguredOnboardingDisclaimerAcceptedAt as p, normalizeGatewayBaseUrlOrNull as r, resolveExplicitGatewayUrlOrThrow as s, DEV_LOCAL_GATEWAY_BASE_URL as t, createDefaultRuntimeAgentControllerSettings as u, resolveRuntimeSkillsCustomTargetId as v, updateConfiguredStartV1OnboardingState as w, updateConfiguredDeviceRuntimeState as x, setConfiguredBaseUrl as y, toSpaceSignalsUrl as z };
978
- //# sourceMappingURL=base-url-Gd_RGCHM.js.map
978
+ //# sourceMappingURL=base-url-CjrWhAM1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-url-CjrWhAM1.js","names":[],"sources":["../src/protocol/urls.ts","../src/config/runtime-config.ts","../src/config/base-url.ts"],"sourcesContent":["const TRAILING_SLASHES_REGEX = /\\/+$/;\nconst ROOT_PATH_REGEX = /^\\/+$/;\n\nexport function normalizeBaseUrl(baseUrl: string): string {\n const url = new URL(baseUrl);\n if (!ROOT_PATH_REGEX.test(url.pathname)) {\n throw new Error(\"baseUrl must be origin-only (no path prefix)\");\n }\n if (url.search || url.hash) {\n throw new Error(\"baseUrl must be origin-only (no query or hash)\");\n }\n url.pathname = \"\";\n url.search = \"\";\n url.hash = \"\";\n return url.toString().replace(TRAILING_SLASHES_REGEX, \"\");\n}\n\nexport function toSpaceSignalsUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/signals`;\n return url.toString();\n}\n\nexport function toSpaceCreateUrl(baseUrl: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = \"/v1/spaces\";\n return url.toString();\n}\n\nexport function toSpaceDeleteUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}`;\n return url.toString();\n}\n\nexport function toSpaceMetaUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/meta`;\n return url.toString();\n}\n\nexport function toSpaceContractUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/contract`;\n return url.toString();\n}\n\nexport function toSpaceUpdatesUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/updates`;\n return url.toString();\n}\n\nexport function toSpaceStatusUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/status`;\n return url.toString();\n}\n\nexport function toSpaceResultUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/result`;\n return url.toString();\n}\n\nexport function toSpaceMembersUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/members`;\n return url.toString();\n}\n\nexport function toSpaceRemoveMembersUrl(\n baseUrl: string,\n space: string\n): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/members/remove`;\n return url.toString();\n}\n\nexport function toSpaceLeaveUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/leave`;\n return url.toString();\n}\n\nexport function toSpaceDispatchTraceUrl(\n baseUrl: string,\n space: string,\n dispatchId: string\n): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/dispatches/${encodeURIComponent(dispatchId)}/trace`;\n return url.toString();\n}\n\nexport function toSpaceDispatchLookupUrl(\n baseUrl: string,\n space: string\n): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/dispatches/lookup`;\n return url.toString();\n}\n\nexport function toDaemonRouteObservationUrl(\n baseUrl: string,\n profileId: string\n): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/daemon/routes/${encodeURIComponent(profileId)}`;\n return url.toString();\n}\n\nexport function toSpacePasswordUrl(baseUrl: string, space: string): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/password`;\n return url.toString();\n}\n\nexport function toSpaceCursorUrl(\n baseUrl: string,\n space: string,\n profileId: string\n): string {\n const url = new URL(normalizeBaseUrl(baseUrl));\n url.pathname = `/v1/spaces/${encodeURIComponent(space)}/cursors/${encodeURIComponent(profileId)}`;\n return url.toString();\n}\n\nexport function toSpaceWsUrl(baseUrl: string, space: string): string {\n const http = new URL(normalizeBaseUrl(baseUrl));\n let wsScheme: \"ws:\" | \"wss:\";\n if (http.protocol === \"http:\") {\n wsScheme = \"ws:\";\n } else if (http.protocol === \"https:\") {\n wsScheme = \"wss:\";\n } else if (http.protocol === \"ws:\" || http.protocol === \"wss:\") {\n wsScheme = http.protocol;\n } else {\n throw new Error(\n `unsupported baseUrl protocol for websocket URL: ${http.protocol}`\n );\n }\n return `${wsScheme}//${http.host}/v1/spaces/${encodeURIComponent(space)}/stream`;\n}\n","import { createHash } from \"node:crypto\";\nimport { mkdir, readFile, rename, rm, writeFile } from \"node:fs/promises\";\nimport { dirname, normalize, posix, win32 } from \"node:path\";\nimport {\n runtimeAgentControllerLaunchContractSchema,\n runtimeAgentControllerSettingsSchema,\n} from \"@agent-transport-system/schemas\";\nimport type { RuntimeAgentControllerLaunchContract } from \"@agent-transport-system/schemas/types\";\nimport { normalizeGatewayBaseUrl } from \"./base-url\";\nimport {\n type AtsLock,\n acquireLock,\n isAtsLockError,\n runWithHeldLock,\n} from \"./lock\";\nimport {\n deviceAgentRuntimePath,\n deviceDir,\n devicePreferencesPath,\n deviceSkillsCustomTargetsPath,\n deviceSkillsDir,\n deviceSkillsInstallsPath,\n deviceSkillsStorePath,\n legacyRuntimeConfigPath,\n resolveAtsEnvPreset,\n} from \"./paths\";\n\nexport type RuntimeViewCustomization = {\n messages?: {\n human?: Record<string, string>;\n agent?: Record<string, string>;\n };\n render?: {\n human?: {\n dataMode?: \"payload\" | \"envelope\";\n };\n agent?: {\n envelopeMode?: \"verbose\" | \"compact\";\n };\n };\n};\n\nexport type RuntimeSkillsAgentConfig = {\n skillsDir?: string;\n globalSkillsDir?: string;\n};\n\nexport type RuntimeSkillsCustomTarget = {\n id?: string;\n name: string;\n dir: string;\n};\n\nexport type RuntimeSkillsInstallRecord = {\n targetId: string;\n targetDir: string;\n mode: \"symlink\" | \"copy\";\n status: \"installed\" | \"skipped\" | \"failed\";\n skillIds: string[];\n reason?: string;\n updatedAt: string;\n};\n\nexport type RuntimeSkillsConfig = {\n storeDir?: string;\n agents?: Record<string, RuntimeSkillsAgentConfig>;\n customTargets?: RuntimeSkillsCustomTarget[];\n installs?: RuntimeSkillsInstallRecord[];\n};\n\nexport type RuntimeDaemonDispatchConfig = {\n globalConcurrency?: number;\n queueMax?: number;\n};\n\nexport type RuntimeDaemonConfig = {\n dispatch?: RuntimeDaemonDispatchConfig;\n};\n\nexport type RuntimeDaemonDispatchLimits = {\n globalConcurrency: number;\n queueMax: number;\n};\n\nexport type RuntimeAgentTransportMode = \"local-cli\" | \"codex-app-server\";\nexport type RuntimeAgentStreamingMode = \"final\" | \"stream\";\n\nexport type RuntimeAgentControllerConversationIdMappingSpec = {\n sourceField: string;\n mappingVersion: number;\n};\n\nexport type RuntimeAgentControllerSettings = {\n transportMode: RuntimeAgentTransportMode;\n streamingMode: RuntimeAgentStreamingMode;\n timeoutMs: number | null;\n retry: number;\n contextIdMappingSpec: RuntimeAgentControllerConversationIdMappingSpec;\n};\n\nexport const DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE: RuntimeAgentTransportMode =\n \"local-cli\";\nexport const DEFAULT_RUNTIME_AGENT_STREAMING_MODE: RuntimeAgentStreamingMode =\n \"final\";\n// Normal Agent execution has no fixed wall-clock timeout. Long-running tasks\n// should end by explicit result, failure, cancellation, or stale progress\n// evidence policy, not by a hard-coded elapsed-time cutoff.\nexport const DEFAULT_LOCAL_ADAPTER_TIMEOUT_MS = null as number | null;\nexport const DEFAULT_RUNTIME_AGENT_RETRY = 0;\nexport const DEFAULT_RUNTIME_AGENT_CONTEXT_MAPPING_VERSION = 1;\nexport const DEFAULT_RUNTIME_AGENT_CONTEXT_SOURCE_FIELD = \"ATS_CLI_CONTEXT_ID\";\nexport const DEFAULT_RUNTIME_DAEMON_GLOBAL_CONCURRENCY = 10;\nexport const DEFAULT_RUNTIME_DAEMON_QUEUE_MAX = 50;\n\nexport type RuntimeAgentControllerState = {\n agentId: string;\n displayName: string;\n enabled: boolean;\n launchContract?: RuntimeAgentControllerLaunchContract;\n transportMode?: RuntimeAgentTransportMode;\n streamingMode?: RuntimeAgentStreamingMode;\n timeoutMs?: number | null;\n retry?: number;\n contextIdMappingSpec?: RuntimeAgentControllerConversationIdMappingSpec;\n registeredAt: string;\n updatedAt: string;\n};\n\nexport type RuntimeDeviceRuntimeState = {\n controllers?: RuntimeAgentControllerState[];\n};\n\nexport type RuntimeStartV1OnboardingState = {\n disclaimerAcceptedVersion?: string;\n lastCompletedAt?: string;\n localAgentsSetupCompletedAt?: string;\n};\n\nexport type RuntimeOnboardingConfig = {\n disclaimerAcceptedAt?: string;\n startV1?: RuntimeStartV1OnboardingState;\n};\n\nexport type RuntimeConfigFallbackReason = \"invalid_json\" | \"invalid_version\";\n\nexport type RuntimeConfigReadHealth = {\n parseFallback: boolean;\n reason?: RuntimeConfigFallbackReason;\n};\n\ntype RuntimeConfigV1 = {\n v: 1;\n baseUrl?: string;\n viewCustomization?: RuntimeViewCustomization;\n skills?: RuntimeSkillsConfig;\n daemon?: RuntimeDaemonConfig;\n deviceRuntimeState?: RuntimeDeviceRuntimeState;\n onboarding?: RuntimeOnboardingConfig;\n updatedAt: string;\n};\n\ntype DevicePreferencesV1 = {\n v: 1;\n baseUrl?: string;\n viewCustomization?: RuntimeViewCustomization;\n daemon?: RuntimeDaemonConfig;\n onboarding?: RuntimeOnboardingConfig;\n updatedAt: string;\n};\n\ntype DeviceAgentRuntimeV1 = {\n v: 1;\n deviceRuntimeState?: RuntimeDeviceRuntimeState;\n updatedAt: string;\n};\n\ntype DeviceSkillsStoreV1 = {\n v: 1;\n storeDir?: string;\n agents?: Record<string, RuntimeSkillsAgentConfig>;\n updatedAt: string;\n};\n\ntype DeviceSkillsCustomTargetsV1 = {\n v: 1;\n customTargets: RuntimeSkillsCustomTarget[];\n updatedAt: string;\n};\n\ntype DeviceSkillsInstallsV1 = {\n v: 1;\n installs: RuntimeSkillsInstallRecord[];\n updatedAt: string;\n};\n\ntype RuntimeMessageCustomization = RuntimeViewCustomization[\"messages\"];\ntype RuntimeRenderCustomization = RuntimeViewCustomization[\"render\"];\ntype RuntimeHumanRender = NonNullable<RuntimeRenderCustomization>[\"human\"];\ntype RuntimeAgentRender = NonNullable<RuntimeRenderCustomization>[\"agent\"];\ntype RuntimeConfigOverrides = {\n baseUrl?: string | null;\n viewCustomization?: RuntimeViewCustomization | null;\n skills?: RuntimeSkillsConfig | null;\n daemon?: RuntimeDaemonConfig | null;\n deviceRuntimeState?: RuntimeDeviceRuntimeState | null;\n onboarding?: RuntimeOnboardingConfig | null;\n};\nconst CUSTOM_TARGET_ID_PREFIX = \"custom-\";\nconst CUSTOM_TARGET_ID_LENGTH = 12;\nconst RUNTIME_CONFIG_LOCK_PROFILE = \"__system__\";\nconst RUNTIME_CONFIG_LOCK_KEY = \"runtime-config\";\nconst RUNTIME_CONFIG_LOCK_MAX_ATTEMPTS = 40;\nconst RUNTIME_CONFIG_LOCK_RETRY_DELAY_MS = 25;\nconst WINDOWS_DRIVE_ONLY_RE = /^[a-zA-Z]:$/;\nconst WINDOWS_DRIVE_PREFIX_RE = /^[a-zA-Z]:[\\\\/]/;\nconst WINDOWS_UNC_RE = /^[/\\\\]{2}[^/\\\\]+[/\\\\]+[^/\\\\]+/;\nconst WINDOWS_DRIVE_ANY_RE = /^[a-zA-Z]:/;\nconst TRAILING_PATH_SEPARATORS_RE = /[\\\\/]+$/;\n\nexport function resolveRuntimeSkillsCustomTargetId(input: {\n dir: string;\n id?: string;\n}): string {\n const existingId =\n typeof input.id === \"string\" && input.id.trim().length > 0\n ? input.id.trim()\n : \"\";\n if (existingId) {\n return existingId;\n }\n const normalizedDir = normalizeCustomTargetDir(input.dir);\n const digest = createHash(\"sha256\").update(normalizedDir).digest(\"hex\");\n return `${CUSTOM_TARGET_ID_PREFIX}${digest.slice(0, CUSTOM_TARGET_ID_LENGTH)}`;\n}\n\nexport function resolveDefaultAgentContextSourceField(\n _agentId: string\n): string {\n return DEFAULT_RUNTIME_AGENT_CONTEXT_SOURCE_FIELD;\n}\n\nexport function createDefaultRuntimeAgentControllerSettings(\n agentId: string\n): RuntimeAgentControllerSettings {\n return {\n transportMode: DEFAULT_RUNTIME_AGENT_TRANSPORT_MODE,\n streamingMode: resolveDefaultRuntimeAgentStreamingMode(),\n timeoutMs: DEFAULT_LOCAL_ADAPTER_TIMEOUT_MS,\n retry: DEFAULT_RUNTIME_AGENT_RETRY,\n contextIdMappingSpec: {\n sourceField: resolveDefaultAgentContextSourceField(agentId),\n mappingVersion: DEFAULT_RUNTIME_AGENT_CONTEXT_MAPPING_VERSION,\n },\n };\n}\n\nconst resolveDefaultRuntimeAgentStreamingMode =\n (): RuntimeAgentStreamingMode => {\n const preset = resolveAtsEnvPreset();\n if (preset === \"dev-local\" || preset === \"canary\") {\n return \"stream\";\n }\n return DEFAULT_RUNTIME_AGENT_STREAMING_MODE;\n };\n\nexport async function getConfiguredBaseUrl(): Promise<string | null> {\n const config = await readRuntimeConfig();\n if (!config?.baseUrl) {\n return null;\n }\n return normalizeGatewayBaseUrl(config.baseUrl);\n}\n\nexport async function getConfiguredViewCustomization(): Promise<RuntimeViewCustomization | null> {\n const config = await readRuntimeConfig();\n return config?.viewCustomization ?? null;\n}\n\nexport async function getConfiguredSkillsConfig(): Promise<RuntimeSkillsConfig | null> {\n const config = await readRuntimeConfig();\n return config?.skills ?? null;\n}\n\nexport async function getConfiguredDeviceRuntimeState(): Promise<RuntimeDeviceRuntimeState | null> {\n const config = await readRuntimeConfig();\n return config?.deviceRuntimeState ?? null;\n}\n\nexport async function getConfiguredDaemonDispatchLimits(): Promise<RuntimeDaemonDispatchLimits> {\n const config = await readRuntimeConfig();\n return resolveRuntimeDaemonDispatchLimits(config?.daemon?.dispatch);\n}\n\nexport async function getConfiguredOnboardingConfig(): Promise<RuntimeOnboardingConfig | null> {\n const config = await readRuntimeConfig();\n return config?.onboarding ?? null;\n}\n\nexport async function getConfiguredOnboardingDisclaimerAcceptedAt(): Promise<\n string | null\n> {\n const onboarding = await getConfiguredOnboardingConfig();\n return onboarding?.disclaimerAcceptedAt ?? null;\n}\n\nexport async function getConfiguredStartV1OnboardingState(): Promise<RuntimeStartV1OnboardingState | null> {\n const onboarding = await getConfiguredOnboardingConfig();\n return onboarding?.startV1 ?? null;\n}\n\nexport async function getRuntimeConfigReadHealth(): Promise<RuntimeConfigReadHealth> {\n const result = await readRuntimeConfigDetailed();\n return result.health;\n}\n\nexport async function alignRuntimeConfigStorage(): Promise<{\n migratedLegacyConfig: boolean;\n removedLegacyConfig: boolean;\n}> {\n return await withRuntimeConfigLock(async () => {\n const split = await readSplitRuntimeConfigDetailed();\n const legacy = await readLegacyRuntimeConfigDetailed();\n const hasLegacyConfig = await pathExists(legacyRuntimeConfigPath());\n\n if (legacy.config && (!split.hasFiles || split.health.parseFallback)) {\n await writeRuntimeConfig(legacy.config);\n return {\n migratedLegacyConfig: true,\n removedLegacyConfig: hasLegacyConfig,\n };\n }\n\n if (hasLegacyConfig && split.hasFiles) {\n await rm(legacyRuntimeConfigPath(), { force: true });\n return {\n migratedLegacyConfig: false,\n removedLegacyConfig: true,\n };\n }\n\n return {\n migratedLegacyConfig: false,\n removedLegacyConfig: false,\n };\n });\n}\n\nexport async function setConfiguredBaseUrl(baseUrl: string): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const normalized = normalizeGatewayBaseUrl(baseUrl);\n const previous = await readRuntimeConfig();\n const next = buildNextConfig(previous, { baseUrl: normalized });\n\n await writeRuntimeConfig(next);\n });\n}\n\nexport async function setConfiguredSkillsConfig(\n skills: RuntimeSkillsConfig\n): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const previous = await readRuntimeConfig();\n const next = buildNextConfig(previous, { skills });\n\n await writeRuntimeConfig(next);\n });\n}\n\nexport async function updateConfiguredSkillsConfig(\n updater: (current: RuntimeSkillsConfig | null) => RuntimeSkillsConfig | null\n): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const previous = await readRuntimeConfig();\n const previousSkills = previous?.skills ?? null;\n const nextSkills = updater(previousSkills);\n\n const previousComparable = JSON.stringify(previousSkills);\n const nextComparable = JSON.stringify(nextSkills);\n if (previousComparable === nextComparable) {\n return;\n }\n\n const next = buildNextConfig(previous, { skills: nextSkills });\n\n await writeRuntimeConfig(next);\n });\n}\n\nexport async function setConfiguredDeviceRuntimeState(\n deviceRuntimeState: RuntimeDeviceRuntimeState\n): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const previous = await readRuntimeConfig();\n const next = buildNextConfig(previous, { deviceRuntimeState });\n\n await writeRuntimeConfig(next);\n });\n}\n\nexport async function updateConfiguredDeviceRuntimeState(\n updater: (\n current: RuntimeDeviceRuntimeState | null\n ) => RuntimeDeviceRuntimeState | null\n): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const previous = await readRuntimeConfig();\n const previousDeviceRuntimeState = previous?.deviceRuntimeState ?? null;\n const nextDeviceRuntimeState = updater(previousDeviceRuntimeState);\n\n const previousComparable = JSON.stringify(previousDeviceRuntimeState);\n const nextComparable = JSON.stringify(nextDeviceRuntimeState);\n if (previousComparable === nextComparable) {\n return;\n }\n\n const next = buildNextConfig(previous, {\n deviceRuntimeState: nextDeviceRuntimeState,\n });\n\n await writeRuntimeConfig(next);\n });\n}\n\nexport async function updateConfiguredStartV1OnboardingState(\n updater: (\n current: RuntimeStartV1OnboardingState | null\n ) => RuntimeStartV1OnboardingState | null\n): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const previous = await readRuntimeConfig();\n const previousOnboarding = previous?.onboarding ?? null;\n const previousStartV1 = previousOnboarding?.startV1 ?? null;\n const nextStartV1 = updater(previousStartV1);\n\n const previousComparable = JSON.stringify(previousStartV1);\n const nextComparable = JSON.stringify(nextStartV1);\n if (previousComparable === nextComparable) {\n return;\n }\n\n const nextOnboarding =\n nextStartV1 || previousOnboarding?.disclaimerAcceptedAt\n ? {\n ...(previousOnboarding?.disclaimerAcceptedAt\n ? {\n disclaimerAcceptedAt: previousOnboarding.disclaimerAcceptedAt,\n }\n : {}),\n ...(nextStartV1 ? { startV1: nextStartV1 } : {}),\n }\n : null;\n const next = buildNextConfig(previous, {\n onboarding: nextOnboarding,\n });\n\n await writeRuntimeConfig(next);\n });\n}\n\nexport async function updateConfiguredOnboardingConfig(\n updater: (\n current: RuntimeOnboardingConfig | null\n ) => RuntimeOnboardingConfig | null\n): Promise<void> {\n await withRuntimeConfigLock(async () => {\n const previous = await readRuntimeConfig();\n const previousOnboarding = previous?.onboarding ?? null;\n const nextOnboarding = updater(previousOnboarding);\n\n const previousComparable = JSON.stringify(previousOnboarding);\n const nextComparable = JSON.stringify(nextOnboarding);\n if (previousComparable === nextComparable) {\n return;\n }\n\n const next = buildNextConfig(previous, {\n onboarding: nextOnboarding,\n });\n\n await writeRuntimeConfig(next);\n });\n}\n\nfunction buildNextConfig(\n previous: RuntimeConfigV1 | null,\n overrides: RuntimeConfigOverrides\n): RuntimeConfigV1 {\n const baseUrl = resolveBaseUrlOverride(previous?.baseUrl, overrides);\n const viewCustomization = resolveConfigOverride(\n \"viewCustomization\",\n previous?.viewCustomization,\n overrides\n );\n const skills = resolveConfigOverride(\"skills\", previous?.skills, overrides);\n const daemon = resolveConfigOverride(\"daemon\", previous?.daemon, overrides);\n const deviceRuntimeState = resolveConfigOverride(\n \"deviceRuntimeState\",\n previous?.deviceRuntimeState,\n overrides\n );\n const onboarding = resolveConfigOverride(\n \"onboarding\",\n previous?.onboarding,\n overrides\n );\n\n return {\n v: 1,\n ...(baseUrl ? { baseUrl } : {}),\n ...(viewCustomization ? { viewCustomization } : {}),\n ...(skills ? { skills } : {}),\n ...(daemon ? { daemon } : {}),\n ...(deviceRuntimeState ? { deviceRuntimeState } : {}),\n ...(onboarding ? { onboarding } : {}),\n updatedAt: new Date().toISOString(),\n };\n}\n\nfunction resolveBaseUrlOverride(\n previous: string | undefined,\n overrides: RuntimeConfigOverrides\n): string | undefined {\n if (!(\"baseUrl\" in overrides)) {\n return previous;\n }\n if (typeof overrides.baseUrl !== \"string\" || overrides.baseUrl.length === 0) {\n return undefined;\n }\n return overrides.baseUrl;\n}\n\nfunction resolveConfigOverride<T>(\n key:\n | \"viewCustomization\"\n | \"skills\"\n | \"daemon\"\n | \"deviceRuntimeState\"\n | \"onboarding\",\n previous: T | undefined,\n overrides: RuntimeConfigOverrides\n): T | undefined {\n if (!(key in overrides)) {\n return previous;\n }\n const value = overrides[key] as T | null | undefined;\n return value ?? undefined;\n}\n\nasync function acquireRuntimeConfigLock(): Promise<AtsLock> {\n for (\n let attempt = 0;\n attempt < RUNTIME_CONFIG_LOCK_MAX_ATTEMPTS;\n attempt += 1\n ) {\n try {\n return await acquireLock({\n atsProfileId: RUNTIME_CONFIG_LOCK_PROFILE,\n key: RUNTIME_CONFIG_LOCK_KEY,\n });\n } catch (error) {\n if (\n !isAtsLockError(error) ||\n attempt === RUNTIME_CONFIG_LOCK_MAX_ATTEMPTS - 1\n ) {\n throw error;\n }\n await delay(RUNTIME_CONFIG_LOCK_RETRY_DELAY_MS);\n }\n }\n\n throw new Error(\"runtime config lock retries exhausted\");\n}\n\nasync function withRuntimeConfigLock<T>(run: () => Promise<T>): Promise<T> {\n const lock = await acquireRuntimeConfigLock();\n return await runWithHeldLock({\n lock,\n run,\n releaseContext: {\n component: \"runtime_config\",\n lockKey: RUNTIME_CONFIG_LOCK_KEY,\n atsProfileId: RUNTIME_CONFIG_LOCK_PROFILE,\n },\n });\n}\n\nasync function readRuntimeConfig(): Promise<RuntimeConfigV1 | null> {\n const result = await readRuntimeConfigDetailed();\n return result.config;\n}\n\nasync function readRuntimeConfigDetailed(): Promise<{\n config: RuntimeConfigV1 | null;\n health: RuntimeConfigReadHealth;\n}> {\n const split = await readSplitRuntimeConfigDetailed();\n if (split.hasFiles) {\n return {\n config: split.config,\n health: split.health,\n };\n }\n return await readLegacyRuntimeConfigDetailed();\n}\n\nfunction parseConfiguredBaseUrl(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n try {\n return normalizeGatewayBaseUrl(value);\n } catch {\n return undefined;\n }\n}\n\nfunction parseRuntimeViewCustomization(\n value: unknown\n): RuntimeViewCustomization | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const obj = value as {\n messages?: unknown;\n render?: unknown;\n };\n\n const messages = parseMessageCustomization(obj.messages);\n const render = parseRenderCustomization(obj.render);\n\n if (!(messages || render)) {\n return undefined;\n }\n\n return {\n ...(messages ? { messages } : {}),\n ...(render ? { render } : {}),\n };\n}\n\nfunction parseRuntimeSkillsConfig(\n value: unknown\n): RuntimeSkillsConfig | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const obj = value as {\n storeDir?: unknown;\n agents?: unknown;\n customTargets?: unknown;\n installs?: unknown;\n };\n\n const storeDir =\n typeof obj.storeDir === \"string\" && obj.storeDir.trim().length > 0\n ? obj.storeDir.trim()\n : undefined;\n const agents = parseRuntimeSkillsAgents(obj.agents);\n const installs = parseRuntimeSkillsInstallRecords(obj.installs);\n const customTargets = parseRuntimeSkillsCustomTargets(\n obj.customTargets,\n buildLegacyCustomTargetIdByDir(installs)\n );\n\n if (!(storeDir || agents || customTargets || installs)) {\n return undefined;\n }\n\n return {\n ...(storeDir ? { storeDir } : {}),\n ...(agents ? { agents } : {}),\n ...(customTargets ? { customTargets } : {}),\n ...(installs ? { installs } : {}),\n };\n}\n\nfunction parseRuntimeDaemonConfig(\n value: unknown\n): RuntimeDaemonConfig | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const obj = value as {\n dispatch?: unknown;\n };\n const dispatch = parseRuntimeDaemonDispatchConfig(obj.dispatch);\n if (!dispatch) {\n return undefined;\n }\n return { dispatch };\n}\n\nfunction parseRuntimeDaemonDispatchConfig(\n value: unknown\n): RuntimeDaemonDispatchConfig | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const obj = value as {\n globalConcurrency?: unknown;\n queueMax?: unknown;\n };\n const globalConcurrency = parsePositiveInteger(obj.globalConcurrency);\n const queueMax = parsePositiveInteger(obj.queueMax);\n if (globalConcurrency === undefined && queueMax === undefined) {\n return undefined;\n }\n return {\n ...(globalConcurrency === undefined ? {} : { globalConcurrency }),\n ...(queueMax === undefined ? {} : { queueMax }),\n };\n}\n\nfunction parseRuntimeDeviceRuntimeState(\n value: unknown\n): RuntimeDeviceRuntimeState | undefined {\n const fromDeviceRuntimeState = parseRuntimeDeviceRuntimeStateObject(value);\n return fromDeviceRuntimeState;\n}\n\nfunction parseRuntimeDeviceRuntimeStateObject(\n value: unknown\n): RuntimeDeviceRuntimeState | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const obj = value as {\n controllers?: unknown;\n };\n const controllers = parseRuntimeAgentControllerStates(obj.controllers);\n if (!controllers) {\n return undefined;\n }\n\n return {\n controllers,\n };\n}\n\nfunction parseRuntimeOnboardingConfig(\n value: unknown\n): RuntimeOnboardingConfig | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const obj = value as {\n disclaimerAcceptedAt?: unknown;\n startV1?: unknown;\n };\n const disclaimerAcceptedAt = toTrimmedStringOrUndefined(\n obj.disclaimerAcceptedAt\n );\n const startV1 = parseRuntimeStartV1OnboardingState(obj.startV1);\n if (!(disclaimerAcceptedAt || startV1)) {\n return undefined;\n }\n return {\n ...(disclaimerAcceptedAt ? { disclaimerAcceptedAt } : {}),\n ...(startV1 ? { startV1 } : {}),\n };\n}\n\nfunction parseRuntimeStartV1OnboardingState(\n value: unknown\n): RuntimeStartV1OnboardingState | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const obj = value as {\n disclaimerAcceptedVersion?: unknown;\n lastCompletedAt?: unknown;\n localAgentsSetupCompletedAt?: unknown;\n };\n const disclaimerAcceptedVersion = toTrimmedStringOrUndefined(\n obj.disclaimerAcceptedVersion\n );\n const lastCompletedAt = toTrimmedStringOrUndefined(obj.lastCompletedAt);\n const localAgentsSetupCompletedAt = toTrimmedStringOrUndefined(\n obj.localAgentsSetupCompletedAt\n );\n if (\n !(\n disclaimerAcceptedVersion ||\n lastCompletedAt ||\n localAgentsSetupCompletedAt\n )\n ) {\n return undefined;\n }\n return {\n ...(disclaimerAcceptedVersion ? { disclaimerAcceptedVersion } : {}),\n ...(lastCompletedAt ? { lastCompletedAt } : {}),\n ...(localAgentsSetupCompletedAt ? { localAgentsSetupCompletedAt } : {}),\n };\n}\n\nasync function writeRuntimeConfig(next: RuntimeConfigV1): Promise<void> {\n await mkdir(deviceDir(), { recursive: true });\n await mkdir(deviceSkillsDir(), { recursive: true });\n\n const updatedAt = new Date().toISOString();\n await writeJsonFileOrRemove(\n devicePreferencesPath(),\n buildDevicePreferencesState(next, updatedAt)\n );\n await writeJsonFileOrRemove(\n deviceAgentRuntimePath(),\n buildDeviceAgentRuntimeState(next, updatedAt)\n );\n await writeJsonFileOrRemove(\n deviceSkillsStorePath(),\n buildDeviceSkillsStoreState(next, updatedAt)\n );\n await writeJsonFileOrRemove(\n deviceSkillsCustomTargetsPath(),\n buildDeviceSkillsCustomTargetsState(next, updatedAt)\n );\n await writeJsonFileOrRemove(\n deviceSkillsInstallsPath(),\n buildDeviceSkillsInstallsState(next, updatedAt)\n );\n await rm(legacyRuntimeConfigPath(), { force: true }).catch(() => undefined);\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\nfunction parseMessageCustomization(\n value: unknown\n): RuntimeMessageCustomization | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const obj = value as {\n human?: unknown;\n agent?: unknown;\n };\n\n const human = toStringMap(obj.human);\n const agent = toStringMap(obj.agent);\n\n if (!(human || agent)) {\n return undefined;\n }\n\n return {\n ...(human ? { human } : {}),\n ...(agent ? { agent } : {}),\n };\n}\n\nfunction parseRenderCustomization(\n value: unknown\n): RuntimeRenderCustomization | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const obj = value as {\n human?: unknown;\n agent?: unknown;\n };\n\n const humanRaw = obj.human as { dataMode?: unknown } | undefined;\n const agentRaw = obj.agent as { envelopeMode?: unknown } | undefined;\n\n const human: RuntimeHumanRender | undefined =\n humanRaw?.dataMode === \"payload\" || humanRaw?.dataMode === \"envelope\"\n ? { dataMode: humanRaw.dataMode }\n : undefined;\n\n const agent: RuntimeAgentRender | undefined =\n agentRaw?.envelopeMode === \"verbose\" || agentRaw?.envelopeMode === \"compact\"\n ? { envelopeMode: agentRaw.envelopeMode }\n : undefined;\n\n if (!(human || agent)) {\n return undefined;\n }\n\n return {\n ...(human ? { human } : {}),\n ...(agent ? { agent } : {}),\n };\n}\n\nfunction parseRuntimeSkillsAgents(\n value: unknown\n): Record<string, RuntimeSkillsAgentConfig> | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const entries = Object.entries(value).flatMap(([agentName, agentValue]) => {\n if (!agentValue || typeof agentValue !== \"object\") {\n return [];\n }\n const agentObj = agentValue as {\n skillsDir?: unknown;\n globalSkillsDir?: unknown;\n };\n const skillsDir =\n typeof agentObj.skillsDir === \"string\" &&\n agentObj.skillsDir.trim().length > 0\n ? agentObj.skillsDir.trim()\n : undefined;\n const globalSkillsDir =\n typeof agentObj.globalSkillsDir === \"string\" &&\n agentObj.globalSkillsDir.trim().length > 0\n ? agentObj.globalSkillsDir.trim()\n : undefined;\n if (!(skillsDir || globalSkillsDir)) {\n return [];\n }\n return [\n [\n agentName,\n {\n ...(skillsDir ? { skillsDir } : {}),\n ...(globalSkillsDir ? { globalSkillsDir } : {}),\n },\n ] as [string, RuntimeSkillsAgentConfig],\n ];\n });\n\n if (entries.length === 0) {\n return undefined;\n }\n\n return Object.fromEntries(entries);\n}\n\nfunction parseRuntimeSkillsCustomTargets(\n value: unknown,\n legacyCustomTargetIdByDir?: Map<string, string>\n): RuntimeSkillsCustomTarget[] | undefined {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const targets = value.flatMap((item) => {\n if (!item || typeof item !== \"object\") {\n return [];\n }\n const obj = item as { id?: unknown; name?: unknown; dir?: unknown };\n const name =\n typeof obj.name === \"string\" && obj.name.trim().length > 0\n ? obj.name.trim()\n : \"\";\n const dir =\n typeof obj.dir === \"string\" && obj.dir.trim().length > 0\n ? normalizeCustomTargetDir(obj.dir)\n : \"\";\n if (!(name && dir)) {\n return [];\n }\n const explicitId = toTrimmedStringOrUndefined(obj.id);\n const fallbackLegacyId = legacyCustomTargetIdByDir?.get(dir);\n const id = resolveRuntimeSkillsCustomTargetId({\n dir,\n ...(explicitId ? { id: explicitId } : {}),\n ...(!explicitId && fallbackLegacyId ? { id: fallbackLegacyId } : {}),\n });\n return [{ id, name, dir }];\n });\n\n if (targets.length === 0) {\n return undefined;\n }\n\n return targets;\n}\n\nfunction parseRuntimeSkillsInstallRecords(\n value: unknown\n): RuntimeSkillsInstallRecord[] | undefined {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const records = value\n .map((item) => parseRuntimeSkillsInstallRecord(item))\n .filter((record): record is RuntimeSkillsInstallRecord => record !== null);\n\n if (records.length === 0) {\n return undefined;\n }\n\n return records;\n}\n\nfunction buildLegacyCustomTargetIdByDir(\n installs: RuntimeSkillsInstallRecord[] | undefined\n): Map<string, string> {\n const byDir = new Map<string, string>();\n for (const install of installs ?? []) {\n if (!install.targetId.startsWith(CUSTOM_TARGET_ID_PREFIX)) {\n continue;\n }\n const normalizedTargetDir = normalizeCustomTargetDir(install.targetDir);\n if (!normalizedTargetDir) {\n continue;\n }\n byDir.set(normalizedTargetDir, install.targetId);\n }\n return byDir;\n}\n\nfunction parseRuntimeSkillsInstallRecord(\n value: unknown\n): RuntimeSkillsInstallRecord | null {\n if (!value || typeof value !== \"object\") {\n return null;\n }\n\n const obj = value as {\n targetId?: unknown;\n targetDir?: unknown;\n mode?: unknown;\n status?: unknown;\n skillIds?: unknown;\n reason?: unknown;\n updatedAt?: unknown;\n };\n const targetId = toTrimmedStringOrEmpty(obj.targetId);\n const rawTargetDir = toTrimmedStringOrEmpty(obj.targetDir);\n const targetDir = rawTargetDir;\n const mode = parseSkillsInstallMode(obj.mode);\n const status = parseSkillsInstallStatus(obj.status);\n const skillIds = Array.isArray(obj.skillIds)\n ? obj.skillIds\n .map((skill) => (typeof skill === \"string\" ? skill.trim() : \"\"))\n .filter((skill): skill is string => skill.length > 0)\n : [];\n const updatedAt = toTrimmedStringOrEmpty(obj.updatedAt);\n const reason = toTrimmedStringOrUndefined(obj.reason);\n\n if (!(targetId && targetDir && mode && status && updatedAt)) {\n return null;\n }\n\n return {\n targetId,\n targetDir,\n mode,\n status,\n skillIds,\n ...(reason ? { reason } : {}),\n updatedAt,\n };\n}\n\nfunction parseRuntimeAgentControllerStates(\n value: unknown\n): RuntimeAgentControllerState[] | undefined {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const parsed = value\n .map((entry) => parseRuntimeAgentControllerState(entry))\n .filter((entry): entry is RuntimeAgentControllerState => entry !== null);\n\n if (parsed.length === 0) {\n return undefined;\n }\n\n const deduped = new Map<string, RuntimeAgentControllerState>();\n for (const entry of parsed) {\n deduped.set(entry.agentId, entry);\n }\n\n return [...deduped.values()].sort((a, b) =>\n a.agentId.localeCompare(b.agentId)\n );\n}\n\nfunction parseRuntimeAgentControllerState(\n value: unknown\n): RuntimeAgentControllerState | null {\n if (!value || typeof value !== \"object\") {\n return null;\n }\n\n const obj = value as {\n agentId?: unknown;\n displayName?: unknown;\n enabled?: unknown;\n launchContract?: unknown;\n transportMode?: unknown;\n streamingMode?: unknown;\n timeoutMs?: unknown;\n retry?: unknown;\n contextIdMappingSpec?: unknown;\n registeredAt?: unknown;\n updatedAt?: unknown;\n };\n const agentId = toTrimmedStringOrEmpty(obj.agentId);\n const displayName = toTrimmedStringOrEmpty(obj.displayName);\n const enabled = typeof obj.enabled === \"boolean\" ? obj.enabled : null;\n const launchContract = parseRuntimeAgentControllerLaunchContract(\n obj.launchContract\n );\n const defaults = createDefaultRuntimeAgentControllerSettings(agentId);\n const controllerSettings = parseRuntimeAgentControllerSettings(\n {\n transportMode: obj.transportMode,\n streamingMode: obj.streamingMode,\n timeoutMs: obj.timeoutMs,\n retry: obj.retry,\n contextIdMappingSpec: obj.contextIdMappingSpec,\n },\n defaults\n );\n const registeredAt = toTrimmedStringOrEmpty(obj.registeredAt);\n const updatedAt = toTrimmedStringOrEmpty(obj.updatedAt);\n\n if (\n !(\n agentId &&\n displayName &&\n enabled !== null &&\n controllerSettings &&\n registeredAt &&\n updatedAt\n )\n ) {\n return null;\n }\n\n return {\n agentId,\n displayName,\n enabled,\n ...(launchContract ? { launchContract } : {}),\n transportMode: controllerSettings.transportMode,\n streamingMode: controllerSettings.streamingMode,\n timeoutMs: controllerSettings.timeoutMs,\n retry: controllerSettings.retry,\n contextIdMappingSpec: controllerSettings.contextIdMappingSpec,\n registeredAt,\n updatedAt,\n };\n}\n\nfunction parseRuntimeAgentControllerLaunchContract(\n value: unknown\n): RuntimeAgentControllerLaunchContract | undefined {\n if (!(value && typeof value === \"object\")) {\n return undefined;\n }\n const parsed = runtimeAgentControllerLaunchContractSchema.safeParse(value);\n return parsed.success ? parsed.data : undefined;\n}\n\nfunction parseRuntimeAgentControllerSettings(\n raw: {\n transportMode: unknown;\n streamingMode: unknown;\n timeoutMs: unknown;\n retry: unknown;\n contextIdMappingSpec: unknown;\n },\n defaults: RuntimeAgentControllerSettings\n): RuntimeAgentControllerSettings | null {\n const normalizedStreamingMode = normalizeRuntimeStreamingMode(\n raw.streamingMode\n );\n const parsed = runtimeAgentControllerSettingsSchema.safeParse({\n transport_mode: raw.transportMode ?? defaults.transportMode,\n streaming_mode: normalizedStreamingMode ?? defaults.streamingMode,\n timeout_ms:\n raw.timeoutMs === undefined ? defaults.timeoutMs : raw.timeoutMs,\n retry: raw.retry ?? defaults.retry,\n context_id_mapping_spec:\n raw.contextIdMappingSpec ?? defaults.contextIdMappingSpec,\n });\n if (!parsed.success) {\n return null;\n }\n\n return {\n transportMode: parsed.data.transport_mode,\n streamingMode: parsed.data.streaming_mode,\n timeoutMs: normalizeRuntimeAgentTimeoutMs({\n defaults,\n timeoutMs: parsed.data.timeout_ms,\n }),\n retry: parsed.data.retry,\n contextIdMappingSpec:\n normalizeRuntimeAgentControllerConversationIdMappingSpec({\n contextIdMappingSpec: parsed.data.context_id_mapping_spec,\n defaults,\n }),\n };\n}\n\nfunction normalizeRuntimeAgentTimeoutMs(input: {\n defaults: RuntimeAgentControllerSettings;\n timeoutMs: number | null;\n}): number | null {\n // 120s was an old persisted default. Normal Agent execution must not inherit\n // it as a fixed wall-clock cutoff.\n if (input.timeoutMs === 120_000) {\n return input.defaults.timeoutMs;\n }\n return input.timeoutMs;\n}\n\nfunction normalizeRuntimeAgentControllerConversationIdMappingSpec(input: {\n contextIdMappingSpec: RuntimeAgentControllerConversationIdMappingSpec;\n defaults: RuntimeAgentControllerSettings;\n}): RuntimeAgentControllerConversationIdMappingSpec {\n if (\n input.contextIdMappingSpec.sourceField !==\n DEFAULT_RUNTIME_AGENT_CONTEXT_SOURCE_FIELD\n ) {\n return input.defaults.contextIdMappingSpec;\n }\n return input.contextIdMappingSpec;\n}\n\nfunction resolveRuntimeDaemonDispatchLimits(\n config?: RuntimeDaemonDispatchConfig\n): RuntimeDaemonDispatchLimits {\n return {\n globalConcurrency:\n parsePositiveInteger(config?.globalConcurrency) ??\n DEFAULT_RUNTIME_DAEMON_GLOBAL_CONCURRENCY,\n queueMax:\n parsePositiveInteger(config?.queueMax) ??\n DEFAULT_RUNTIME_DAEMON_QUEUE_MAX,\n };\n}\n\nfunction normalizeRuntimeStreamingMode(\n value: unknown\n): RuntimeAgentStreamingMode | null {\n if (value === \"final\" || value === \"stream\") {\n return value;\n }\n return null;\n}\n\nfunction parseSkillsInstallMode(\n value: unknown\n): RuntimeSkillsInstallRecord[\"mode\"] | null {\n if (value === \"symlink\" || value === \"copy\") {\n return value;\n }\n return null;\n}\n\nfunction parseSkillsInstallStatus(\n value: unknown\n): RuntimeSkillsInstallRecord[\"status\"] | null {\n if (value === \"installed\" || value === \"skipped\" || value === \"failed\") {\n return value;\n }\n return null;\n}\n\nfunction parsePositiveInteger(value: unknown): number | undefined {\n if (!Number.isInteger(value)) {\n return undefined;\n }\n const numericValue = Number(value);\n if (numericValue <= 0) {\n return undefined;\n }\n return numericValue;\n}\n\nfunction toTrimmedStringOrEmpty(value: unknown): string {\n if (typeof value !== \"string\") {\n return \"\";\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : \"\";\n}\n\nfunction toTrimmedStringOrUndefined(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction normalizeCustomTargetDir(value: string): string {\n const trimmed = value.trim();\n if (!trimmed) {\n return \"\";\n }\n if (WINDOWS_DRIVE_ONLY_RE.test(trimmed)) {\n return `${trimmed[0]?.toUpperCase() ?? \"\"}:`;\n }\n const windowsLike =\n WINDOWS_DRIVE_PREFIX_RE.test(trimmed) || WINDOWS_UNC_RE.test(trimmed);\n const normalizedPath = windowsLike\n ? (() => {\n const normalizedWindowsPath = win32.normalize(trimmed);\n if (WINDOWS_DRIVE_ANY_RE.test(normalizedWindowsPath)) {\n return `${normalizedWindowsPath[0]?.toUpperCase() ?? \"\"}${normalizedWindowsPath.slice(1)}`;\n }\n return normalizedWindowsPath;\n })()\n : normalize(trimmed);\n const isPosixRoot = normalizedPath === posix.parse(normalizedPath).root;\n const isWindowsRoot = normalizedPath === win32.parse(normalizedPath).root;\n if (isPosixRoot || isWindowsRoot) {\n return normalizedPath;\n }\n return normalizedPath.replace(TRAILING_PATH_SEPARATORS_RE, \"\");\n}\n\nfunction toStringMap(value: unknown): Record<string, string> | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n const entries = Object.entries(value).filter(\n (entry): entry is [string, string] => typeof entry[1] === \"string\"\n );\n if (entries.length === 0) {\n return undefined;\n }\n\n return Object.fromEntries(entries);\n}\n\nfunction isFileNotFoundError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: string }).code === \"ENOENT\"\n );\n}\n\nasync function readSplitRuntimeConfigDetailed(): Promise<{\n config: RuntimeConfigV1 | null;\n hasFiles: boolean;\n health: RuntimeConfigReadHealth;\n}> {\n const [\n preferencesFile,\n agentRuntimeFile,\n skillsStoreFile,\n customTargetsFile,\n installsFile,\n ] = await Promise.all([\n readOptionalJsonFile(devicePreferencesPath()),\n readOptionalJsonFile(deviceAgentRuntimePath()),\n readOptionalJsonFile(deviceSkillsStorePath()),\n readOptionalJsonFile(deviceSkillsCustomTargetsPath()),\n readOptionalJsonFile(deviceSkillsInstallsPath()),\n ]);\n\n const files = [\n preferencesFile,\n agentRuntimeFile,\n skillsStoreFile,\n customTargetsFile,\n installsFile,\n ];\n const hasFiles = files.some((file) => file.found);\n if (!hasFiles) {\n return {\n config: null,\n hasFiles: false,\n health: {\n parseFallback: false,\n },\n };\n }\n\n const invalidFile = files.find((file) => file.error);\n const preferences = parseDevicePreferencesConfig(preferencesFile.value);\n const agentRuntime = parseDeviceAgentRuntimeConfig(agentRuntimeFile.value);\n const skillsStore = parseDeviceSkillsStoreConfig(skillsStoreFile.value);\n const customTargets = parseDeviceSkillsCustomTargetsConfig(\n customTargetsFile.value\n );\n const installs = parseDeviceSkillsInstallsConfig(installsFile.value);\n\n const skills = mergeRuntimeSkillsConfig({\n store: skillsStore,\n customTargets,\n installs,\n });\n const config = buildRuntimeConfigFromParts({\n baseUrl: preferences.baseUrl,\n viewCustomization: preferences.viewCustomization,\n daemon: preferences.daemon,\n onboarding: preferences.onboarding,\n deviceRuntimeState: agentRuntime,\n skills,\n });\n\n return {\n config,\n hasFiles: true,\n health: invalidFile\n ? {\n parseFallback: true,\n reason: invalidFile.error ?? \"invalid_json\",\n }\n : {\n parseFallback: false,\n },\n };\n}\n\nasync function readLegacyRuntimeConfigDetailed(): Promise<{\n config: RuntimeConfigV1 | null;\n health: RuntimeConfigReadHealth;\n}> {\n let raw: string;\n try {\n raw = await readFile(legacyRuntimeConfigPath(), \"utf8\");\n } catch (error) {\n if (isFileNotFoundError(error)) {\n return {\n config: null,\n health: {\n parseFallback: false,\n },\n };\n }\n throw error;\n }\n\n if (raw.trim().length === 0) {\n return {\n config: null,\n health: {\n parseFallback: false,\n },\n };\n }\n\n let parsed: Partial<RuntimeConfigV1> & {\n agents?: unknown;\n daemon?: unknown;\n onboarding?: unknown;\n };\n try {\n parsed = JSON.parse(raw) as Partial<RuntimeConfigV1> & {\n agents?: unknown;\n daemon?: unknown;\n onboarding?: unknown;\n };\n } catch {\n return {\n config: null,\n health: {\n parseFallback: true,\n reason: \"invalid_json\",\n },\n };\n }\n\n if (parsed.v !== 1) {\n return {\n config: null,\n health: {\n parseFallback: true,\n reason: \"invalid_version\",\n },\n };\n }\n\n if (parsed.agents !== undefined) {\n throw new Error(\n \"runtime.config.legacy_agents_unsupported: key 'agents.registrations' is no longer supported. Use 'deviceRuntimeState.controllers' or run 'ats reset --yes'.\"\n );\n }\n\n return {\n config: buildRuntimeConfigFromParts({\n baseUrl: parseConfiguredBaseUrl(parsed.baseUrl),\n viewCustomization: parseRuntimeViewCustomization(\n parsed.viewCustomization\n ),\n skills: parseRuntimeSkillsConfig(parsed.skills),\n daemon: parseRuntimeDaemonConfig(parsed.daemon),\n deviceRuntimeState: parseRuntimeDeviceRuntimeState(\n parsed.deviceRuntimeState\n ),\n onboarding: parseRuntimeOnboardingConfig(parsed.onboarding),\n updatedAt:\n typeof parsed.updatedAt === \"string\"\n ? parsed.updatedAt\n : new Date().toISOString(),\n }),\n health: {\n parseFallback: false,\n },\n };\n}\n\nfunction buildRuntimeConfigFromParts(input: {\n baseUrl?: string;\n viewCustomization?: RuntimeViewCustomization;\n skills?: RuntimeSkillsConfig;\n daemon?: RuntimeDaemonConfig;\n deviceRuntimeState?: RuntimeDeviceRuntimeState;\n onboarding?: RuntimeOnboardingConfig;\n updatedAt?: string;\n}): RuntimeConfigV1 | null {\n const updatedAt = input.updatedAt ?? new Date().toISOString();\n if (\n !(\n input.baseUrl ||\n input.viewCustomization ||\n input.skills ||\n input.daemon ||\n input.deviceRuntimeState ||\n input.onboarding\n )\n ) {\n return null;\n }\n\n return {\n v: 1,\n ...(input.baseUrl ? { baseUrl: input.baseUrl } : {}),\n ...(input.viewCustomization\n ? { viewCustomization: input.viewCustomization }\n : {}),\n ...(input.skills ? { skills: input.skills } : {}),\n ...(input.daemon ? { daemon: input.daemon } : {}),\n ...(input.deviceRuntimeState\n ? { deviceRuntimeState: input.deviceRuntimeState }\n : {}),\n ...(input.onboarding ? { onboarding: input.onboarding } : {}),\n updatedAt,\n };\n}\n\nfunction parseDevicePreferencesConfig(\n value: unknown\n): Pick<\n RuntimeConfigV1,\n \"baseUrl\" | \"viewCustomization\" | \"daemon\" | \"onboarding\"\n> {\n if (!value || typeof value !== \"object\") {\n return {};\n }\n const parsed = value as Partial<DevicePreferencesV1>;\n if (parsed.v !== 1) {\n return {};\n }\n return {\n ...(parseConfiguredBaseUrl(parsed.baseUrl)\n ? { baseUrl: parseConfiguredBaseUrl(parsed.baseUrl) }\n : {}),\n ...(parseRuntimeViewCustomization(parsed.viewCustomization)\n ? {\n viewCustomization: parseRuntimeViewCustomization(\n parsed.viewCustomization\n ),\n }\n : {}),\n ...(parseRuntimeDaemonConfig(parsed.daemon)\n ? { daemon: parseRuntimeDaemonConfig(parsed.daemon) }\n : {}),\n ...(parseRuntimeOnboardingConfig(parsed.onboarding)\n ? { onboarding: parseRuntimeOnboardingConfig(parsed.onboarding) }\n : {}),\n };\n}\n\nfunction parseDeviceAgentRuntimeConfig(\n value: unknown\n): RuntimeDeviceRuntimeState | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const parsed = value as Partial<DeviceAgentRuntimeV1>;\n if (parsed.v !== 1) {\n return undefined;\n }\n return parseRuntimeDeviceRuntimeState(parsed.deviceRuntimeState);\n}\n\nfunction parseDeviceSkillsStoreConfig(\n value: unknown\n): Pick<RuntimeSkillsConfig, \"storeDir\" | \"agents\"> | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const parsed = value as Partial<DeviceSkillsStoreV1>;\n if (parsed.v !== 1) {\n return undefined;\n }\n const storeDir =\n typeof parsed.storeDir === \"string\" && parsed.storeDir.trim().length > 0\n ? parsed.storeDir.trim()\n : undefined;\n const agents = parseRuntimeSkillsAgents(parsed.agents);\n if (!(storeDir || agents)) {\n return undefined;\n }\n return {\n ...(storeDir ? { storeDir } : {}),\n ...(agents ? { agents } : {}),\n };\n}\n\nfunction parseDeviceSkillsCustomTargetsConfig(\n value: unknown\n): RuntimeSkillsCustomTarget[] | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const parsed = value as Partial<DeviceSkillsCustomTargetsV1>;\n if (parsed.v !== 1) {\n return undefined;\n }\n return parseRuntimeSkillsCustomTargets(parsed.customTargets, undefined);\n}\n\nfunction parseDeviceSkillsInstallsConfig(\n value: unknown\n): RuntimeSkillsInstallRecord[] | undefined {\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n const parsed = value as Partial<DeviceSkillsInstallsV1>;\n if (parsed.v !== 1) {\n return undefined;\n }\n return parseRuntimeSkillsInstallRecords(parsed.installs);\n}\n\nfunction mergeRuntimeSkillsConfig(input: {\n store?: Pick<RuntimeSkillsConfig, \"storeDir\" | \"agents\">;\n customTargets?: RuntimeSkillsCustomTarget[];\n installs?: RuntimeSkillsInstallRecord[];\n}): RuntimeSkillsConfig | undefined {\n if (!(input.store || input.customTargets || input.installs)) {\n return undefined;\n }\n return {\n ...(input.store?.storeDir ? { storeDir: input.store.storeDir } : {}),\n ...(input.store?.agents ? { agents: input.store.agents } : {}),\n ...(input.customTargets ? { customTargets: input.customTargets } : {}),\n ...(input.installs ? { installs: input.installs } : {}),\n };\n}\n\nfunction buildDevicePreferencesState(\n next: RuntimeConfigV1,\n updatedAt: string\n): DevicePreferencesV1 | null {\n if (\n !(next.baseUrl || next.viewCustomization || next.daemon || next.onboarding)\n ) {\n return null;\n }\n return {\n v: 1,\n ...(next.baseUrl ? { baseUrl: next.baseUrl } : {}),\n ...(next.viewCustomization\n ? { viewCustomization: next.viewCustomization }\n : {}),\n ...(next.daemon ? { daemon: next.daemon } : {}),\n ...(next.onboarding ? { onboarding: next.onboarding } : {}),\n updatedAt,\n };\n}\n\nfunction buildDeviceAgentRuntimeState(\n next: RuntimeConfigV1,\n updatedAt: string\n): DeviceAgentRuntimeV1 | null {\n if (!next.deviceRuntimeState) {\n return null;\n }\n return {\n v: 1,\n deviceRuntimeState: next.deviceRuntimeState,\n updatedAt,\n };\n}\n\nfunction buildDeviceSkillsStoreState(\n next: RuntimeConfigV1,\n updatedAt: string\n): DeviceSkillsStoreV1 | null {\n if (!(next.skills?.storeDir || next.skills?.agents)) {\n return null;\n }\n return {\n v: 1,\n ...(next.skills?.storeDir ? { storeDir: next.skills.storeDir } : {}),\n ...(next.skills?.agents ? { agents: next.skills.agents } : {}),\n updatedAt,\n };\n}\n\nfunction buildDeviceSkillsCustomTargetsState(\n next: RuntimeConfigV1,\n updatedAt: string\n): DeviceSkillsCustomTargetsV1 | null {\n if (!(next.skills?.customTargets && next.skills.customTargets.length > 0)) {\n return null;\n }\n return {\n v: 1,\n customTargets: next.skills.customTargets,\n updatedAt,\n };\n}\n\nfunction buildDeviceSkillsInstallsState(\n next: RuntimeConfigV1,\n updatedAt: string\n): DeviceSkillsInstallsV1 | null {\n if (!(next.skills?.installs && next.skills.installs.length > 0)) {\n return null;\n }\n return {\n v: 1,\n installs: next.skills.installs,\n updatedAt,\n };\n}\n\nasync function writeJsonFileOrRemove(\n path: string,\n payload: object | null\n): Promise<void> {\n if (!payload) {\n await rm(path, { force: true }).catch(() => undefined);\n return;\n }\n\n await mkdir(dirname(path), { recursive: true });\n const tempPath = `${path}.tmp-${process.pid}-${Date.now()}`;\n await writeFile(tempPath, `${JSON.stringify(payload, null, 2)}\\n`, \"utf8\");\n try {\n await rename(tempPath, path);\n } catch (error) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n throw error;\n }\n}\n\nasync function readOptionalJsonFile(path: string): Promise<{\n found: boolean;\n value: unknown;\n error?: RuntimeConfigFallbackReason;\n}> {\n const raw = await readFile(path, \"utf8\").catch((error) => {\n if (isFileNotFoundError(error)) {\n return null;\n }\n throw error;\n });\n if (raw === null) {\n return {\n found: false,\n value: null,\n };\n }\n if (raw.trim().length === 0) {\n return {\n found: true,\n value: null,\n };\n }\n try {\n return {\n found: true,\n value: JSON.parse(raw),\n };\n } catch {\n return {\n found: true,\n value: null,\n error: \"invalid_json\",\n };\n }\n}\n\nasync function pathExists(path: string): Promise<boolean> {\n return await readFile(path, \"utf8\")\n .then(() => true)\n .catch((error) => {\n if (isFileNotFoundError(error)) {\n return false;\n }\n throw error;\n });\n}\n","import { normalizeBaseUrl } from \"../protocol/urls\";\nimport { resolveAtsEnvPreset } from \"./paths\";\nimport { getConfiguredBaseUrl } from \"./runtime-config\";\n\nexport const DEFAULT_GATEWAY_BASE_URL = \"https://gateway.ats.sh\";\nexport const DEV_LOCAL_GATEWAY_BASE_URL = \"http://localhost:8080\";\nconst AUTH_HOST_LABEL = \"auth\";\nconst AUTH_HOST_PREFIX = \"auth-\";\nconst LOCAL_AUTH_PORT = \"8788\";\n\nexport async function resolveBaseUrl(\n cliValue?: string,\n input: { env?: NodeJS.ProcessEnv } = {}\n): Promise<string> {\n const env = input.env ?? process.env;\n const fromCli = String(cliValue ?? \"\").trim();\n if (fromCli) {\n return normalizeGatewayBaseUrl(fromCli);\n }\n\n // False-positive guard: ATS_BASE_URL fallback is intentionally removed.\n // We only support ATS_GATEWAY_URL to avoid ambiguous env precedence.\n const fromEnv = String(env.ATS_GATEWAY_URL ?? \"\").trim();\n if (fromEnv) {\n return normalizeGatewayBaseUrl(fromEnv);\n }\n\n const fromConfig = await getConfiguredBaseUrl();\n if (fromConfig) {\n return normalizeGatewayBaseUrl(fromConfig);\n }\n\n return normalizeGatewayBaseUrl(resolveDefaultGatewayBaseUrl({ env }));\n}\n\nexport async function resolveBaseUrlOrNull(\n cliValue?: string\n): Promise<string | null> {\n try {\n return await resolveBaseUrl(cliValue);\n } catch {\n return null;\n }\n}\n\nexport async function resolveExplicitGatewayUrlOrThrow(\n cliValue?: string\n): Promise<string | undefined> {\n const explicitGatewayUrl = normalizeOptionalString(cliValue);\n if (!explicitGatewayUrl) {\n return undefined;\n }\n\n try {\n return await Promise.resolve().then(() =>\n normalizeGatewayBaseUrl(explicitGatewayUrl)\n );\n } catch (error) {\n throw new Error(\n `Invalid explicit gateway URL \"${explicitGatewayUrl}\": ${toErrorMessage(error)}`\n );\n }\n}\n\nexport function normalizeGatewayBaseUrl(gatewayUrl: string): string {\n const normalizedGatewayUrl = normalizeBaseUrl(gatewayUrl);\n const parsedGatewayUrl = new URL(normalizedGatewayUrl);\n if (isAuthWorkerUrl(parsedGatewayUrl)) {\n throw new Error(\n \"gateway URL must point to the ATS gateway, not the ATS auth worker\"\n );\n }\n return normalizedGatewayUrl;\n}\n\nexport function normalizeGatewayBaseUrlOrNull(\n gatewayUrl?: string | null\n): string | null {\n const normalizedGatewayUrl = normalizeOptionalString(gatewayUrl);\n if (!normalizedGatewayUrl) {\n return null;\n }\n try {\n return normalizeGatewayBaseUrl(normalizedGatewayUrl);\n } catch {\n return null;\n }\n}\n\nfunction normalizeOptionalString(value: unknown): string | null {\n const normalized = String(value ?? \"\").trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function resolveDefaultGatewayBaseUrl(\n input: { env?: NodeJS.ProcessEnv } = {}\n): string {\n const preset = resolveAtsEnvPreset(input);\n if (preset === \"dev-local\" || preset === \"canary\") {\n return DEV_LOCAL_GATEWAY_BASE_URL;\n }\n return DEFAULT_GATEWAY_BASE_URL;\n}\n\nfunction isAuthWorkerUrl(url: URL): boolean {\n if (isLoopbackHostname(url.hostname)) {\n return resolveUrlPort(url) === LOCAL_AUTH_PORT;\n }\n\n const [firstLabel = \"\"] = url.hostname.toLowerCase().split(\".\");\n return (\n firstLabel === AUTH_HOST_LABEL || firstLabel.startsWith(AUTH_HOST_PREFIX)\n );\n}\n\nfunction isLoopbackHostname(hostname: string): boolean {\n const normalizedHostname = hostname.toLowerCase();\n return (\n normalizedHostname === \"localhost\" ||\n normalizedHostname === \"127.0.0.1\" ||\n normalizedHostname === \"::1\"\n );\n}\n\nfunction resolveUrlPort(url: URL): string {\n if (url.port) {\n return url.port;\n }\n if (url.protocol === \"http:\" || url.protocol === \"ws:\") {\n return \"80\";\n }\n if (url.protocol === \"https:\" || url.protocol === \"wss:\") {\n return \"443\";\n }\n return \"\";\n}\n\nfunction toErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import "./lock-DV2_jevB.js";
3
+ import "./lock-BJ3j8Z9n.js";
4
4
  import { i as writeDaemonRuntimeLease, n as daemonRuntimeLeasePath, r as readDaemonRuntimeLease, t as clearDaemonRuntimeLease } from "./ats.js";
5
5
 
6
6
  export { clearDaemonRuntimeLease };
@@ -4081,7 +4081,7 @@ var ZodFirstPartyTypeKind;
4081
4081
  (function(ZodFirstPartyTypeKind) {})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
4082
4082
 
4083
4083
  //#endregion
4084
- //#region ../../packages/schemas/dist/daemon-hub-BTzsvRrS.js
4084
+ //#region ../../packages/schemas/dist/daemon-hub-DoFqz5s-.js
4085
4085
  const agentControllerConversationExternalImportCapabilitySchema = _enum(["unsupported", "by_ref_id"]);
4086
4086
  const agentControllerConversationResumeCapabilitySchema = _enum(["unsupported", "by_ref_id"]);
4087
4087
  const agentControllerConversationDiscoverCapabilitySchema = literal("unsupported");
@@ -4847,7 +4847,7 @@ const buildAgentControllerConversationRef = (input) => ({
4847
4847
  });
4848
4848
  const LEGACY_RUNTIME_DISPATCH_POLICY = "mention_only";
4849
4849
  const runtimeDispatchPolicySchema = _enum([LEGACY_RUNTIME_DISPATCH_POLICY, "listen_all"]);
4850
- const runtimeTransportModeSchema = _enum(["local-cli"]);
4850
+ const runtimeTransportModeSchema = _enum(["local-cli", "codex-app-server"]);
4851
4851
  const runtimeStreamingModeSchema = _enum(["final", "stream"]);
4852
4852
  const runtimeAgentControllerConversationIdMappingSpecSchema = strictObject({
4853
4853
  sourceField: string().min(1),
@@ -5972,6 +5972,7 @@ const atsdTaskResultCommonSchema = atsdTaskResultCommonSchemaV1.extend({
5972
5972
  agentControllerConversation: agentControllerConversationRefSchema.optional(),
5973
5973
  effectiveRuntimeWorkingDirectory: profileWorkingDirectorySchema.optional(),
5974
5974
  runtimeWorkspaceFingerprint: string().min(1).optional(),
5975
+ transportMode: runtimeTransportModeSchema.optional(),
5975
5976
  promptTrace: atsdTaskResultPromptTraceSchema.optional(),
5976
5977
  claimLease: atsdTaskResultClaimLeaseSchema.optional(),
5977
5978
  bootstrapTemplateFacts: bootstrapTemplateFactsSchema.optional(),
@@ -6856,7 +6857,7 @@ const daemonStreamErrorFrameSchema = strictObject({
6856
6857
  });
6857
6858
 
6858
6859
  //#endregion
6859
- //#region ../../packages/schemas/dist/entry-brief-CsDM0DDw.js
6860
+ //#region ../../packages/schemas/dist/entry-brief-DR1TeiKb.js
6860
6861
  const AGENT_EXECUTION_READINESS_IMPACT_FRESH_TTL_MS = 1800 * 1e3;
6861
6862
  const AGENT_EXECUTION_READINESS_IMPACT_REASON_CODES = [
6862
6863
  "controller.launch.choice_required",
@@ -9176,6 +9177,7 @@ const gatewayErrorCodeSchema = _enum([
9176
9177
  "space.wake.client_message_id_required",
9177
9178
  "space.wake.handoff_seed_failed",
9178
9179
  "space.wake.target_invalid",
9180
+ "space.wake_progress.store_unavailable",
9179
9181
  "space.password_required",
9180
9182
  "space.password_invalid",
9181
9183
  "space.password_too_short",
@@ -11875,12 +11877,12 @@ const spaceMessageDetailsAgentContextSchema = strictObject({
11875
11877
  });
11876
11878
  const spaceMessageDetailsWakeTargetSchema = strictObject({
11877
11879
  targetProfileId: string().trim().min(1),
11878
- targetLabel: string().trim().min(1),
11879
- status: wakeTraceWaterfallSummaryStatusSchema,
11880
- terminalStep: wakeTraceWaterfallStepNameSchema.nullable(),
11881
- reasonCode: nullableReasonCodeSchema,
11882
- agentContext: spaceMessageDetailsAgentContextSchema,
11883
- steps: array(wakeTraceWaterfallStepSchema)
11880
+ targetLabel: nullableTrimmedStringSchema$1,
11881
+ status: wakeTraceWaterfallSummaryStatusSchema.optional(),
11882
+ terminalStep: wakeTraceWaterfallStepNameSchema.nullable().optional(),
11883
+ reasonCode: nullableReasonCodeSchema.optional(),
11884
+ agentContext: spaceMessageDetailsAgentContextSchema.optional(),
11885
+ steps: array(wakeTraceWaterfallStepSchema).optional()
11884
11886
  });
11885
11887
  const spaceMessageDetailsWakeContextSchema = strictObject({
11886
11888
  state: spaceMessageDetailsSectionStateSchema,
@@ -12230,6 +12232,17 @@ const getSpaceWakeProgressResponseSchema = strictObject({
12230
12232
  }),
12231
12233
  items: array(wakeProgressItemSchema)
12232
12234
  });
12235
+ const getActiveSpaceWakeProgressInputSchema = strictObject({
12236
+ spaceId: nonEmptyTrimmedStringFromUnknown,
12237
+ targetProfileId: optionalSelectorSchema
12238
+ });
12239
+ const getActiveSpaceWakeProgressResponseSchema = strictObject({
12240
+ query: strictObject({
12241
+ spaceId: string().trim().min(1),
12242
+ targetProfileId: string().trim().min(1).nullable()
12243
+ }),
12244
+ items: array(wakeProgressItemSchema)
12245
+ });
12233
12246
  const startBackgroundHelperInstallStatusSchema = _enum([
12234
12247
  "not_installed",
12235
12248
  "installed_current",
@@ -13736,5 +13749,5 @@ function toErrorMessage(error) {
13736
13749
  }
13737
13750
 
13738
13751
  //#endregion
13739
- export { gatewayErrorCodeSchema as $, collectCanonicalMentionTextFragments as $n, signalEnvelopeSchema as $t, createSpaceBodySchema as A, CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH as An, resolveSpaceMentionLabels as Ar, patchProfileSpaceHistoryStatusResponseSchema as At, daemonRouteObservationResponseSchema as B, SPACE_MEMBER_REMOVE_NOTICE_PURPOSE as Bn, prepareSessionResponseSchema as Bt, agentProfileBindingRouteParamsSchema as C, writeSetupTokenLocalRuntimeObservedMetadataResponseSchema as Cn, normalizeSpacePasswordText as Cr, localRuntimesQuerySchema as Ct, atsdControlPlaneResponseSchema as D, AGENT_REPLY_PREVIEW_PURPOSE as Dn, resolveBuiltinAgentControllerConversationKind as Dr, notifyAgentProfileRouteCatalogChangedBodySchema as Dt, atsdControlPlaneRequestSchema as E, AGENT_REPLY_PREVIEW_END_PURPOSE as En, profileWorkspaceModeSchema as Er, normalizeSpaceCursorPatch as Et, createSpaceThreadResponseSchema as F, LEGACY_RUNTIME_DISPATCH_POLICY as Fn, postNormalMessageResponseSchema as Ft, ensureAgentProfilePrimaryBindingResponseSchema as G, atsSpaceEgressActionSchema as Gn, querySpaceDeletionTombstonesResponseSchema as Gt, deleteSpaceResponseSchema as H, SPACE_PASSWORD_MIN_LENGTH as Hn, projectObservabilityWakeCorrelation as Ht, createStartSessionBodySchema as I, MAX_PROFILE_WORKING_DIRECTORY_LENGTH as In, postSpaceMembersBodySchema as It, forgetCurrentComputerResponseSchema as J, atsdTaskResultPayloadSchema as Jn, resolveStartHandoffBodySchema as Jt, entryBriefSchema as K, atsdTaskResultEnvelopeWriteSchema as Kn, removeSpaceMembersResponseSchema as Kt, currentDeviceTargetResponseSchema as L, MAX_SIGNAL_REPLY_TO_PREVIEW_LENGTH as Ln, postSpaceMembersResponseSchema as Lt, createSpaceDiagnosticReportResponseSchema as M, DISPATCH_ACTIVITY_DISPATCHING_PURPOSE as Mn, runtimeAgentControllerSettingsSchema as Mr, patchSpaceContractResponseSchema as Mt, createSpaceResponseSchema as N, DISPATCH_ACTIVITY_FAILED_PURPOSE as Nn, runtimeCoordinatorExecutionTokenEnvelopeSchema as Nr, patchStartSessionBodySchema as Nt, catchupResponseSchema as O, ATSD_TASK_RESULT_SCHEMA_VERSION as On, resolveMessageEnvelopeTargetField as Or, notifyAgentProfileRouteCatalogChangedResponseSchema as Ot, createSpaceThreadBodySchema as P, DISPATCH_ACTIVITY_RETRYING_PURPOSE as Pn, sanitizeSignalTextPreview as Pr, postNormalMessageBodySchema as Pt, formatLocalSetupActionLabel as Q, canonicalizeBuiltinAgentControllerRef as Qn, setLocalRuntimeDisplayNameBodySchema as Qt, currentLocalRuntimeReplyReadinessResponseSchema as R, MESSAGE_MENTION_TYPE_VALUES as Rn, postSpaceThreadSignalBodySchema as Rt, agentExecutionReadinessRouteParamsSchema as S, writeSetupTokenLocalRuntimeObservedMetadataBodySchema as Sn, normalizeOptionalWorkingDirectory as Sr, listSpaceThreadsResponseSchema as St, atsRequestContextSchema as T, AGENT_REPLYING_PURPOSE as Tn, parseOptionalClientMessageId as Tr, normalizeListSignalsReadQuerySemantics as Tt, dispatchBriefSchema as U, SPACE_UPDATES_MAX_LIMIT as Un, projectSpaceDispatchTraceFinalVisibleOutcome as Ut, daemonRuntimeLeaseSchema as V, SPACE_MENTION_REJECT_NOTICE_PURPOSE as Vn, prepareSessionStreamServerFrameSchema as Vt, ensureAgentProfilePrimaryBindingBodySchema as W, atsRuntimeProfileIdSchema as Wn, providerDispatchRuntimeContextSchema as Wt, formatLocalComponentsSummaryLabel as X, buildAgentControllerRoutingKey as Xn, serverErrorFrameSchema as Xt, formatLocalComponentsSummaryDescription as Y, buildAgentControllerConversationRef as Yn, resolveStartHandoffResponseSchema as Yt, formatLocalSetupActionDescription as Z, canonicalizeAgentControllerRef as Zn, setCurrentDeviceTargetBodySchema as Zt, ATSD_CONTROL_PLANE_SCHEMA_VERSION as _, submitRuntimeRegistrationResponseSchema as _n, formatCanonicalMentionLiteral as _r, installedLocalComponentsSnapshotSchema as _t, runWithHeldLock as a, spaceViewerMembershipResponseSchema as an, daemonHubDispatchPreviewEndRequestSchema as ar, getPrepareReadinessQuerySchema as at, LOCAL_COMPONENTS_SCHEMA_VERSION as b, writeCurrentDeviceObservedMetadataBodySchema as bn, normalizeKnownBuiltinAgentControllerId as br, listSpaceThreadEventsResponseSchema as bt, LEGACY_ATS_CLI_CONTEXT_ENV_KEY as c, startSessionProgressSchema as cn, daemonHubHeartbeatRequestSchema as cr, getSpaceDispatchLookupResponseSchema as ct, resolveCliContext as d, startSessionSpaceChoiceResponseSchema as dn, daemonHubRegisterSessionResponseSchema as dr, getSpaceStatusResponseSchema as dt, spaceCreatorSchema as en, conversationExecutionStateSchema as er, gatewayErrorEnvelopeSchema as et, resolveCliContextId as f, startSessionWithTokenResponseSchema as fn, daemonHubRouteCatalogChangedFramePayloadSchema as fr, getSpaceThreadResponseSchema as ft, resolveMappedPublicAgentFailureReason as g, submitRuntimeRegistrationBodySchema as gn, daemonStreamFrameSchema as gr, incomingServerMessageSchema as gt, resolveBuiltinAgentControllerBrand as h, submitRuntimeAgentControllerReportsResponseSchema as hn, daemonServiceLaneSchema as hr, getSpaceWakeTraceWaterfallResponseSchema as ht, releaseLock as i, spaceMetaSchema as in, daemonHubDispatchLifecycleRequestSchema as ir, getAgentProfilePrimaryBindingResponseSchema as it, createSpaceDiagnosticReportBodySchema as j, DAEMON_HUB_SCHEMA_VERSION as jn, runtimeAgentControllerLaunchContractSchema as jr, patchSpaceContractBodySchema as jt, continuitySchema as k, CONVERSATION_CONTINUITY_WARNING_PURPOSE as kn, resolveSingleSpaceMentionLabels as kr, observabilityWakeTraceSelectorSchema as kt, listCliContextStates as l, startSessionResponseSchema as ln, daemonHubHeartbeatResponseSchema as lr, getSpaceDispatchResultResponseSchema as lt, CODEX_UPGRADE_REQUIRED_REASON as m, submitRuntimeAgentControllerReportsBodySchema as mn, daemonServiceContractSchema as mr, getSpaceWakeProgressResponseSchema as mt, isAtsLockError as n, spaceIdentityDirectorySchema as nn, daemonHubDeliverDispatchRequestSchema as nr, getAgentExecutionReadinessBatchResponseSchema as nt, tryCleanupStaleLock as o, startDeviceProjectionSchema as on, daemonHubDispatchPreviewRequestSchema as or, getPrepareReadinessResponseSchema as ot, writeCliContextState as p, structuredGuidePayloadFromInputSchema as pn, daemonHubSubmitTaskResultRequestSchema as pr, getSpaceUpdatesResponseSchema as pt, forgetComputerResponseSchema as q, atsdTaskResultOpenClawGatewayVisibilityStatusSchema as qn, resolveSpaceDispatchTraceRootCause as qt, readLockMeta as r, spaceMembersSnapshotSchema as rn, daemonHubDeliveryExecutionIdentitySchema as rr, getAgentExecutionReadinessResponseSchema as rt, ATS_CLI_CONTEXT_ENV_KEY as s, startProfileReadinessSummarySchema as sn, daemonHubDispatchRuntimeEvidenceRequestSchema as sr, getSpaceContractResponseSchema as st, acquireLock as t, spaceDispatchTraceResponseSchema as tn, createDaemonRouteObservationSummary as tr, getAgentExecutionReadinessBatchBodySchema as tt, readCliContextState as u, startSessionSpaceChoiceBodySchema as un, daemonHubRegisterSessionRequestSchema as ur, getSpaceMessageDetailsResponseSchema as ut, DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME as v, upsertProfileSpaceHistoryResponseSchema as vn, getSpaceMessageAddressingRelationSupportForTargetKind as vr, leaveSpaceResponseSchema as vt, atsProfileIdSchema as w, AGENT_REPLYING_END_PURPOSE as wn, parseAgentControllerRef as wr, localRuntimesResponseSchema as wt, SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS as x, writeCurrentDeviceObservedMetadataResponseSchema as xn, normalizeMessageEnvelope as xr, listSpaceThreadSignalsResponseSchema as xt, DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_VERSION as y, upsertSpaceDeletionTombstoneResponseSchema as yn, normalizeBuiltinAgentControllerId as yr, listProfileSpaceHistoryResponseSchema as yt, daemonRouteCatalogCacheSchema as z, SPACE_MEMBER_JOIN_NOTICE_PURPOSE as zn, postSpaceThreadSignalResponseSchema as zt };
13740
- //# sourceMappingURL=lock-DV2_jevB.js.map
13752
+ export { gatewayErrorCodeSchema as $, canonicalizeBuiltinAgentControllerRef as $n, setLocalRuntimeDisplayNameBodySchema as $t, createSpaceBodySchema as A, CONVERSATION_CONTINUITY_WARNING_PURPOSE as An, resolveSingleSpaceMentionLabels as Ar, observabilityWakeTraceSelectorSchema as At, daemonRouteObservationResponseSchema as B, SPACE_MEMBER_JOIN_NOTICE_PURPOSE as Bn, postSpaceThreadSignalResponseSchema as Bt, agentProfileBindingRouteParamsSchema as C, writeSetupTokenLocalRuntimeObservedMetadataBodySchema as Cn, normalizeOptionalWorkingDirectory as Cr, listSpaceThreadsResponseSchema as Ct, atsdControlPlaneResponseSchema as D, AGENT_REPLY_PREVIEW_END_PURPOSE as Dn, profileWorkspaceModeSchema as Dr, normalizeSpaceCursorPatch as Dt, atsdControlPlaneRequestSchema as E, AGENT_REPLYING_PURPOSE as En, parseOptionalClientMessageId as Er, normalizeListSignalsReadQuerySemantics as Et, createSpaceThreadResponseSchema as F, DISPATCH_ACTIVITY_RETRYING_PURPOSE as Fn, sanitizeSignalTextPreview as Fr, postNormalMessageBodySchema as Ft, ensureAgentProfilePrimaryBindingResponseSchema as G, atsRuntimeProfileIdSchema as Gn, providerDispatchRuntimeContextSchema as Gt, deleteSpaceResponseSchema as H, SPACE_MENTION_REJECT_NOTICE_PURPOSE as Hn, prepareSessionStreamServerFrameSchema as Ht, createStartSessionBodySchema as I, LEGACY_RUNTIME_DISPATCH_POLICY as In, postNormalMessageResponseSchema as It, forgetCurrentComputerResponseSchema as J, atsdTaskResultOpenClawGatewayVisibilityStatusSchema as Jn, resolveSpaceDispatchTraceRootCause as Jt, entryBriefSchema as K, atsSpaceEgressActionSchema as Kn, querySpaceDeletionTombstonesResponseSchema as Kt, currentDeviceTargetResponseSchema as L, MAX_PROFILE_WORKING_DIRECTORY_LENGTH as Ln, postSpaceMembersBodySchema as Lt, createSpaceDiagnosticReportResponseSchema as M, DAEMON_HUB_SCHEMA_VERSION as Mn, runtimeAgentControllerLaunchContractSchema as Mr, patchSpaceContractBodySchema as Mt, createSpaceResponseSchema as N, DISPATCH_ACTIVITY_DISPATCHING_PURPOSE as Nn, runtimeAgentControllerSettingsSchema as Nr, patchSpaceContractResponseSchema as Nt, catchupResponseSchema as O, AGENT_REPLY_PREVIEW_PURPOSE as On, resolveBuiltinAgentControllerConversationKind as Or, notifyAgentProfileRouteCatalogChangedBodySchema as Ot, createSpaceThreadBodySchema as P, DISPATCH_ACTIVITY_FAILED_PURPOSE as Pn, runtimeCoordinatorExecutionTokenEnvelopeSchema as Pr, patchStartSessionBodySchema as Pt, formatLocalSetupActionLabel as Q, canonicalizeAgentControllerRef as Qn, setCurrentDeviceTargetBodySchema as Qt, currentLocalRuntimeReplyReadinessResponseSchema as R, MAX_SIGNAL_REPLY_TO_PREVIEW_LENGTH as Rn, postSpaceMembersResponseSchema as Rt, agentExecutionReadinessRouteParamsSchema as S, writeCurrentDeviceObservedMetadataResponseSchema as Sn, normalizeMessageEnvelope as Sr, listSpaceThreadSignalsResponseSchema as St, atsRequestContextSchema as T, AGENT_REPLYING_END_PURPOSE as Tn, parseAgentControllerRef as Tr, localRuntimesResponseSchema as Tt, dispatchBriefSchema as U, SPACE_PASSWORD_MIN_LENGTH as Un, projectObservabilityWakeCorrelation as Ut, daemonRuntimeLeaseSchema as V, SPACE_MEMBER_REMOVE_NOTICE_PURPOSE as Vn, prepareSessionResponseSchema as Vt, ensureAgentProfilePrimaryBindingBodySchema as W, SPACE_UPDATES_MAX_LIMIT as Wn, projectSpaceDispatchTraceFinalVisibleOutcome as Wt, formatLocalComponentsSummaryLabel as X, buildAgentControllerConversationRef as Xn, resolveStartHandoffResponseSchema as Xt, formatLocalComponentsSummaryDescription as Y, atsdTaskResultPayloadSchema as Yn, resolveStartHandoffBodySchema as Yt, formatLocalSetupActionDescription as Z, buildAgentControllerRoutingKey as Zn, serverErrorFrameSchema as Zt, ATSD_CONTROL_PLANE_SCHEMA_VERSION as _, submitRuntimeRegistrationBodySchema as _n, daemonStreamFrameSchema as _r, incomingServerMessageSchema as _t, runWithHeldLock as a, spaceMetaSchema as an, daemonHubDispatchLifecycleRequestSchema as ar, getAgentProfilePrimaryBindingResponseSchema as at, LOCAL_COMPONENTS_SCHEMA_VERSION as b, upsertSpaceDeletionTombstoneResponseSchema as bn, normalizeBuiltinAgentControllerId as br, listProfileSpaceHistoryResponseSchema as bt, LEGACY_ATS_CLI_CONTEXT_ENV_KEY as c, startProfileReadinessSummarySchema as cn, daemonHubDispatchRuntimeEvidenceRequestSchema as cr, getSpaceContractResponseSchema as ct, resolveCliContext as d, startSessionSpaceChoiceBodySchema as dn, daemonHubRegisterSessionRequestSchema as dr, getSpaceMessageDetailsResponseSchema as dt, signalEnvelopeSchema as en, collectCanonicalMentionTextFragments as er, gatewayErrorEnvelopeSchema as et, resolveCliContextId as f, startSessionSpaceChoiceResponseSchema as fn, daemonHubRegisterSessionResponseSchema as fr, getSpaceStatusResponseSchema as ft, resolveMappedPublicAgentFailureReason as g, submitRuntimeAgentControllerReportsResponseSchema as gn, daemonServiceLaneSchema as gr, getSpaceWakeTraceWaterfallResponseSchema as gt, resolveBuiltinAgentControllerBrand as h, submitRuntimeAgentControllerReportsBodySchema as hn, daemonServiceContractSchema as hr, getSpaceWakeProgressResponseSchema as ht, releaseLock as i, spaceMembersSnapshotSchema as in, daemonHubDeliveryExecutionIdentitySchema as ir, getAgentExecutionReadinessResponseSchema as it, createSpaceDiagnosticReportBodySchema as j, CURRENT_DAEMON_EXECUTION_CONTRACT_EPOCH as jn, resolveSpaceMentionLabels as jr, patchProfileSpaceHistoryStatusResponseSchema as jt, continuitySchema as k, ATSD_TASK_RESULT_SCHEMA_VERSION as kn, resolveMessageEnvelopeTargetField as kr, notifyAgentProfileRouteCatalogChangedResponseSchema as kt, listCliContextStates as l, startSessionProgressSchema as ln, daemonHubHeartbeatRequestSchema as lr, getSpaceDispatchLookupResponseSchema as lt, CODEX_UPGRADE_REQUIRED_REASON as m, structuredGuidePayloadFromInputSchema as mn, daemonHubSubmitTaskResultRequestSchema as mr, getSpaceUpdatesResponseSchema as mt, isAtsLockError as n, spaceDispatchTraceResponseSchema as nn, createDaemonRouteObservationSummary as nr, getAgentExecutionReadinessBatchBodySchema as nt, tryCleanupStaleLock as o, spaceViewerMembershipResponseSchema as on, daemonHubDispatchPreviewEndRequestSchema as or, getPrepareReadinessQuerySchema as ot, writeCliContextState as p, startSessionWithTokenResponseSchema as pn, daemonHubRouteCatalogChangedFramePayloadSchema as pr, getSpaceThreadResponseSchema as pt, forgetComputerResponseSchema as q, atsdTaskResultEnvelopeWriteSchema as qn, removeSpaceMembersResponseSchema as qt, readLockMeta as r, spaceIdentityDirectorySchema as rn, daemonHubDeliverDispatchRequestSchema as rr, getAgentExecutionReadinessBatchResponseSchema as rt, ATS_CLI_CONTEXT_ENV_KEY as s, startDeviceProjectionSchema as sn, daemonHubDispatchPreviewRequestSchema as sr, getPrepareReadinessResponseSchema as st, acquireLock as t, spaceCreatorSchema as tn, conversationExecutionStateSchema as tr, getActiveSpaceWakeProgressResponseSchema as tt, readCliContextState as u, startSessionResponseSchema as un, daemonHubHeartbeatResponseSchema as ur, getSpaceDispatchResultResponseSchema as ut, DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_NAME as v, submitRuntimeRegistrationResponseSchema as vn, formatCanonicalMentionLiteral as vr, installedLocalComponentsSnapshotSchema as vt, atsProfileIdSchema as w, writeSetupTokenLocalRuntimeObservedMetadataResponseSchema as wn, normalizeSpacePasswordText as wr, localRuntimesQuerySchema as wt, SPACE_DISPATCH_TRACE_PROMPT_PREVIEW_MAX_CHARS as x, writeCurrentDeviceObservedMetadataBodySchema as xn, normalizeKnownBuiltinAgentControllerId as xr, listSpaceThreadEventsResponseSchema as xt, DAEMON_ROUTE_CATALOG_CACHE_SCHEMA_VERSION as y, upsertProfileSpaceHistoryResponseSchema as yn, getSpaceMessageAddressingRelationSupportForTargetKind as yr, leaveSpaceResponseSchema as yt, daemonRouteCatalogCacheSchema as z, MESSAGE_MENTION_TYPE_VALUES as zn, postSpaceThreadSignalBodySchema as zt };
13753
+ //# sourceMappingURL=lock-BJ3j8Z9n.js.map