@synap-core/eve 0.1.0
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/README.md +251 -0
- package/dist/add-R6RGUYER.js +22 -0
- package/dist/add-R6RGUYER.js.map +1 -0
- package/dist/auth-7FFZNARZ-4OIRGZ7R.js +31 -0
- package/dist/auth-7FFZNARZ-4OIRGZ7R.js.map +1 -0
- package/dist/chunk-22RIHU4J.js +975 -0
- package/dist/chunk-22RIHU4J.js.map +1 -0
- package/dist/chunk-23XQDB7K.js +1773 -0
- package/dist/chunk-23XQDB7K.js.map +1 -0
- package/dist/chunk-5TBV2VHZ.js +6067 -0
- package/dist/chunk-5TBV2VHZ.js.map +1 -0
- package/dist/chunk-D7P3IYYR.js +44 -0
- package/dist/chunk-D7P3IYYR.js.map +1 -0
- package/dist/chunk-EHPC7CKE.js +757 -0
- package/dist/chunk-EHPC7CKE.js.map +1 -0
- package/dist/chunk-FAE5UZFE.js +17 -0
- package/dist/chunk-FAE5UZFE.js.map +1 -0
- package/dist/chunk-HRF6TNXX.js +53 -0
- package/dist/chunk-HRF6TNXX.js.map +1 -0
- package/dist/chunk-HVJEW7TU.js +495 -0
- package/dist/chunk-HVJEW7TU.js.map +1 -0
- package/dist/chunk-JO5H5G6U.js +1529 -0
- package/dist/chunk-JO5H5G6U.js.map +1 -0
- package/dist/chunk-MUEQNBE6.js +1140 -0
- package/dist/chunk-MUEQNBE6.js.map +1 -0
- package/dist/chunk-O5WTCVMZ.js +3391 -0
- package/dist/chunk-O5WTCVMZ.js.map +1 -0
- package/dist/chunk-ROKIQIEX.js +65 -0
- package/dist/chunk-ROKIQIEX.js.map +1 -0
- package/dist/chunk-T7GCAJK5.js +4895 -0
- package/dist/chunk-T7GCAJK5.js.map +1 -0
- package/dist/chunk-UOQWJ3S4.js +138 -0
- package/dist/chunk-UOQWJ3S4.js.map +1 -0
- package/dist/chunk-YQWV5W4U.js +3479 -0
- package/dist/chunk-YQWV5W4U.js.map +1 -0
- package/dist/chunk-ZPDNZRVW.js +272 -0
- package/dist/chunk-ZPDNZRVW.js.map +1 -0
- package/dist/config-store-KTOWIKAS-XVZHNPKW.js +11 -0
- package/dist/config-store-KTOWIKAS-XVZHNPKW.js.map +1 -0
- package/dist/dist-2VRFSXMO.js +40 -0
- package/dist/dist-2VRFSXMO.js.map +1 -0
- package/dist/dist-C2QB4IKT.js +340 -0
- package/dist/dist-C2QB4IKT.js.map +1 -0
- package/dist/dist-DEIUVZ57.js +299 -0
- package/dist/dist-DEIUVZ57.js.map +1 -0
- package/dist/dist-DSKHGECB.js +36 -0
- package/dist/dist-DSKHGECB.js.map +1 -0
- package/dist/dist-GN2DN7CI.js +95 -0
- package/dist/dist-GN2DN7CI.js.map +1 -0
- package/dist/dist-TZL4XW2R.js +58 -0
- package/dist/dist-TZL4XW2R.js.map +1 -0
- package/dist/dist-ZP2APOYV.js +53 -0
- package/dist/dist-ZP2APOYV.js.map +1 -0
- package/dist/index.js +15083 -0
- package/dist/index.js.map +1 -0
- package/dist/operational-5RT6AZJI-ZEMPD32Q.js +12 -0
- package/dist/operational-5RT6AZJI-ZEMPD32Q.js.map +1 -0
- package/dist/reconcile-A4I3Z7VX-GQMEN4GC.js +12 -0
- package/dist/reconcile-A4I3Z7VX-GQMEN4GC.js.map +1 -0
- package/dist/rsshub-GOJBTNOD-UNNVKBFL.js +18 -0
- package/dist/rsshub-GOJBTNOD-UNNVKBFL.js.map +1 -0
- package/dist/synap-image-install-X36REYQ5-UGO4MAOP.js +17 -0
- package/dist/synap-image-install-X36REYQ5-UGO4MAOP.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../@eve/dna/dist/chunk-QPV3XTR7.js","../../@eve/dna/dist/index.js","../../../node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/dist/js-yaml.mjs"],"sourcesContent":["// src/allowed-origins.ts\nvar SYNAP_LIVE_RE = /^https:\\/\\/[a-z0-9-]+\\.synap\\.live$/;\nvar LOCALHOST_RE = /^https?:\\/\\/localhost(:\\d+)?$/;\nfunction createAllowedEmbedOriginChecker(extraAllowedOrigins) {\n const extraOrigins = normalizeAllowedOrigins(extraAllowedOrigins);\n return (origin) => isDefaultAllowedOrigin(origin) || extraOrigins.has(origin);\n}\nfunction isAllowedEmbedOrigin(origin, extraAllowedOrigins) {\n if (isDefaultAllowedOrigin(origin)) return true;\n return normalizeAllowedOrigins(extraAllowedOrigins).has(origin);\n}\nfunction isDefaultAllowedOrigin(origin) {\n return LOCALHOST_RE.test(origin) || SYNAP_LIVE_RE.test(origin);\n}\nfunction normalizeAllowedOrigins(extraAllowedOrigins) {\n const origins = /* @__PURE__ */ new Set();\n if (!extraAllowedOrigins) return origins;\n for (const value of extraAllowedOrigins) {\n const origin = normalizeAllowedOrigin(value);\n if (origin) origins.add(origin);\n }\n return origins;\n}\nfunction normalizeAllowedOrigin(value) {\n try {\n const origin = value instanceof URL ? value.origin : new URL(value).origin;\n return origin === \"null\" ? null : origin;\n } catch {\n return null;\n }\n}\n\nexport {\n createAllowedEmbedOriginChecker,\n isAllowedEmbedOrigin\n};\n","import {\n createAllowedEmbedOriginChecker,\n isAllowedEmbedOrigin\n} from \"./chunk-QPV3XTR7.js\";\nimport {\n configStore\n} from \"./chunk-OUHZ2KHV.js\";\nimport {\n AI_CONSUMERS,\n AI_CONSUMERS_NEEDING_RECREATE,\n COMPONENTS,\n DEFAULT_HUB_PATH,\n EVE_DASHBOARD_SERVICE,\n POD_DEPLOY_DIR_CANDIDATES,\n SYNAP_BACKEND_CONTAINERS,\n SYNAP_BACKEND_INTERNAL_URL,\n SYNAP_HOST_LOOPBACK_PORT,\n addonComponentIds,\n allComponentIds,\n buildOpenwebuiManagedConfig,\n buildOpenwebuiModelSources,\n connectTraefikToEveNetwork,\n copySynapSkillIntoClaudeProject,\n defaultSkillsDir,\n ensureEveSkillsLayout,\n findPodDeployDir,\n formatExtrasSummary,\n generateSynapPlugin,\n getAdminJwt,\n getAdminJwtPostHealth,\n getAdminJwtPostHealthDetailed,\n getAdminReadyStatus,\n getConfig,\n getConfigDetailed,\n getStatus,\n hasAnyProvider,\n isLoopbackUrl,\n isSynapLoopbackReachable,\n listModelSources,\n pickPrimaryProvider,\n probeAdminAuth,\n provisionOwuiUserInSynap,\n publicComponentUrl,\n pushSynapFunctionsToOpenwebui,\n pushSynapSkillsToOpenwebuiPrompts,\n reconcile,\n reconcileOpenwebuiManagedConfig,\n reconcileOpenwebuiManagedConfigViaAdmin,\n reconcileOpenwebuiManagedConfigViaAdminDetailed,\n registerModelSource,\n registerOpenwebuiAdminApi,\n registerSynapAsOpenwebuiToolServer,\n resetSynapLoopbackProbeCache,\n resolveComponent,\n resolveHubBaseUrl,\n resolveOpenwebuiAdminUrl,\n resolveSynapUrl,\n resolveSynapUrlOnHost,\n restartBackendContainer,\n restartHermesIfRunning,\n saveConfig,\n saveConfigDetailed,\n selectedIds,\n serviceComponents,\n syncOpenwebuiExtras,\n syncOwuiUsersToSynap,\n syncSynapKnowledgeToOpenwebui,\n upsertAllModelSources,\n validateBaseDomain,\n waitForHealth,\n waitForHealthDetailed,\n wireAllInstalledComponents,\n wireComponentAi,\n writeBuilderProjectEnv,\n writeClaudeCodeSettings,\n writeHermesConfigYaml,\n writeHermesEnvFile,\n writeSandboxEnvFile\n} from \"./chunk-7ERVFFFQ.js\";\nimport {\n appendOperationalEvent,\n getEveEventsPath,\n getEveStateHome,\n getEveStatePath,\n readOperationalEvents\n} from \"./chunk-VX2GIXIH.js\";\nimport {\n DEFAULT_CODE_ENGINE,\n clearCpUserSession,\n ensureSecretValue,\n isCpSessionStale,\n readAgentKey,\n readAgentKeyOrLegacy,\n readAgentKeyOrLegacySync,\n readCodeEngine,\n readCpUserSession,\n readEveSecrets,\n secretsPath,\n writeAgentKey,\n writeCodeEngine,\n writeCpUserSession,\n writeEveSecrets\n} from \"./chunk-MFVBCIZU.js\";\nimport \"./chunk-3RG5ZIWI.js\";\n\n// src/types.ts\nvar DEFAULT_HERMES_CONFIG = {\n enabled: true,\n pollIntervalMs: 3e4,\n maxConcurrentTasks: 1\n};\nvar DEFAULT_ENTITY_STATE = {\n version: \"0.1.0\",\n initializedAt: (/* @__PURE__ */ new Date()).toISOString(),\n aiModel: \"none\",\n organs: {\n brain: { state: \"missing\" },\n arms: { state: \"missing\" },\n builder: { state: \"missing\" },\n eyes: { state: \"missing\" },\n legs: { state: \"missing\" }\n },\n metadata: {}\n};\n\n// src/config.ts\nimport { promises as fs } from \"fs\";\nimport { join } from \"path\";\nimport { homedir } from \"os\";\nimport yaml from \"js-yaml\";\nimport { z } from \"zod\";\nvar OrganSchema = z.enum([\"brain\", \"arms\", \"builder\", \"eyes\", \"legs\"]);\nvar OrganConfigSchema = z.object({\n enabled: z.boolean(),\n autoStart: z.boolean(),\n port: z.number().optional(),\n environment: z.record(z.string()).optional()\n});\nvar ConfigSchema = z.object({\n name: z.string().min(1),\n version: z.string().default(\"0.1.0\"),\n aiModel: z.enum([\"ollama\", \"none\"]).default(\"none\"),\n organs: z.record(OrganConfigSchema),\n settings: z.object({\n logLevel: z.enum([\"debug\", \"info\", \"warn\", \"error\"]).default(\"info\"),\n autoUpdate: z.boolean().default(true),\n defaultTimeout: z.number().default(3e4)\n }),\n createdAt: z.string().datetime().or(z.date()),\n updatedAt: z.string().datetime().or(z.date())\n});\nvar defaultConfig = {\n version: \"0.1.0\",\n aiModel: \"none\",\n organs: {\n brain: { enabled: false, autoStart: false },\n arms: { enabled: false, autoStart: false },\n builder: { enabled: false, autoStart: false },\n eyes: { enabled: false, autoStart: false },\n legs: { enabled: false, autoStart: false }\n },\n settings: {\n logLevel: \"info\",\n autoUpdate: true,\n defaultTimeout: 3e4\n }\n};\nfunction ensureAllOrgans(organs) {\n const allOrgans = [\"brain\", \"arms\", \"builder\", \"eyes\", \"legs\"];\n const result = {};\n for (const organ of allOrgans) {\n result[organ] = {\n enabled: organs[organ]?.enabled ?? false,\n autoStart: organs[organ]?.autoStart ?? false,\n port: organs[organ]?.port,\n environment: organs[organ]?.environment\n };\n }\n return result;\n}\nvar ConfigManager = class {\n config = null;\n /**\n * Get the path to the configuration directory\n */\n getConfigDir() {\n return join(homedir(), \".config\", \"eve\");\n }\n /**\n * Get the full path to the configuration file\n */\n getConfigPath() {\n return join(this.getConfigDir(), \"config.yaml\");\n }\n /**\n * Ensure the configuration directory exists\n */\n async ensureConfigDir() {\n const configDir = this.getConfigDir();\n try {\n await fs.mkdir(configDir, { recursive: true });\n } catch (error) {\n throw new Error(`Failed to create config directory: ${error.message}`);\n }\n }\n /**\n * Load configuration from disk\n * Creates default config if none exists\n */\n async loadConfig() {\n try {\n await this.ensureConfigDir();\n const configPath = this.getConfigPath();\n try {\n const content = await fs.readFile(configPath, \"utf-8\");\n const parsed = yaml.load(content);\n const validated = ConfigSchema.parse(parsed);\n this.config = {\n ...validated,\n organs: ensureAllOrgans(validated.organs),\n createdAt: new Date(validated.createdAt),\n updatedAt: new Date(validated.updatedAt)\n };\n return this.config;\n } catch (readError) {\n if (readError.code === \"ENOENT\") {\n return this.createDefaultConfig(\"default-entity\");\n }\n throw readError;\n }\n } catch (error) {\n throw new Error(`Failed to load config: ${error.message}`);\n }\n }\n /**\n * Create a new default configuration\n */\n async createDefaultConfig(name) {\n const now = /* @__PURE__ */ new Date();\n this.config = {\n ...defaultConfig,\n name,\n createdAt: now,\n updatedAt: now\n };\n await this.saveConfig(this.config);\n return this.config;\n }\n /**\n * Save configuration to disk\n */\n async saveConfig(config) {\n try {\n await this.ensureConfigDir();\n const configFile = {\n ...config,\n organs: ensureAllOrgans(config.organs),\n createdAt: config.createdAt.toISOString(),\n updatedAt: config.updatedAt.toISOString()\n };\n const content = yaml.dump(configFile, {\n indent: 2,\n lineWidth: -1,\n noRefs: true,\n sortKeys: false\n });\n await fs.writeFile(this.getConfigPath(), content, \"utf-8\");\n this.config = config;\n } catch (error) {\n throw new Error(`Failed to save config: ${error.message}`);\n }\n }\n /**\n * Update configuration with partial updates\n */\n async updateConfig(updates) {\n const current = await this.loadConfig();\n const updated = {\n ...current,\n ...updates,\n organs: updates.organs ? ensureAllOrgans({ ...current.organs, ...updates.organs }) : current.organs,\n updatedAt: /* @__PURE__ */ new Date()\n };\n await this.saveConfig(updated);\n return updated;\n }\n /**\n * Get current config without reloading\n */\n getCachedConfig() {\n return this.config;\n }\n};\nvar configManager = new ConfigManager();\n\n// src/credentials.ts\nimport { promises as fs2 } from \"fs\";\nimport { join as join2 } from \"path\";\nimport { homedir as homedir2 } from \"os\";\nvar CREDENTIALS_FILE_MODE = 384;\nvar CredentialsManager = class {\n credentials = null;\n credentialsPath = null;\n /**\n * Get the path to the credentials file\n */\n getCredentialsPath() {\n if (this.credentialsPath) {\n return this.credentialsPath;\n }\n return join2(homedir2(), \".config\", \"eve\", \"credentials\");\n }\n /**\n * Set a custom credentials path (useful for testing)\n */\n setCredentialsPath(path) {\n this.credentialsPath = path;\n }\n /**\n * Ensure the credentials directory exists with proper permissions\n */\n async ensureCredentialsDir() {\n const credsDir = join2(homedir2(), \".config\", \"eve\");\n try {\n await fs2.mkdir(credsDir, { recursive: true, mode: 448 });\n } catch (error) {\n if (error.code !== \"EEXIST\") {\n throw new Error(`Failed to create credentials directory: ${error.message}`);\n }\n }\n }\n /**\n * Load credentials from disk\n * Returns empty object if no credentials exist\n */\n async loadCredentials() {\n try {\n await this.ensureCredentialsDir();\n const credsPath = this.getCredentialsPath();\n try {\n const content = await fs2.readFile(credsPath, \"utf-8\");\n const parsed = JSON.parse(content);\n if (typeof parsed !== \"object\" || parsed === null) {\n throw new Error(\"Invalid credentials format\");\n }\n this.credentials = parsed;\n return this.credentials;\n } catch (readError) {\n if (readError.code === \"ENOENT\") {\n this.credentials = {};\n return this.credentials;\n }\n if (readError instanceof SyntaxError) {\n throw new Error(\"Credentials file is corrupted (invalid JSON)\");\n }\n throw readError;\n }\n } catch (error) {\n throw new Error(`Failed to load credentials: ${error.message}`);\n }\n }\n /**\n * Save credentials to disk with restricted permissions\n */\n async saveCredentials(creds) {\n try {\n await this.ensureCredentialsDir();\n const credsPath = this.getCredentialsPath();\n const content = JSON.stringify(creds, null, 2);\n await fs2.writeFile(credsPath, content, {\n encoding: \"utf-8\",\n mode: CREDENTIALS_FILE_MODE\n });\n try {\n await fs2.chmod(credsPath, CREDENTIALS_FILE_MODE);\n } catch {\n }\n this.credentials = creds;\n } catch (error) {\n throw new Error(`Failed to save credentials: ${error.message}`);\n }\n }\n /**\n * Get a single credential by key\n */\n async getCredential(key) {\n const creds = await this.loadCredentials();\n return creds[key];\n }\n /**\n * Set a single credential\n */\n async setCredential(key, value) {\n const creds = await this.loadCredentials();\n creds[key] = value;\n await this.saveCredentials(creds);\n }\n /**\n * Delete a single credential\n */\n async deleteCredential(key) {\n const creds = await this.loadCredentials();\n delete creds[key];\n await this.saveCredentials(creds);\n }\n /**\n * Check if a credential exists\n */\n async hasCredential(key) {\n const creds = await this.loadCredentials();\n return key in creds;\n }\n /**\n * List all credential keys (values are hidden)\n */\n async listCredentialKeys() {\n const creds = await this.loadCredentials();\n return Object.keys(creds);\n }\n /**\n * Clear all credentials (use with caution!)\n */\n async clearAll() {\n await this.saveCredentials({});\n }\n /**\n * Get cached credentials without reloading\n */\n getCachedCredentials() {\n return this.credentials;\n }\n};\nvar credentialsManager = new CredentialsManager();\n\n// src/entity-state.ts\nimport { readFile, writeFile, mkdir, access } from \"fs/promises\";\nimport { existsSync } from \"fs\";\nimport { dirname, join as join3 } from \"path\";\nimport { hostname } from \"os\";\nimport { z as z2 } from \"zod\";\nvar OrganStatusSchema = z2.object({\n state: z2.enum([\"missing\", \"installing\", \"starting\", \"ready\", \"error\", \"stopped\"]),\n installedAt: z2.string().optional(),\n version: z2.string().optional(),\n lastChecked: z2.string().optional(),\n errorMessage: z2.string().optional()\n});\nvar ComponentEntrySchema = z2.object({\n organ: z2.enum([\"brain\", \"arms\", \"builder\", \"eyes\", \"legs\"]).optional(),\n state: z2.enum([\"missing\", \"installing\", \"starting\", \"ready\", \"error\", \"stopped\"]),\n version: z2.string().optional(),\n installedAt: z2.string().optional(),\n lastChecked: z2.string().optional(),\n errorMessage: z2.string().optional(),\n managedBy: z2.enum([\"eve\", \"synap\", \"manual\"]).optional(),\n config: z2.record(z2.string(), z2.unknown()).optional()\n});\nvar SetupProfileV2Schema = z2.object({\n version: z2.literal(2),\n components: z2.array(z2.string()),\n installedAt: z2.string(),\n migratedFromV1: z2.enum([\"inference_only\", \"data_pod\", \"full\"]).optional()\n});\nvar StateSchemaV1 = z2.object({\n version: z2.string(),\n initializedAt: z2.string(),\n aiModel: z2.enum([\"ollama\", \"none\"]),\n organs: z2.record(\n z2.enum([\"brain\", \"arms\", \"builder\", \"eyes\", \"legs\"]),\n OrganStatusSchema\n ),\n metadata: z2.object({\n lastBootTime: z2.string().optional(),\n hostname: z2.string().optional(),\n platform: z2.string().optional(),\n arch: z2.string().optional()\n })\n});\nvar StateSchema = z2.object({\n version: z2.string(),\n initializedAt: z2.string(),\n aiModel: z2.enum([\"ollama\", \"none\"]),\n organs: z2.record(z2.enum([\"brain\", \"arms\", \"builder\", \"eyes\", \"legs\"]), OrganStatusSchema),\n installed: z2.record(z2.string(), ComponentEntrySchema).optional(),\n setupProfile: SetupProfileV2Schema.optional(),\n metadata: z2.object({\n lastBootTime: z2.string().optional(),\n hostname: z2.string().optional(),\n platform: z2.string().optional(),\n arch: z2.string().optional()\n })\n});\nvar ORGANS = [\"brain\", \"arms\", \"builder\", \"eyes\", \"legs\"];\nvar STATE_FILE_NAME = \"state.json\";\nasync function migrateStateDirectory() {\n const oldStateDir = getEveStateHome();\n const newStateDir = getEveStateHome();\n if (!existsSync(oldStateDir)) return false;\n const oldStatePath = join3(oldStateDir, STATE_FILE_NAME);\n if (!existsSync(oldStatePath)) return false;\n if (existsSync(newStateDir)) {\n const newStatePath = join3(newStateDir, STATE_FILE_NAME);\n if (existsSync(newStatePath)) {\n return false;\n }\n }\n await mkdir(newStateDir, { recursive: true });\n const { cp } = await import(\"fs/promises\");\n await cp(oldStatePath, join3(newStateDir, STATE_FILE_NAME), { recursive: true });\n const { rm } = await import(\"fs/promises\");\n await rm(oldStateDir, { recursive: true, force: true });\n return true;\n}\nvar ORGAN_TO_COMPONENT = {\n brain: \"synap\",\n arms: \"openclaw\",\n builder: \"openclaude\",\n eyes: \"rsshub\",\n legs: \"traefik\"\n};\nfunction migrateStateToV2(parsed) {\n const installed = {};\n for (const [organName, organStatus] of Object.entries(parsed.organs)) {\n const organ = organName;\n const componentId = ORGAN_TO_COMPONENT[organ];\n installed[componentId] = {\n organ,\n state: organStatus.state,\n version: organStatus.version,\n installedAt: organStatus.installedAt,\n lastChecked: organStatus.lastChecked,\n errorMessage: organStatus.errorMessage,\n managedBy: \"manual\",\n config: {}\n };\n }\n return {\n version: \"0.2.0\",\n initializedAt: parsed.initializedAt,\n aiModel: parsed.aiModel,\n installed,\n setupProfile: void 0,\n // unknown from legacy\n organs: {\n ...DEFAULT_ENTITY_STATE.organs,\n ...parsed.organs\n },\n metadata: parsed.metadata\n };\n}\nfunction ensureV2(raw) {\n if (\"installed\" in raw && raw.installed) {\n return raw;\n }\n return migrateStateToV2(raw);\n}\nvar EntityStateManager = class {\n state = null;\n statePath = null;\n getStatePath() {\n if (this.statePath) {\n return this.statePath;\n }\n return getEveStatePath();\n }\n async getState() {\n if (this.state) {\n return this.state;\n }\n const statePath = this.getStatePath();\n try {\n await access(statePath);\n const content = await readFile(statePath, \"utf-8\");\n const raw = JSON.parse(content);\n let validated;\n try {\n validated = StateSchema.parse(raw);\n } catch {\n const v1 = StateSchemaV1.parse(raw);\n validated = ensureV2(v1);\n }\n const migrated = validated.installed ? validated : ensureV2(validated);\n const mergedState = {\n ...migrated,\n version: \"0.2.0\",\n // always report v2\n organs: {\n ...DEFAULT_ENTITY_STATE.organs,\n ...validated.organs\n }\n };\n if (!validated.installed) {\n await this.saveState(mergedState);\n }\n this.state = mergedState;\n return mergedState;\n } catch (error) {\n if (error.code === \"ENOENT\") {\n const defaultState = this.createDefaultState();\n await this.saveState(defaultState);\n this.state = defaultState;\n return defaultState;\n }\n if (error instanceof z2.ZodError) {\n const dnaError2 = new Error(`Invalid state format: ${error.message}`);\n dnaError2.code = \"INVALID_STATE\";\n dnaError2.path = statePath;\n throw dnaError2;\n }\n if (error instanceof SyntaxError) {\n const dnaError2 = new Error(`Invalid state JSON: ${error.message}`);\n dnaError2.code = \"INVALID_STATE\";\n dnaError2.path = statePath;\n throw dnaError2;\n }\n const dnaError = new Error(`Failed to load state: ${error.message}`);\n dnaError.code = \"STATE_LOAD_ERROR\";\n dnaError.path = statePath;\n throw dnaError;\n }\n }\n async saveState(state) {\n const statePath = this.getStatePath();\n const stateDir = dirname(statePath);\n try {\n await mkdir(stateDir, { recursive: true });\n StateSchema.parse(state);\n const json = JSON.stringify(state, null, 2);\n await writeFile(statePath, json, \"utf-8\");\n this.state = state;\n await appendOperationalEvent({\n type: \"state.changed\",\n target: \"entity-state\",\n ok: true,\n summary: \"Entity state saved\"\n }, stateDir).catch(() => {\n });\n } catch (error) {\n if (error instanceof z2.ZodError) {\n const dnaError2 = new Error(`Invalid state: ${error.message}`);\n dnaError2.code = \"INVALID_STATE\";\n dnaError2.path = statePath;\n throw dnaError2;\n }\n const dnaError = new Error(`Failed to save state: ${error.message}`);\n dnaError.code = \"STATE_SAVE_ERROR\";\n dnaError.path = statePath;\n throw dnaError;\n }\n }\n async updateOrgan(organ, organState, options) {\n const state = await this.getState();\n const status = {\n state: organState,\n lastChecked: (/* @__PURE__ */ new Date()).toISOString()\n };\n if (organState === \"ready\" || organState === \"error\") {\n status.installedAt = (/* @__PURE__ */ new Date()).toISOString();\n }\n if (options?.version) {\n status.version = options.version;\n }\n if (options?.errorMessage && organState === \"error\") {\n status.errorMessage = options.errorMessage;\n }\n state.organs[organ] = status;\n const componentId = ORGAN_TO_COMPONENT[organ];\n const installedEntry = {\n organ,\n state: organState,\n version: options?.version,\n installedAt: status.installedAt,\n lastChecked: status.lastChecked,\n errorMessage: status.errorMessage,\n managedBy: options?.managedBy ?? state.installed?.[componentId]?.managedBy ?? \"manual\",\n config: options?.config ?? state.installed?.[componentId]?.config\n };\n if (!state.installed) {\n state.installed = {};\n }\n state.installed[componentId] = installedEntry;\n await this.saveState(state);\n }\n // --- Component-centric v2 methods ---\n /** Get a component's entry from the v2 `installed` map */\n async getComponentEntry(componentId) {\n const state = await this.getState();\n return state.installed?.[componentId] ?? null;\n }\n /** Update a component entry directly */\n async updateComponentEntry(componentId, entry) {\n const state = await this.getState();\n if (!state.installed) {\n state.installed = {};\n }\n const existing = state.installed[componentId] ?? { state: \"missing\" };\n state.installed[componentId] = {\n ...existing,\n ...entry,\n lastChecked: (/* @__PURE__ */ new Date()).toISOString()\n };\n const organ = entry.organ ?? existing.organ;\n if (organ && state.installed[componentId].state !== \"missing\") {\n state.organs[organ] = {\n state: state.installed[componentId].state,\n version: state.installed[componentId].version,\n installedAt: state.installed[componentId].installedAt,\n lastChecked: state.installed[componentId].lastChecked,\n errorMessage: state.installed[componentId].errorMessage\n };\n }\n await this.saveState(state);\n }\n /** Register / deregister components in the setup profile */\n async updateSetupProfile(updates) {\n const state = await this.getState();\n state.setupProfile = {\n version: 2,\n components: updates.components ?? state.setupProfile?.components ?? [],\n installedAt: updates.components && !state.setupProfile?.installedAt ? (/* @__PURE__ */ new Date()).toISOString() : state.setupProfile?.installedAt ?? (/* @__PURE__ */ new Date()).toISOString(),\n migratedFromV1: updates.migratedFromV1 ?? state.setupProfile?.migratedFromV1\n };\n await this.saveState(state);\n }\n /** Get the list of installed components from the setup profile */\n async getInstalledComponents() {\n const state = await this.getState();\n const all = state.setupProfile?.components ?? [];\n return all.filter((id) => state.installed?.[id]?.state !== \"missing\");\n }\n /** Check if a specific component is registered */\n async isComponentInstalled(componentId) {\n const components = await this.getInstalledComponents();\n return components.includes(componentId);\n }\n async setAIModel(model) {\n const state = await this.getState();\n state.aiModel = model;\n await this.saveState(state);\n }\n async getOrganState(organ) {\n const state = await this.getState();\n return state.organs[organ] || { state: \"missing\" };\n }\n async isOrganReady(organ) {\n const status = await this.getOrganState(organ);\n return status.state === \"ready\";\n }\n async getReadyOrgans() {\n const state = await this.getState();\n return ORGANS.filter((organ) => state.organs[organ]?.state === \"ready\");\n }\n async getMissingOrgans() {\n const state = await this.getState();\n return ORGANS.filter((organ) => state.organs[organ]?.state === \"missing\");\n }\n async getErrorOrgans() {\n const state = await this.getState();\n return ORGANS.filter((organ) => state.organs[organ]?.state === \"error\");\n }\n calculateCompleteness(state) {\n const readyCount = ORGANS.filter((organ) => state.organs[organ]?.state === \"ready\").length;\n return Math.round(readyCount / ORGANS.length * 100);\n }\n async getCompleteness() {\n const state = await this.getState();\n return this.calculateCompleteness(state);\n }\n async getNextSteps() {\n const state = await this.getState();\n const steps = [];\n if (state.aiModel === \"none\") {\n steps.push(\"Configure AI model (run: eve ai setup)\");\n }\n for (const organ of ORGANS) {\n const organStatus = state.organs[organ];\n switch (organStatus.state) {\n case \"missing\":\n steps.push(`Install ${organ} (run: eve install ${organ})`);\n break;\n case \"error\":\n steps.push(`Fix ${organ} error: ${organStatus.errorMessage || \"Unknown error\"}`);\n break;\n case \"stopped\":\n steps.push(`Start ${organ} (run: eve start ${organ})`);\n break;\n case \"installing\":\n steps.push(`Wait for ${organ} installation to complete`);\n break;\n }\n }\n if (steps.length === 0) {\n steps.push(\"Entity is fully operational! \\u{1F389}\");\n }\n return steps;\n }\n async updateMetadata(updates) {\n const state = await this.getState();\n state.metadata = { ...state.metadata, ...updates };\n await this.saveState(state);\n }\n async recordBoot() {\n await this.updateMetadata({\n lastBootTime: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n async resetState() {\n const defaultState = this.createDefaultState();\n await this.saveState(defaultState);\n }\n createDefaultState() {\n return {\n ...DEFAULT_ENTITY_STATE,\n metadata: {\n platform: process.platform,\n arch: process.arch,\n hostname: hostname()\n }\n };\n }\n};\nvar entityStateManager = new EntityStateManager();\n\n// src/setup-profile.ts\nimport { readFile as readFile2, writeFile as writeFile2, mkdir as mkdir2, access as access2 } from \"fs/promises\";\nimport { dirname as dirname2, join as join4 } from \"path\";\nimport { homedir as homedir3 } from \"os\";\nimport { z as z3 } from \"zod\";\nvar SetupProfileKindSchema = z3.enum([\"inference_only\", \"data_pod\", \"full\"]);\nvar TunnelProviderSchema = z3.enum([\"pangolin\", \"cloudflare\"]);\nvar BuilderEngineSchema = z3.enum([\"opencode\", \"openclaude\", \"claudecode\"]);\nvar AiModeSchema = z3.enum([\"local\", \"provider\", \"hybrid\"]);\nvar AiProviderSchema = z3.enum([\"ollama\", \"openrouter\", \"anthropic\", \"openai\"]);\nvar SetupProfileSchema = z3.object({\n version: z3.literal(\"1\"),\n profile: SetupProfileKindSchema,\n updatedAt: z3.string(),\n domainHint: z3.string().optional(),\n hearthName: z3.string().optional(),\n source: z3.enum([\"wizard\", \"usb_manifest\", \"cli\"]).optional(),\n /** If set, `eve setup` runs `eve legs setup` with this tunnel after Data Pod / full stack steps. */\n tunnelProvider: TunnelProviderSchema.optional(),\n tunnelDomain: z3.string().optional(),\n /** Default builder codegen surface for `eve builder init` */\n builderEngine: BuilderEngineSchema.optional(),\n /** AI foundation mode selected during setup */\n aiMode: AiModeSchema.optional(),\n aiDefaultProvider: AiProviderSchema.optional(),\n aiFallbackProvider: AiProviderSchema.optional(),\n /** Canonical network intent selected during setup. */\n network: z3.object({\n exposureMode: z3.enum([\"local\", \"public\"]),\n synapHost: z3.string(),\n legs: z3.object({\n tunnelProvider: TunnelProviderSchema.optional(),\n hostStrategy: z3.enum([\"same_as_synap\", \"custom\"]).optional(),\n host: z3.string().optional()\n }).optional()\n }).optional(),\n /** Non-secret Synap install preferences used to resume setup after interruption. */\n synapInstall: z3.object({\n mode: z3.enum([\"auto\", \"from_image\", \"from_source\"]).optional(),\n tlsEmail: z3.string().optional(),\n withOpenclaw: z3.boolean().optional(),\n withRsshub: z3.boolean().optional(),\n adminBootstrapMode: z3.enum([\"token\", \"preseed\"]).optional(),\n adminEmail: z3.string().optional()\n }).optional()\n});\nvar USB_MANIFEST_PATHS = [\n \"/opt/eve/profile.json\",\n join4(homedir3(), \".eve\", \"usb-profile.json\")\n];\nfunction eveDir(cwd) {\n return join4(cwd, \".eve\");\n}\nfunction getSetupProfilePath(cwd = process.cwd()) {\n return join4(eveDir(cwd), \"setup-profile.json\");\n}\nasync function readSetupProfile(cwd = process.cwd()) {\n const path = getSetupProfilePath(cwd);\n try {\n await access2(path);\n const raw = JSON.parse(await readFile2(path, \"utf-8\"));\n return SetupProfileSchema.parse(raw);\n } catch {\n return null;\n }\n}\nvar UsbSetupManifestSchema = z3.object({\n version: z3.literal(\"1\"),\n target_profile: SetupProfileKindSchema,\n hearth_name: z3.string().optional(),\n domain_hint: z3.string().optional(),\n tunnel_provider: TunnelProviderSchema.optional(),\n tunnel_domain: z3.string().optional()\n});\nasync function readUsbSetupManifest() {\n const envPath = process.env.EVE_SETUP_MANIFEST?.trim();\n const paths = envPath ? [envPath, ...USB_MANIFEST_PATHS] : [...USB_MANIFEST_PATHS];\n for (const p of paths) {\n if (!p) continue;\n try {\n await access2(p);\n const raw = JSON.parse(await readFile2(p, \"utf-8\"));\n return UsbSetupManifestSchema.parse(raw);\n } catch {\n continue;\n }\n }\n return null;\n}\nasync function writeSetupProfile(profile, cwd = process.cwd()) {\n const dir = eveDir(cwd);\n await mkdir2(dir, { recursive: true });\n const full = {\n version: \"1\",\n updatedAt: (/* @__PURE__ */ new Date()).toISOString(),\n ...profile\n };\n const parsed = SetupProfileSchema.parse(full);\n await writeFile2(getSetupProfilePath(cwd), JSON.stringify(parsed, null, 2), \"utf-8\");\n}\nasync function writeUsbSetupManifest(manifest, outputPath) {\n const parsed = UsbSetupManifestSchema.parse(manifest);\n await mkdir2(dirname2(outputPath), { recursive: true });\n await writeFile2(outputPath, JSON.stringify(parsed, null, 2), \"utf-8\");\n}\n\n// src/hw-probe.ts\nimport { cpus, totalmem, platform, arch, hostname as hostname2 } from \"os\";\nimport { execFile } from \"child_process\";\nimport { promisify } from \"util\";\nvar execFileAsync = promisify(execFile);\nasync function probeHardware(runNvidiaSmi) {\n const cpuList = cpus() ?? [];\n const facts = {\n hostname: hostname2(),\n platform: platform(),\n arch: arch(),\n cpuCores: cpuList.length || 0,\n cpuModel: cpuList[0]?.model?.trim() ?? \"unknown\",\n totalMemoryBytes: totalmem(),\n totalMemoryGb: (totalmem() / 1024 ** 3).toFixed(1)\n };\n if (runNvidiaSmi) {\n try {\n const { stdout } = await execFileAsync(\"nvidia-smi\", [\"--query-gpu=name,memory.total\", \"--format=csv,noheader\"], {\n timeout: 1e4\n });\n facts.nvidiaSmi = stdout.trim() || void 0;\n } catch {\n facts.nvidiaSmi = \"(nvidia-smi not available or no GPU)\";\n }\n }\n return facts;\n}\nfunction formatHardwareReport(f) {\n const lines = [\n `Hostname: ${f.hostname}`,\n `OS: ${f.platform} (${f.arch})`,\n `CPU: ${f.cpuModel} \\u2014 ${f.cpuCores} logical cores`,\n `RAM: ${f.totalMemoryGb} GiB`\n ];\n if (f.nvidiaSmi !== void 0) {\n lines.push(`GPU: ${f.nvidiaSmi}`);\n }\n return lines.join(\"\\n\");\n}\n\n// src/discover.ts\nimport { existsSync as existsSync2, readFileSync } from \"fs\";\nimport { execSync } from \"child_process\";\nvar ENV_PATHS = [\n \"/opt/synap-backend/.env\",\n \"/opt/synap-backend/deploy/.env\",\n \"/opt/synap-backend/.env.local\"\n];\nvar TRAEFIK_DYNAMIC = \"/opt/traefik/dynamic/eve-routes.yml\";\nvar PLACEHOLDER_DOMAINS = /* @__PURE__ */ new Set([\n \"localhost\",\n \"127.0.0.1\",\n \"::1\",\n \"example.com\",\n \"yourdomain.com\",\n \"mydomain.com\",\n \"your-domain.com\"\n]);\nfunction isPlaceholderDomain(d) {\n if (!d) return true;\n const lower = d.toLowerCase();\n return PLACEHOLDER_DOMAINS.has(lower) || lower.startsWith(\"127.\") || lower.startsWith(\"192.168.\") || lower.startsWith(\"10.\") || !lower.includes(\".\");\n}\nfunction isPlaceholderUrl(url) {\n try {\n return isPlaceholderDomain(new URL(url).hostname);\n } catch {\n return true;\n }\n}\nfunction parseEnvFile(content) {\n const result = {};\n for (const rawLine of content.split(/\\r?\\n/)) {\n const line = rawLine.trim();\n if (!line || line.startsWith(\"#\")) continue;\n const withoutExport = line.startsWith(\"export \") ? line.slice(7) : line;\n const eqIdx = withoutExport.indexOf(\"=\");\n if (eqIdx < 1) continue;\n const key = withoutExport.slice(0, eqIdx).trim();\n let val = withoutExport.slice(eqIdx + 1).trim();\n if (val.startsWith('\"') && val.endsWith('\"') || val.startsWith(\"'\") && val.endsWith(\"'\")) {\n val = val.slice(1, -1);\n }\n if (key) result[key] = val;\n }\n return result;\n}\nfunction extractHostFromTraefikRule(rule) {\n const m = rule.match(/Host\\(`([^`]+)`\\)/);\n return m?.[1];\n}\nfunction probeEnvFiles() {\n for (const path of ENV_PATHS) {\n if (!existsSync2(path)) continue;\n try {\n const env = parseEnvFile(readFileSync(path, \"utf-8\"));\n const domain = env[\"DOMAIN\"]?.trim();\n const publicUrl = env[\"PUBLIC_URL\"]?.trim();\n const token = env[\"PROVISIONING_TOKEN\"]?.trim();\n const synapUrl = publicUrl && !isPlaceholderUrl(publicUrl) ? publicUrl.replace(/\\/$/, \"\") : void 0;\n const realDomain = domain && !isPlaceholderDomain(domain) ? domain : void 0;\n if (synapUrl || realDomain || token) {\n return {\n domain: realDomain || (synapUrl ? new URL(synapUrl).hostname : void 0),\n synapUrl,\n provisioningToken: token || void 0,\n source: path\n };\n }\n } catch {\n }\n }\n return {};\n}\nfunction probeTraefikConfig() {\n if (!existsSync2(TRAEFIK_DYNAMIC)) return {};\n try {\n const raw = readFileSync(TRAEFIK_DYNAMIC, \"utf-8\");\n const matches = raw.match(/Host\\(`[^`]+`\\)/g) ?? [];\n for (const rule of matches) {\n const host = extractHostFromTraefikRule(rule);\n if (!host || host.startsWith(\"*.\") || !host.includes(\".\")) continue;\n const domain = host.startsWith(\"pod.\") ? host.slice(4) : host;\n return { domain, source: TRAEFIK_DYNAMIC };\n }\n } catch {\n }\n return {};\n}\nfunction probeDockerInspect() {\n const candidates = [\n \"synap-backend-backend-1\",\n \"synap-backend_backend_1\",\n \"backend\"\n ];\n for (const name of candidates) {\n try {\n const out = execSync(\n `docker inspect ${name} --format '{{json .Config.Env}}'`,\n { stdio: [\"ignore\", \"pipe\", \"ignore\"], timeout: 3e3 }\n ).toString().trim();\n if (!out) continue;\n const envArr = JSON.parse(out);\n const envMap = {};\n for (const entry of envArr) {\n const idx = entry.indexOf(\"=\");\n if (idx > 0) envMap[entry.slice(0, idx)] = entry.slice(idx + 1);\n }\n const domain = envMap[\"DOMAIN\"]?.trim();\n const publicUrl = envMap[\"PUBLIC_URL\"]?.trim();\n const token = envMap[\"PROVISIONING_TOKEN\"]?.trim();\n const synapUrl = publicUrl && !isPlaceholderUrl(publicUrl) ? publicUrl.replace(/\\/$/, \"\") : void 0;\n const realDomain = domain && !isPlaceholderDomain(domain) ? domain : void 0;\n if (synapUrl || realDomain || token) {\n return {\n domain: realDomain || (synapUrl ? new URL(synapUrl).hostname : void 0),\n synapUrl,\n provisioningToken: token || void 0,\n source: `docker inspect ${name}`\n };\n }\n } catch {\n }\n }\n return {};\n}\nfunction discoverPodConfig() {\n const sources = [];\n let synapUrl;\n let domain;\n let provisioningToken;\n const fromEnv = probeEnvFiles();\n if (fromEnv.synapUrl || fromEnv.domain || fromEnv.provisioningToken) {\n synapUrl = fromEnv.synapUrl;\n domain = fromEnv.domain;\n provisioningToken = fromEnv.provisioningToken;\n if (fromEnv.source) sources.push(fromEnv.source);\n }\n if (!domain) {\n const fromTraefik = probeTraefikConfig();\n if (fromTraefik.domain) {\n domain = fromTraefik.domain;\n if (fromTraefik.source) sources.push(fromTraefik.source);\n }\n }\n if (!domain || !provisioningToken) {\n const fromDocker = probeDockerInspect();\n if (!synapUrl && fromDocker.synapUrl) {\n synapUrl = fromDocker.synapUrl;\n }\n if (!domain && fromDocker.domain) {\n domain = fromDocker.domain;\n }\n if (fromDocker.synapUrl || fromDocker.domain) {\n if (fromDocker.source && !sources.includes(fromDocker.source)) sources.push(fromDocker.source);\n }\n if (!provisioningToken && fromDocker.provisioningToken) {\n provisioningToken = fromDocker.provisioningToken;\n if (fromDocker.source && !sources.includes(fromDocker.source)) sources.push(fromDocker.source);\n }\n }\n return { synapUrl, domain, provisioningToken, sources };\n}\nfunction buildBackfillPatch(discovered, secrets) {\n if (!discovered.synapUrl && !discovered.domain) return {};\n const storedApiUrl = secrets?.synap?.apiUrl?.trim();\n const domainHostVariants = discovered.domain ? [\n `https://${discovered.domain}`,\n `http://${discovered.domain}`,\n `https://pod.${discovered.domain}`,\n `http://pod.${discovered.domain}`\n ] : [];\n const shouldClearStoredUrl = storedApiUrl && !discovered.synapUrl && domainHostVariants.some((v) => storedApiUrl.startsWith(v));\n return {\n ...discovered.domain ? { domain: { primary: discovered.domain } } : {},\n ...discovered.synapUrl ? { synap: { apiUrl: discovered.synapUrl } } : shouldClearStoredUrl ? { synap: { apiUrl: \"\" } } : {}\n };\n}\nfunction patchHasValues(patch) {\n return Object.values(patch).some((value) => {\n if (!value || typeof value !== \"object\") return value !== void 0;\n return Object.keys(value).length > 0;\n });\n}\nasync function discoverAndBackfillPodConfig(cwd = process.cwd(), options = {}) {\n const discovered = discoverPodConfig();\n const shouldBackfill = options.backfill ?? true;\n if (!shouldBackfill || !discovered.synapUrl && !discovered.domain) {\n return { ...discovered, backfilled: false };\n }\n const secrets = await readEveSecrets(cwd);\n const patch = buildBackfillPatch(discovered, secrets);\n if (!patchHasValues(patch)) {\n return { ...discovered, backfilled: false };\n }\n await writeEveSecrets(patch, cwd);\n return { ...discovered, backfilled: true };\n}\nasync function discoverAndBackfillPodUrl(cwd = process.cwd()) {\n const discovered = await discoverAndBackfillPodConfig(cwd);\n if (discovered.synapUrl) return discovered.synapUrl;\n if (discovered.domain) return `https://pod.${discovered.domain}`;\n return null;\n}\n\n// src/debug-payloads.ts\nvar SECRET_KEY_PATTERN = /(api[_-]?key|token|secret|password|private|jwk|bearer|authorization|cookie|session)/i;\nfunction redactSecrets(value) {\n return redactValue(value);\n}\nfunction redactValue(value, key) {\n if (key && SECRET_KEY_PATTERN.test(key)) {\n if (typeof value === \"string\" && value.length <= 6) return value ? \"***redacted***\" : value;\n if (typeof value === \"string\") return `${value.slice(0, 3)}***${value.slice(-3)}`;\n return value == null ? value : \"***redacted***\";\n }\n if (Array.isArray(value)) {\n return value.map((item) => redactValue(item));\n }\n if (value && typeof value === \"object\") {\n return Object.fromEntries(\n Object.entries(value).map(([entryKey, entryValue]) => [\n entryKey,\n redactValue(entryValue, entryKey)\n ])\n );\n }\n return value;\n}\nfunction summarizeState(state) {\n return {\n version: state.version,\n initializedAt: state.initializedAt,\n aiModel: state.aiModel,\n installed: state.installed ?? {},\n setupProfile: state.setupProfile,\n metadata: state.metadata\n };\n}\nfunction canonicalUrls(secrets) {\n return {\n apiUrl: secrets?.synap?.apiUrl ? { value: secrets.synap.apiUrl, source: \"secrets\", confidence: \"canonical\" } : { value: null, source: \"default\", confidence: \"fallback\" },\n podUrl: secrets?.pod?.url ? { value: secrets.pod.url, source: \"secrets\", confidence: \"canonical\" } : { value: null, source: \"default\", confidence: \"fallback\" },\n podDomain: secrets?.domain?.primary ? { value: secrets.domain.primary, source: \"secrets\", confidence: \"canonical\" } : { value: null, source: \"default\", confidence: \"fallback\" },\n resolvedSynapUrl: secrets ? { value: resolveSynapUrl(secrets), source: \"derived\", confidence: \"canonical\" } : { value: null, source: \"default\", confidence: \"fallback\" }\n };\n}\nasync function buildConfigDebugPayload() {\n const [secrets, state] = await Promise.all([\n readEveSecrets().catch(() => null),\n entityStateManager.getState().catch(() => null)\n ]);\n return redactSecrets({\n paths: {\n eveHome: process.env.EVE_HOME ?? null,\n stateHome: getEveStateHome(),\n secretsPath: secretsPath(),\n statePath: getEveStatePath(),\n eventsPath: getEveEventsPath()\n },\n canonical: {\n secrets,\n urls: canonicalUrls(secrets)\n },\n state: state ? summarizeState(state) : null\n });\n}\nasync function buildDiscoveryDebugPayload() {\n const [secrets, discovered] = await Promise.all([\n readEveSecrets().catch(() => null),\n Promise.resolve().then(() => discoverPodConfig()).catch(() => null)\n ]);\n return redactSecrets({\n canonical: canonicalUrls(secrets),\n discovered: discovered ? {\n synapUrl: {\n value: discovered.synapUrl,\n source: \"discovery\",\n confidence: secrets?.pod?.url && discovered.synapUrl && secrets.pod.url !== discovered.synapUrl ? \"conflict\" : \"fallback\"\n },\n domain: {\n value: discovered.domain,\n source: \"discovery\",\n confidence: secrets?.domain?.primary && discovered.domain && secrets.domain.primary !== discovered.domain ? \"conflict\" : \"fallback\"\n },\n sources: discovered.sources\n } : null\n });\n}\nasync function buildMaterializedDebugPayload() {\n const secrets = await readEveSecrets().catch(() => null);\n const targets = new Set(COMPONENTS.flatMap((component) => component.materializers ?? []));\n return redactSecrets({\n targets: Array.from(targets).sort(),\n backendEnv: {\n DOMAIN: secrets?.domain?.primary ?? null,\n PUBLIC_URL: secrets?.synap?.apiUrl ?? null\n },\n traefikRoutes: {\n domain: secrets?.domain?.primary ?? null,\n apiUrl: secrets?.synap?.apiUrl ?? null\n },\n aiWiring: {\n provider: secrets?.ai?.defaultProvider ?? null,\n consumers: COMPONENTS.filter((component) => component.materializers?.includes(\"ai-wiring\")).map((component) => component.id)\n }\n });\n}\nasync function buildEventsDebugPayload(limit = 100) {\n return {\n events: await readOperationalEvents({ limit })\n };\n}\n\n// src/channel-credentials.ts\nvar ALL_PLATFORMS = [\n \"telegram\",\n \"discord\",\n \"whatsapp\",\n \"signal\",\n \"matrix\",\n \"slack\"\n];\nfunction buildChannelEntry(input) {\n switch (input.platform) {\n case \"telegram\":\n return {\n telegram: {\n enabled: true,\n botToken: input.botToken,\n ...input.webhookSecret ? { webhookSecret: input.webhookSecret } : {}\n }\n };\n case \"discord\":\n return {\n discord: {\n enabled: true,\n botToken: input.botToken,\n ...input.guildId ? { guildId: input.guildId } : {},\n ...input.applicationId ? { applicationId: input.applicationId } : {}\n }\n };\n case \"slack\":\n return {\n slack: {\n enabled: true,\n botToken: input.botToken,\n ...input.signingSecret ? { signingSecret: input.signingSecret } : {},\n ...input.appToken ? { appToken: input.appToken } : {}\n }\n };\n case \"signal\":\n return {\n signal: {\n enabled: true,\n phoneNumber: input.phoneNumber,\n ...input.apiUrl ? { apiUrl: input.apiUrl } : {}\n }\n };\n case \"matrix\":\n return {\n matrix: {\n enabled: true,\n homeserverUrl: input.homeserverUrl,\n accessToken: input.accessToken,\n ...input.roomId ? { roomId: input.roomId } : {}\n }\n };\n case \"whatsapp\":\n return {\n whatsapp: {\n enabled: true,\n phoneNumberId: input.phoneNumberId,\n accessToken: input.accessToken,\n verifyToken: input.verifyToken\n }\n };\n }\n}\nfunction summariseReconcile(result) {\n const parts = [];\n if (result.envSync) parts.push(\"Hermes env updated\");\n if (result.containerRecreates.length > 0) {\n parts.push(`recreate: ${result.containerRecreates.join(\", \")}`);\n }\n if (result.aiWiring.length > 0) {\n parts.push(`ai-wired: ${result.aiWiring.length}`);\n }\n if (parts.length === 0) return \"No downstream changes needed\";\n return parts.join(\"; \");\n}\nasync function configureChannel(cwd, input, opts = {}) {\n const inputPlatform = input.platform;\n const inputMode = input.mode;\n if (inputPlatform === \"whatsapp\" && inputMode !== \"cloud-api\") {\n throw new Error(\n \"WhatsApp browser/QR-scan must be onboarded via the Agents browser app, not the CLI. For WhatsApp Cloud API, use --cloud-api.\"\n );\n }\n const channelsPatch = buildChannelEntry(input);\n const current = await readEveSecrets(cwd);\n const existingRouting = current?.channelRouting ?? {};\n const desiredAgent = opts.routing ?? \"hermes\";\n const nextRouting = { ...existingRouting };\n if (desiredAgent !== \"hermes\") {\n nextRouting[input.platform] = desiredAgent;\n } else if (existingRouting[input.platform]) {\n delete nextRouting[input.platform];\n }\n const existingChannels = current?.channels ?? {};\n const mergedChannels = {\n ...existingChannels,\n ...channelsPatch\n };\n const written = await writeEveSecrets(\n {\n channels: mergedChannels,\n channelRouting: nextRouting\n },\n cwd\n );\n let reconcileSummary = \"Reconcile skipped\";\n let wired = false;\n try {\n const result = await reconcile(written, [\"channels\", \"channelRouting\"]);\n reconcileSummary = summariseReconcile(result);\n wired = result.envSync;\n } catch (err) {\n reconcileSummary = `Reconcile failed: ${err instanceof Error ? err.message : String(err)}`;\n }\n return { wired, reconcileSummary };\n}\nasync function disableChannel(cwd, platform2) {\n const current = await readEveSecrets(cwd);\n const existingChannels = current?.channels ?? {};\n const existingPlatform = existingChannels[platform2] ?? {};\n const nextChannels = {\n ...existingChannels,\n [platform2]: { ...existingPlatform, enabled: false }\n };\n const written = await writeEveSecrets({ channels: nextChannels }, cwd);\n try {\n await reconcile(written, [\"channels\"]);\n } catch {\n }\n}\nvar REQUIRED_CRED_KEYS = {\n telegram: [\"botToken\"],\n discord: [\"botToken\"],\n whatsapp: [\"accessToken\", \"phoneNumberId\"],\n signal: [\"phoneNumber\"],\n matrix: [\"homeserverUrl\", \"accessToken\"],\n slack: [\"botToken\", \"signingSecret\"]\n};\nfunction platformHasCredentials(platform2, entry) {\n if (!entry) return false;\n const required = REQUIRED_CRED_KEYS[platform2];\n return required.every((key) => {\n const v = entry[key];\n return typeof v === \"string\" && v.trim().length > 0;\n });\n}\nasync function readChannelStatus(cwd) {\n const secrets = await readEveSecrets(cwd);\n const channels = secrets?.channels ?? {};\n const routing = secrets?.channelRouting ?? {};\n return ALL_PLATFORMS.map((platform2) => {\n const entry = channels[platform2];\n return {\n platform: platform2,\n enabled: Boolean(entry?.enabled),\n hasCredentials: platformHasCredentials(platform2, entry),\n routing: routing[platform2] ?? \"hermes\"\n };\n });\n}\n\n// src/channel-validation.ts\nvar DEFAULT_TIMEOUT_MS = 8e3;\nasync function validateChannelCredentials(input, opts = {}) {\n const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n const f = opts.fetch ?? fetch;\n const ctrl = AbortSignal.timeout(timeoutMs);\n try {\n switch (input.platform) {\n case \"telegram\":\n return await validateTelegram(input.botToken, f, ctrl);\n case \"discord\":\n return await validateDiscord(input.botToken, f, ctrl);\n case \"slack\":\n return await validateSlack(input.botToken, f, ctrl);\n case \"matrix\":\n return await validateMatrix(input.homeserverUrl, input.accessToken, f, ctrl);\n case \"signal\":\n return { ok: true, skipped: true, details: \"no remote validation endpoint\" };\n case \"whatsapp\":\n return await validateWhatsAppCloudApi(input.phoneNumberId, input.accessToken, f, ctrl);\n }\n } catch (err) {\n return { ok: false, error: errorMessage(err) };\n }\n}\nasync function validateTelegram(botToken, f, signal) {\n const res = await f(`https://api.telegram.org/bot${encodeURIComponent(botToken)}/getMe`, { signal });\n if (!res.ok) return { ok: false, error: `Telegram getMe ${res.status}` };\n const body = await res.json();\n if (!body.ok) return { ok: false, error: body.description ?? \"Telegram getMe returned ok=false\" };\n const username = body.result?.username;\n return { ok: true, details: username ? `@${username}` : `bot id ${body.result?.id}` };\n}\nasync function validateDiscord(botToken, f, signal) {\n const res = await f(\"https://discord.com/api/v10/users/@me\", {\n headers: { Authorization: `Bot ${botToken}` },\n signal\n });\n if (res.status === 401) return { ok: false, error: \"Discord rejected the bot token (401)\" };\n if (!res.ok) return { ok: false, error: `Discord users/@me ${res.status}` };\n const body = await res.json();\n const tag = body.discriminator && body.discriminator !== \"0\" ? `${body.username}#${body.discriminator}` : body.username;\n return { ok: true, details: tag ?? `bot id ${body.id}` };\n}\nasync function validateSlack(botToken, f, signal) {\n const res = await f(\"https://slack.com/api/auth.test\", {\n method: \"POST\",\n headers: { Authorization: `Bearer ${botToken}`, \"Content-Type\": \"application/x-www-form-urlencoded\" },\n signal\n });\n if (!res.ok) return { ok: false, error: `Slack auth.test ${res.status}` };\n const body = await res.json();\n if (!body.ok) return { ok: false, error: body.error ?? \"Slack auth.test returned ok=false\" };\n return { ok: true, details: body.team ? `${body.user}@${body.team}` : body.user ?? \"authenticated\" };\n}\nasync function validateMatrix(homeserverUrl, accessToken, f, signal) {\n const base = homeserverUrl.replace(/\\/$/, \"\");\n const res = await f(`${base}/_matrix/client/v3/account/whoami`, {\n headers: { Authorization: `Bearer ${accessToken}` },\n signal\n });\n if (res.status === 401) return { ok: false, error: \"Matrix rejected the access token (401)\" };\n if (!res.ok) return { ok: false, error: `Matrix whoami ${res.status}` };\n const body = await res.json();\n return { ok: true, details: body.user_id ?? \"authenticated\" };\n}\nasync function validateWhatsAppCloudApi(phoneNumberId, accessToken, f, signal) {\n const url = `https://graph.facebook.com/v17.0/${encodeURIComponent(phoneNumberId)}?fields=display_phone_number%2Cverified_name&access_token=${encodeURIComponent(accessToken)}`;\n const res = await f(url, { signal });\n const body = await res.json();\n if (!res.ok || body.error) {\n const msg = body.error?.message ?? `Meta Graph API ${res.status}`;\n return { ok: false, error: msg };\n }\n const label = body.display_phone_number ?? body.id ?? phoneNumberId;\n const name = body.verified_name ? ` (${body.verified_name})` : \"\";\n return { ok: true, details: `${label}${name}` };\n}\nfunction errorMessage(err) {\n if (err instanceof Error) return err.name === \"TimeoutError\" ? \"request timed out\" : err.message;\n return String(err);\n}\n\n// src/doctor-state-coherence.ts\nvar BUILT_IN_PROVIDERS = /* @__PURE__ */ new Set([\"ollama\", \"openai\", \"anthropic\", \"openrouter\"]);\nvar REQUIRED_CHANNEL_FIELDS = {\n telegram: [\"botToken\"],\n discord: [\"botToken\"],\n whatsapp: [\"phoneNumberId\", \"accessToken\"],\n signal: [\"phoneNumber\"],\n matrix: [\"homeserverUrl\", \"accessToken\"],\n slack: [\"botToken\", \"signingSecret\"]\n};\nvar SEVEN_DAYS_MS = 7 * 24 * 60 * 60 * 1e3;\nvar SKILL_COMMANDS = [\"synap\", \"synap-schema\", \"synap-ui\"];\nvar KNOWLEDGE_COLLECTION_PREFIX = \"Synap Knowledge\";\nvar SYNAP_TOOL_SERVER_NAME = \"Synap Hub Protocol\";\nasync function runStateCoherenceChecks(secrets, opts = {}) {\n if (!secrets) {\n return [{\n group: \"config\",\n name: \"Eve secrets\",\n status: \"fail\",\n message: \"secrets.json could not be read\",\n fix: \"Run `eve setup` to initialize Eve\"\n }];\n }\n const checks = [\n ...checkProviders(secrets),\n ...checkServiceRouting(secrets),\n ...checkChannels(secrets),\n ...checkTranscription(secrets),\n ...checkStalwart(secrets),\n ...checkWiringStatus(secrets, opts.now ?? (() => /* @__PURE__ */ new Date()))\n ];\n if (opts.probeRemote !== false) {\n checks.push(...await probeSynapHub(secrets, opts));\n checks.push(...await probeOpenwebuiExtras(secrets, opts));\n checks.push(...await probeStalwartDeliverability(secrets, opts));\n }\n return checks;\n}\nfunction checkProviders(secrets) {\n const providers = secrets.ai?.providers ?? [];\n if (providers.length === 0) {\n return [{\n group: \"ai\",\n name: \"AI providers\",\n status: \"warn\",\n message: \"No providers configured in secrets.ai.providers\",\n fix: \"Add a provider in the dashboard (Settings \\u2192 AI) or run `eve ai set-provider`\"\n }];\n }\n const enabled = providers.filter((p) => p.enabled !== false);\n if (enabled.length === 0) {\n return [{\n group: \"ai\",\n name: \"AI providers\",\n status: \"warn\",\n message: `${providers.length} provider(s) configured, none enabled`,\n fix: \"Toggle a provider on in the dashboard AI settings\"\n }];\n }\n const checks = [];\n for (const p of enabled) {\n const status = providerCoherenceStatus(p);\n checks.push({\n group: \"ai\",\n name: `Provider: ${p.name ?? p.id}`,\n status: status.status,\n message: status.message,\n fix: status.fix\n });\n }\n return checks;\n}\nfunction providerCoherenceStatus(p) {\n const isBuiltIn = BUILT_IN_PROVIDERS.has(p.id);\n const hasUsableConfig = !!(p.baseUrl && p.apiKey);\n if (isBuiltIn) {\n if (p.id === \"ollama\") {\n return { status: \"pass\", message: \"Built-in Ollama (local)\" };\n }\n if (!p.apiKey) {\n return {\n status: \"fail\",\n message: `${p.id} enabled but no apiKey set`,\n fix: `Set the API key in dashboard Settings \\u2192 AI \\u2192 ${p.id}`\n };\n }\n return { status: \"pass\", message: `Built-in ${p.id}, apiKey set` };\n }\n if (!hasUsableConfig) {\n return {\n status: \"fail\",\n message: `Custom provider missing baseUrl or apiKey`,\n fix: \"Edit the provider in dashboard Settings \\u2192 AI or remove it\"\n };\n }\n return { status: \"pass\", message: `Custom provider, baseUrl + apiKey set` };\n}\nfunction checkServiceRouting(secrets) {\n const overrides = secrets.ai?.serviceProviders ?? {};\n const providers = secrets.ai?.providers ?? [];\n const byId = new Map(providers.map((p) => [p.id, p]));\n const checks = [];\n for (const [componentId, providerId] of Object.entries(overrides)) {\n if (!providerId) continue;\n const p = byId.get(providerId);\n if (!p) {\n checks.push({\n group: \"wiring\",\n name: `Routing: ${componentId} \\u2192 ${providerId}`,\n status: \"fail\",\n message: `Component routed to provider '${providerId}' which is not in providers list`,\n fix: `Update routing in dashboard Settings \\u2192 AI or add the provider`,\n componentId\n });\n continue;\n }\n if (p.enabled === false) {\n checks.push({\n group: \"wiring\",\n name: `Routing: ${componentId} \\u2192 ${providerId}`,\n status: \"warn\",\n message: `Component routed to '${providerId}' but the provider is disabled`,\n fix: `Enable provider '${providerId}' or change the routing`,\n componentId\n });\n continue;\n }\n checks.push({\n group: \"wiring\",\n name: `Routing: ${componentId} \\u2192 ${providerId}`,\n status: \"pass\",\n message: `Routed to enabled provider`,\n componentId\n });\n }\n return checks;\n}\nfunction checkChannels(secrets) {\n const channels = secrets.channels ?? {};\n const checks = [];\n for (const [platform2, required] of Object.entries(REQUIRED_CHANNEL_FIELDS)) {\n const entry = channels[platform2];\n if (!entry || entry.enabled !== true) continue;\n const missing = required.filter((field) => !entry[field] || typeof entry[field] === \"string\" && entry[field].trim() === \"\");\n if (missing.length > 0) {\n checks.push({\n group: \"integrations\",\n name: `Channel: ${platform2}`,\n status: \"fail\",\n message: `Enabled but missing: ${missing.join(\", \")}`,\n fix: `Run \\`eve arms messaging configure ${platform2}\\` with the required flags`\n });\n } else {\n checks.push({\n group: \"integrations\",\n name: `Channel: ${platform2}`,\n status: \"pass\",\n message: \"Enabled with all required credentials\"\n });\n }\n }\n return checks;\n}\nfunction checkWiringStatus(secrets, now) {\n const wiring = secrets.ai?.wiringStatus ?? {};\n const checks = [];\n for (const [componentId, entry] of Object.entries(wiring)) {\n const outcome = (entry?.outcome ?? \"\").toLowerCase();\n const isOk = outcome.startsWith(\"ok\") || outcome.startsWith(\"open webui\") || outcome.includes(\"wired\");\n const lastApplied = entry?.lastApplied ? Date.parse(entry.lastApplied) : NaN;\n const ageMs = Number.isFinite(lastApplied) ? now().getTime() - lastApplied : NaN;\n if (!isOk) {\n checks.push({\n group: \"wiring\",\n name: `Last apply: ${componentId}`,\n status: \"fail\",\n message: `outcome=${entry?.outcome ?? \"(unknown)\"}`,\n fix: \"Re-run `eve ai apply` or restart the component\",\n componentId\n });\n continue;\n }\n if (Number.isFinite(ageMs) && ageMs > SEVEN_DAYS_MS) {\n const days = Math.floor(ageMs / (24 * 60 * 60 * 1e3));\n checks.push({\n group: \"wiring\",\n name: `Last apply: ${componentId}`,\n status: \"warn\",\n message: `Applied ${days}d ago \\u2014 config may have drifted`,\n fix: \"Run `eve ai apply` to refresh\",\n componentId\n });\n } else {\n checks.push({\n group: \"wiring\",\n name: `Last apply: ${componentId}`,\n status: \"pass\",\n message: `outcome=${entry?.outcome ?? \"ok\"}`,\n componentId\n });\n }\n }\n return checks;\n}\nfunction checkTranscription(secrets) {\n const tc = secrets.arms?.transcription;\n if (!tc?.engine) {\n return [{\n group: \"integrations\",\n name: \"Voice transcription\",\n status: \"warn\",\n message: \"Not configured \\u2014 voice memos will be dropped\",\n fix: \"Run `eve arms voice transcription configure --engine whisper-local` to enable\"\n }];\n }\n const engine = tc.engine;\n if (engine === \"whisper-local\") {\n return [{\n group: \"integrations\",\n name: \"Voice transcription\",\n status: \"pass\",\n message: `whisper-local, model: ${tc.modelSize ?? \"base\"} (install: pip install openai-whisper)`\n }];\n }\n if (!tc.apiKey) {\n return [{\n group: \"integrations\",\n name: \"Voice transcription\",\n status: \"fail\",\n message: `${engine} configured but no API key set`,\n fix: `Run \\`eve arms voice transcription configure --engine ${engine} --api-key <key>\\``\n }];\n }\n return [{\n group: \"integrations\",\n name: \"Voice transcription\",\n status: \"pass\",\n message: `${engine}, API key configured`\n }];\n}\nfunction checkStalwart(secrets) {\n const sw = secrets.stalwart;\n if (!sw || !sw.installedAt && !sw.domain) return [];\n if (!sw.domain) {\n return [{\n group: \"config\",\n name: \"Stalwart Mail\",\n status: \"warn\",\n message: \"No mail domain configured \\u2014 set one and recreate Stalwart to route mail.<domain>\",\n fix: \"Run `eve domain set <domain>` then `eve recreate stalwart` (or reinstall)\",\n componentId: \"stalwart\"\n }];\n }\n return [{\n group: \"config\",\n name: \"Stalwart Mail\",\n status: \"pass\",\n message: `domain=${sw.domain}`,\n componentId: \"stalwart\"\n }];\n}\nasync function probeStalwartDeliverability(secrets, opts) {\n const domain = secrets.stalwart?.domain;\n if (!domain) return [];\n const timeoutMs = opts.timeoutMs ?? 5e3;\n const checks = [];\n let resolveTxt;\n let resolveMx;\n try {\n const dns = await import(\"dns/promises\");\n resolveTxt = dns.resolveTxt;\n resolveMx = dns.resolveMx;\n } catch {\n return [];\n }\n const txtAt = async (host) => {\n try {\n const records = await resolveTxt(host);\n return records.map((parts) => parts.join(\"\"));\n } catch {\n return [];\n }\n };\n const spf = (await txtAt(domain)).find((r) => r.toLowerCase().startsWith(\"v=spf1\"));\n checks.push(spf ? { group: \"integrations\", name: \"Mail SPF\", status: \"pass\", message: spf, componentId: \"stalwart\" } : { group: \"integrations\", name: \"Mail SPF\", status: \"warn\", message: \"No v=spf1 record found\", fix: `Publish the SPF TXT record for ${domain} (see the Stalwart admin console \\u2192 Domains)`, componentId: \"stalwart\" });\n const dmarc = (await txtAt(`_dmarc.${domain}`)).find((r) => r.toLowerCase().startsWith(\"v=dmarc1\"));\n checks.push(dmarc ? { group: \"integrations\", name: \"Mail DMARC\", status: \"pass\", message: dmarc, componentId: \"stalwart\" } : { group: \"integrations\", name: \"Mail DMARC\", status: \"warn\", message: \"No _dmarc record found\", fix: `Publish the DMARC TXT record at _dmarc.${domain}`, componentId: \"stalwart\" });\n const dkim = (await txtAt(`stalwart._domainkey.${domain}`)).find((r) => r.toLowerCase().includes(\"v=dkim1\"));\n checks.push(dkim ? { group: \"integrations\", name: \"Mail DKIM\", status: \"pass\", message: \"stalwart._domainkey published\", componentId: \"stalwart\" } : { group: \"integrations\", name: \"Mail DKIM\", status: \"warn\", message: \"No stalwart._domainkey DKIM record found (selector may differ)\", fix: \"Copy the DKIM record from the Stalwart admin console \\u2192 Domains \\u2192 DKIM and publish it\", componentId: \"stalwart\" });\n let mx = [];\n try {\n mx = await resolveMx(domain);\n } catch {\n }\n checks.push(mx.length > 0 ? { group: \"integrations\", name: \"Mail MX\", status: \"pass\", message: mx.map((m) => `${m.priority} ${m.exchange}`).join(\", \"), componentId: \"stalwart\" } : { group: \"integrations\", name: \"Mail MX\", status: \"warn\", message: \"No MX record found \\u2014 inbound mail cannot be delivered\", fix: `Publish an MX record for ${domain} pointing at mail.${domain}`, componentId: \"stalwart\" });\n checks.push(await probeTcp(`mail.${domain}`, 25, timeoutMs));\n checks.push({\n group: \"integrations\",\n name: \"Mail PTR (reverse DNS)\",\n status: \"warn\",\n message: \"PTR cannot be verified automatically \\u2014 set it at your VPS/hosting provider\",\n fix: `Set reverse DNS for this server's public IP to mail.${domain}, or outbound mail will be flagged as spam`,\n componentId: \"stalwart\"\n });\n return checks;\n}\nasync function probeTcp(host, port, timeoutMs) {\n const name = `Mail SMTP (${host}:${port})`;\n try {\n const net = await import(\"net\");\n const reachable = await new Promise((resolve) => {\n const socket = net.connect({ host, port });\n const done = (ok) => {\n socket.destroy();\n resolve(ok);\n };\n socket.setTimeout(timeoutMs);\n socket.once(\"connect\", () => done(true));\n socket.once(\"timeout\", () => done(false));\n socket.once(\"error\", () => done(false));\n });\n return reachable ? { group: \"integrations\", name, status: \"pass\", message: \"SMTP port reachable\", componentId: \"stalwart\" } : { group: \"integrations\", name, status: \"warn\", message: \"Port 25 not reachable \\u2014 many VPS providers block it; check your firewall and provider\", fix: \"Open inbound :25 in your firewall and confirm your provider allows port 25\", componentId: \"stalwart\" };\n } catch {\n return { group: \"integrations\", name, status: \"skip\", message: \"Could not probe SMTP port\", componentId: \"stalwart\" };\n }\n}\nasync function probeSynapHub(secrets, opts) {\n const hubBaseUrl = resolveHubBaseUrl(secrets);\n if (!hubBaseUrl) {\n return [{\n group: \"integrations\",\n name: \"Synap Hub Protocol\",\n status: \"skip\",\n message: \"No hubBaseUrl in secrets\"\n }];\n }\n const readKey = opts.readEveHubKey ?? ((s) => readAgentKeyOrLegacySync(\"eve\", s));\n const apiKey = readKey(secrets);\n if (!apiKey) {\n return [{\n group: \"integrations\",\n name: \"Synap Hub Protocol\",\n status: \"fail\",\n message: \"No eve agent key in secrets.agents.eve.hubApiKey\",\n fix: \"Run `eve auth provision --agent eve`\"\n }];\n }\n const f = opts.fetch ?? fetch;\n const timeoutMs = opts.timeoutMs ?? 5e3;\n try {\n const res = await f(`${hubBaseUrl.replace(/\\/$/, \"\")}/skills/system`, {\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: AbortSignal.timeout(timeoutMs)\n });\n if (res.status === 401 || res.status === 403) {\n return [{\n group: \"integrations\",\n name: \"Synap Hub Protocol\",\n status: \"fail\",\n message: `Pod rejected the eve agent key (${res.status})`,\n fix: \"Run `eve auth renew --agent eve` or re-provision\"\n }];\n }\n if (!res.ok) {\n return [{\n group: \"integrations\",\n name: \"Synap Hub Protocol\",\n status: \"warn\",\n message: `Hub probe returned ${res.status}`\n }];\n }\n return [{\n group: \"integrations\",\n name: \"Synap Hub Protocol\",\n status: \"pass\",\n message: `Reachable, eve agent authenticated`\n }];\n } catch (err) {\n return [{\n group: \"integrations\",\n name: \"Synap Hub Protocol\",\n status: \"skip\",\n message: `Pod not reachable from this host (${errorMessage2(err)})`\n }];\n }\n}\nasync function probeOpenwebuiExtras(secrets, opts) {\n const jwtFn = opts.getAdminJwt ?? (() => getAdminJwt().catch(() => null));\n const jwt = await jwtFn();\n if (!jwt) {\n return [{\n group: \"integrations\",\n name: \"OpenWebUI extras\",\n status: \"skip\",\n message: \"OpenWebUI admin JWT not available (container down or admin row missing)\"\n }];\n }\n const f = opts.fetch ?? fetch;\n const timeoutMs = opts.timeoutMs ?? 5e3;\n const headers = { Authorization: `Bearer ${jwt}` };\n const baseUrl = \"http://localhost:3000\";\n const checks = [];\n try {\n const res = await f(`${baseUrl}/api/v1/prompts/`, { headers, signal: AbortSignal.timeout(timeoutMs) });\n if (!res.ok) throw new Error(`prompts list ${res.status}`);\n const prompts = await res.json();\n const present = new Set(prompts.map((p) => p.command).filter((x) => !!x));\n const missing = SKILL_COMMANDS.filter((s) => !present.has(s));\n checks.push({\n group: \"integrations\",\n name: \"OpenWebUI: Synap skills as Prompts\",\n status: missing.length === 0 ? \"pass\" : \"warn\",\n message: missing.length === 0 ? `All 3 SKILL.md packages present (${SKILL_COMMANDS.join(\", \")})` : `Missing: ${missing.join(\", \")}`,\n fix: missing.length === 0 ? void 0 : \"Run `eve ai apply` to re-trigger the extras sync\",\n integrationId: \"openwebui-coherence\"\n });\n } catch (err) {\n checks.push({\n group: \"integrations\",\n name: \"OpenWebUI: Synap skills as Prompts\",\n status: \"skip\",\n message: `Could not list prompts (${errorMessage2(err)})`\n });\n }\n try {\n const res = await f(`${baseUrl}/api/v1/knowledge/`, { headers, signal: AbortSignal.timeout(timeoutMs) });\n if (!res.ok) throw new Error(`knowledge list ${res.status}`);\n const list = await res.json();\n const found = list.some((c) => typeof c.name === \"string\" && c.name.startsWith(KNOWLEDGE_COLLECTION_PREFIX));\n checks.push({\n group: \"integrations\",\n name: \"OpenWebUI: Synap knowledge collection\",\n status: found ? \"pass\" : \"warn\",\n message: found ? `\"${KNOWLEDGE_COLLECTION_PREFIX}\\u2026\" collection present` : `No collection starting with \"${KNOWLEDGE_COLLECTION_PREFIX}\" found`,\n fix: found ? void 0 : \"Run `eve ai apply` to re-trigger the extras sync\",\n integrationId: \"openwebui-coherence\"\n });\n } catch (err) {\n checks.push({\n group: \"integrations\",\n name: \"OpenWebUI: Synap knowledge collection\",\n status: \"skip\",\n message: `Could not list knowledge (${errorMessage2(err)})`\n });\n }\n try {\n const res = await f(`${baseUrl}/api/v1/configs/`, { headers, signal: AbortSignal.timeout(timeoutMs) });\n if (!res.ok) throw new Error(`configs ${res.status}`);\n const config = await res.json();\n const ts = config[\"tool_server\"] ?? config[\"tool_servers\"];\n const connections = ts?.connections ?? [];\n const found = connections.some((c) => c.name === SYNAP_TOOL_SERVER_NAME || typeof c.url === \"string\" && c.url.includes(\"/api/hub/openapi.json\"));\n checks.push({\n group: \"integrations\",\n name: \"OpenWebUI: Synap tool server\",\n status: found ? \"pass\" : \"warn\",\n message: found ? `\"${SYNAP_TOOL_SERVER_NAME}\" registered` : \"Synap Hub Protocol not in tool_server.connections\",\n fix: found ? void 0 : \"Run `eve ai apply` to re-trigger the extras sync\",\n integrationId: \"openwebui-coherence\"\n });\n } catch (err) {\n checks.push({\n group: \"integrations\",\n name: \"OpenWebUI: Synap tool server\",\n status: \"skip\",\n message: `Could not read OpenWebUI config (${errorMessage2(err)})`\n });\n }\n return checks;\n}\nfunction errorMessage2(err) {\n if (err instanceof Error) return err.name === \"TimeoutError\" ? \"timeout\" : err.message;\n return String(err);\n}\n\n// src/agents.ts\nvar AGENTS = [\n {\n agentType: \"eve\",\n label: \"Eve\",\n description: \"Eve CLI + dashboard \\u2014 used by doctor probes and lifecycle introspection.\",\n componentId: null,\n alwaysProvision: true\n },\n {\n agentType: \"openclaw\",\n label: \"OpenClaw\",\n description: \"OpenClaw agent runtime \\u2014 reads/writes Synap data on behalf of the user.\",\n componentId: \"openclaw\",\n // Always provision so the agent user exists in the pod from the moment\n // Eve connects — even before the OpenClaw Docker container is running.\n // This makes the agent visible in the browser Agents app (agentUsers.listAll)\n // and lets the operator grant/review it without waiting for a container install.\n // The install step still mints the key when the component is added; this flag\n // just ensures the pod registration (user row + workspace membership) happens\n // on every connect/auto-provision rather than only when docker ps finds the container.\n alwaysProvision: true\n },\n {\n agentType: \"hermes\",\n label: \"Hermes\",\n description: \"Hermes builder daemon \\u2014 scaffolds apps via Synap proposals.\",\n componentId: \"hermes\",\n // Always provision for the same reason as openclaw above: the Hermes agent\n // user should exist in the pod's user table as soon as Eve connects, so it\n // appears in the browser Agents app and can be governed before the container\n // is installed. The Docker install path still owns env/config/key wiring.\n alwaysProvision: true\n },\n {\n agentType: \"openwebui\",\n label: \"Open WebUI\",\n description: \"Open WebUI chat frontend \\u2014 used for Synap knowledge/skills/functions sync and model source auth.\",\n componentId: \"openwebui\",\n alwaysProvision: false\n },\n {\n agentType: \"coder\",\n label: \"Coder\",\n description: \"Local AI coder agent \\u2014 runs claudecode / opencode / openclaude as a subprocess based on secrets.builder.codeEngine\",\n // The coder is a local subprocess identity, not a Docker component.\n // It corresponds to whichever engine the operator has selected, but\n // shouldn't be gated on a specific component install — gate on the\n // builder organ's `codeEngine` config instead.\n componentId: null,\n // Always-on: any builder workflow that spawns a coder subprocess\n // expects this key to exist. Mint it during install alongside the\n // eve agent so first-spawn never blocks on a Hub provision call.\n alwaysProvision: true\n }\n];\nvar LEGACY_CODER_ENGINE_SLUGS = [\"claudecode\", \"opencode\", \"openclaude\"];\nfunction resolveAgent(agentType) {\n return AGENTS.find((a) => a.agentType === agentType) ?? null;\n}\nfunction allAgentTypes() {\n return AGENTS.map((a) => a.agentType);\n}\nfunction agentsToProvision(installedComponentIds) {\n const installed = new Set(installedComponentIds);\n return AGENTS.filter((a) => a.alwaysProvision || a.componentId !== null && installed.has(a.componentId));\n}\n\n// src/background-task-actions.ts\nvar EVE_BACKGROUND_ACTIONS = {\n \"coder.research\": {\n id: \"coder.research\",\n description: \"Research a topic, write findings to a Note entity\"\n },\n \"coder.build\": {\n id: \"coder.build\",\n description: \"Build/scaffold code in a project workspace\",\n requiresWorkspace: true\n },\n \"coder.review\": {\n id: \"coder.review\",\n description: \"Review code in a project\",\n requiresWorkspace: true\n },\n \"coder.refactor\": {\n id: \"coder.refactor\",\n description: \"Refactor code in a project\",\n requiresWorkspace: true\n },\n \"hermes.transcribe\": {\n id: \"hermes.transcribe\",\n description: \"Transcribe a voice memo audio file and store transcript in Synap memory\"\n },\n \"hermes.summarize\": {\n id: \"hermes.summarize\",\n description: \"Summarize entities or conversations\"\n },\n \"hermes.digest\": {\n id: \"hermes.digest\",\n description: \"Generate daily/weekly digest\"\n },\n \"eve.healthcheck\": {\n id: \"eve.healthcheck\",\n description: \"Run periodic eve-doctor probes\"\n },\n \"openclaw.skill\": {\n id: \"openclaw.skill\",\n description: \"Invoke a named OpenClaw skill\"\n },\n custom: {\n id: \"custom\",\n description: \"Free-form NL prompt (escape hatch)\"\n }\n};\nfunction isValidEveBackgroundAction(id) {\n return Object.prototype.hasOwnProperty.call(EVE_BACKGROUND_ACTIONS, id);\n}\nfunction listEveBackgroundActions() {\n return Object.values(EVE_BACKGROUND_ACTIONS).map(({ id, description }) => ({\n id,\n description\n }));\n}\nfunction assigneeForAction(actionId) {\n if (actionId === \"custom\") return \"hermes\";\n const dot = actionId.indexOf(\".\");\n if (dot < 0) return \"hermes\";\n const ns = actionId.slice(0, dot);\n switch (ns) {\n case \"coder\":\n return \"coder\";\n case \"hermes\":\n return \"hermes\";\n case \"eve\":\n return \"eve\";\n case \"openclaw\":\n return \"openclaw\";\n default:\n return \"hermes\";\n }\n}\n\n// src/server-ip.ts\nimport { networkInterfaces } from \"os\";\nfunction getServerIp() {\n const nets = networkInterfaces();\n for (const name of Object.keys(nets)) {\n for (const net of nets[name] ?? []) {\n if (net.family === \"IPv4\" && !net.internal) {\n return net.address;\n }\n }\n }\n return null;\n}\n\n// src/access-urls.ts\nfunction getAccessUrls(secrets, installedComponents) {\n const serverIp = getServerIp();\n const domain = secrets?.domain?.primary;\n const isLocalDomain = !domain || /^(localhost|127\\.)/.test(domain);\n const ssl = secrets?.domain?.ssl ?? !isLocalDomain;\n const protocol = ssl ? \"https\" : \"http\";\n const out = [];\n for (const comp of COMPONENTS) {\n if (!comp.service || comp.service.subdomain === null) continue;\n const requires = comp.id === \"eve-dashboard\" ? null : comp.id;\n if (installedComponents && requires && !installedComponents.includes(comp.id)) continue;\n const port = comp.service.hostPort ?? comp.service.internalPort;\n out.push({\n id: comp.id,\n label: comp.label,\n emoji: comp.emoji,\n requires,\n port,\n localUrl: comp.service.hostPort ? `http://localhost:${port}` : null,\n serverUrl: comp.service.hostPort && serverIp ? `http://${serverIp}:${port}` : null,\n domainUrl: domain ? `${protocol}://${comp.service.subdomain}.${domain}` : null,\n dnsReady: null\n });\n }\n return out;\n}\n\n// src/pod-url.ts\nimport { Socket } from \"net\";\nimport { existsSync as existsSync3 } from \"fs\";\nvar cachedUrl;\nvar cachedProbe;\nvar cachedDerive;\nvar LOOPBACK_HOST = \"127.0.0.1\";\nvar LOOPBACK_PORT = 14e3;\nvar DOCKER_DNS_URL = \"http://eve-brain-synap:4000\";\nvar DOCKER_DNS_TIMEOUT_MS = 300;\nfunction diagnostic(level, code, message) {\n return { level, code, message };\n}\nfunction deriveFromHost(hostname3, scheme) {\n if (cachedDerive) return cachedDerive;\n if (hostname3 === \"localhost\" || hostname3 === \"127.0.0.1\" || hostname3 === \"::1\") {\n return \"\";\n }\n const bareDomain = hostname3.startsWith(\"eve.\") ? hostname3.slice(4) : hostname3;\n if (!bareDomain.includes(\".\") || bareDomain === \"localhost\") return \"\";\n const result = `${scheme}://pod.${bareDomain}`;\n cachedDerive = result;\n return result;\n}\nfunction probePort(host, port, timeoutMs) {\n return new Promise((resolve) => {\n const socket = new Socket();\n let settled = false;\n const settle = (ok) => {\n if (settled) return;\n settled = true;\n try {\n socket.destroy();\n } catch {\n }\n resolve(ok);\n };\n const timer = setTimeout(() => settle(false), timeoutMs);\n timer.unref?.();\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n settle(true);\n });\n socket.once(\"error\", () => {\n clearTimeout(timer);\n settle(false);\n });\n try {\n socket.connect(port, host);\n } catch {\n clearTimeout(timer);\n settle(false);\n }\n });\n}\nasync function isDockerDnsReachable() {\n if (cachedProbe !== void 0) return cachedProbe;\n const socket = new Socket();\n const result = await new Promise((resolve) => {\n const timer = setTimeout(() => {\n socket.destroy();\n resolve(false);\n }, DOCKER_DNS_TIMEOUT_MS);\n timer.unref?.();\n socket.once(\"connect\", () => {\n clearTimeout(timer);\n socket.destroy();\n resolve(true);\n });\n socket.once(\"error\", () => {\n clearTimeout(timer);\n socket.destroy();\n resolve(false);\n });\n try {\n socket.connect(4e3, \"eve-brain-synap\");\n } catch {\n clearTimeout(timer);\n socket.destroy();\n resolve(false);\n }\n });\n cachedProbe = result;\n return result;\n}\nfunction isRunningInContainer() {\n try {\n return existsSync3(\"/.dockerenv\");\n } catch {\n return false;\n }\n}\nfunction isHostLoopbackUrl(url) {\n try {\n const u = new URL(url);\n const h = u.hostname.toLowerCase();\n return h === \"127.0.0.1\" || h === \"localhost\" || h === \"::1\";\n } catch {\n return false;\n }\n}\nasync function readPodUrlFromSecrets() {\n const secrets = await configStore.get();\n if (!secrets) return void 0;\n const inContainer = isRunningInContainer();\n const apiUrl = secrets.synap?.apiUrl?.trim();\n if (apiUrl && !(inContainer && isHostLoopbackUrl(apiUrl))) {\n return { podUrl: apiUrl, detail: \"secrets.synap.apiUrl\" };\n }\n const podUrl = secrets.pod?.url?.trim();\n if (podUrl && !(inContainer && isHostLoopbackUrl(podUrl))) {\n return { podUrl, detail: \"secrets.pod.url\" };\n }\n const domain = secrets.domain?.primary?.trim();\n if (domain && domain.includes(\".\") && !domain.startsWith(\"127.\") && !domain.startsWith(\"localhost\")) {\n return { podUrl: `https://pod.${domain}`, detail: \"secrets.domain.primary\" };\n }\n return void 0;\n}\nasync function resolvePodUrl(explicitUrl, dashboardUrl, headers) {\n const result = await resolvePodUrlDetailed(explicitUrl, dashboardUrl, headers);\n return result.podUrl;\n}\nasync function resolvePodUrlDetailed(explicitUrl, dashboardUrl, headers) {\n const diagnostics = [];\n const envUrl = explicitUrl?.trim() || process.env.NEXT_PUBLIC_POD_URL?.trim();\n if (envUrl) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.env\", \"Resolved pod URL from explicit/env configuration.\"));\n return { podUrl: envUrl, source: \"env\", diagnostics };\n }\n diagnostics.push(diagnostic(\"info\", \"pod_url.env.empty\", \"No explicit/env pod URL configured.\"));\n const fromSecrets = await readPodUrlFromSecrets();\n if (fromSecrets) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.secrets\", `Resolved pod URL from ${fromSecrets.detail}.`));\n return { podUrl: fromSecrets.podUrl, source: \"secrets\", diagnostics };\n }\n diagnostics.push(diagnostic(\"info\", \"pod_url.secrets.empty\", \"No pod URL found in secrets.\"));\n if (dashboardUrl) {\n const hostname3 = headers?.get(\"x-forwarded-host\") ?? headers?.get(\"host\") ?? void 0;\n const scheme = headers?.get(\"x-forwarded-proto\") ?? \"https\";\n if (hostname3) {\n const derived = deriveFromHost(hostname3, scheme);\n if (derived) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.headers\", \"Derived pod URL from request host headers.\"));\n return { podUrl: derived, source: \"headers\", diagnostics };\n }\n diagnostics.push(diagnostic(\"info\", \"pod_url.headers.unusable\", \"Request host headers did not contain a routable domain.\"));\n }\n try {\n const u = new URL(dashboardUrl);\n const derived2 = deriveFromHost(u.hostname, u.protocol.replace(\":\", \"\"));\n if (derived2) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.dashboard_url\", \"Derived pod URL from dashboard URL.\"));\n return { podUrl: derived2, source: \"headers\", diagnostics };\n }\n diagnostics.push(diagnostic(\"info\", \"pod_url.dashboard_url.unusable\", \"Dashboard URL did not contain a routable domain.\"));\n } catch {\n diagnostics.push(diagnostic(\"info\", \"pod_url.dashboard_url.invalid\", \"Dashboard URL was not a full URL.\"));\n }\n } else {\n diagnostics.push(diagnostic(\"info\", \"pod_url.dashboard_url.empty\", \"No dashboard URL provided for host derivation.\"));\n }\n const fromDiscovery = await discoverAndBackfillPodUrl();\n if (fromDiscovery) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.discovery\", \"Resolved pod URL from on-disk discovery.\"));\n return { podUrl: fromDiscovery, source: \"discovery\", diagnostics };\n }\n diagnostics.push(diagnostic(\"info\", \"pod_url.discovery.empty\", \"On-disk discovery did not find a pod URL.\"));\n if (await probePort(LOOPBACK_HOST, LOOPBACK_PORT, 200)) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.loopback\", \"Resolved pod URL from loopback probe.\"));\n return { podUrl: `http://${LOOPBACK_HOST}:${LOOPBACK_PORT}`, source: \"loopback\", diagnostics };\n }\n diagnostics.push(diagnostic(\"warn\", \"pod_url.loopback.unreachable\", \"Loopback backend port is not reachable.\"));\n if (await isDockerDnsReachable()) {\n diagnostics.push(diagnostic(\"info\", \"pod_url.docker_dns\", \"Resolved pod URL from Docker DNS.\"));\n return { podUrl: DOCKER_DNS_URL, source: \"docker-dns\", diagnostics };\n }\n diagnostics.push(diagnostic(\"warn\", \"pod_url.docker_dns.unreachable\", \"Docker DNS backend host is not reachable.\"));\n diagnostics.push(diagnostic(\"error\", \"pod_url.none\", \"Unable to resolve a pod URL.\"));\n return { podUrl: \"\", source: \"none\", diagnostics };\n}\nfunction resetPodUrlCache() {\n cachedProbe = void 0;\n cachedUrl = void 0;\n cachedDerive = void 0;\n}\n\n// src/synap-overrides.ts\nimport { existsSync as existsSync4, readFileSync as readFileSync2, writeFileSync } from \"fs\";\nimport { join as join5 } from \"path\";\nvar OVERRIDE_MARKER = \"eve-managed:synap-loopback-override:v3\";\nvar LEGACY_MARKERS = [\n \"eve-managed:synap-loopback-override:v1\",\n \"eve-managed:synap-loopback-override:v2\"\n];\nvar OVERRIDE_CONTENT = `# Eve-managed docker-compose override \\u2014 DO NOT edit by hand.\n#\n# Marker: ${OVERRIDE_MARKER}\n#\n# Two things this override adds to the synap-backend compose project:\n#\n# 1. Loopback host port (127.0.0.1:${SYNAP_HOST_LOOPBACK_PORT}) \\u2014 lets the on-host Eve CLI\n# reach the backend directly without going through Traefik. Works\n# before DNS/certs are live, immune to split-DNS, sub-millisecond.\n#\n# 2. eve-network membership \\u2014 the Docker bridge that Traefik joins on\n# install. Without this, Traefik cannot resolve \"backend:4000\" via\n# Docker DNS and returns 502. With it, pod.<domain> routes correctly\n# and the backend restores connectivity automatically on every\n# container recreate (not just on the first \\`eve legs domain\\` run).\n#\n# Using the map form for \"networks\" (not the list form) so Compose v2\n# MERGES this with synap-net from the main compose file rather than\n# replacing it. The backend ends up on both networks simultaneously.\n#\n# This file is regenerated by \\`eve update synap\\` and \\`eve install\\`.\n# To opt out: delete the marker line above and Eve will leave the file\n# alone (CLI silently falls back to public URL, Traefik routing broken).\n#\n# See: synap-team-docs/content/team/devops/eve-cli-transports.mdx\n\nnetworks:\n eve-network:\n external: true\n\nservices:\n backend:\n ports:\n - \"127.0.0.1:${SYNAP_HOST_LOOPBACK_PORT}:4000\"\n networks:\n synap-net: {}\n eve-network:\n # Stable alias so OpenWebUI / Hermes / wire-ai can resolve the pod\n # backend by the canonical hostname eve-brain-synap on eve-network.\n # Standalone-compose deploys do not get the \"docker network connect\n # --alias\" step that Eve's synap-image path runs, so set it here.\n aliases:\n - eve-brain-synap\n # Pod Admin \\u2014 operator console served at pod-admin.<root>. Joins eve-network\n # under a stable alias so eve-legs-traefik can route pod-admin.<domain> by\n # name (its Traefik file provider builds upstreams from container names).\n pod-admin:\n networks:\n synap-net: {}\n eve-network:\n aliases:\n - eve-brain-pod-admin\n # Realtime \\u2014 the Socket.IO server served at pod.<root>/socket.io/ (and\n # /realtime/). Traefik's file provider routes those path prefixes to the\n # container synap-backend-realtime-1 BY NAME, so realtime must also join\n # eve-network \\u2014 otherwise Traefik can't resolve it, every socket.io\n # connection 502s, and live chat streaming / notifications silently die\n # (the browser hangs on \"Thinking\\u2026\"). v2 of this override omitted it.\n realtime:\n networks:\n synap-net: {}\n eve-network:\n aliases:\n - eve-brain-realtime\n`;\nfunction ensureSynapLoopbackOverride(deployDir) {\n const path = join5(deployDir, \"docker-compose.override.yml\");\n if (!existsSync4(path)) {\n writeFileSync(path, OVERRIDE_CONTENT, \"utf-8\");\n return { path, outcome: \"wrote\" };\n }\n let existing = \"\";\n try {\n existing = readFileSync2(path, \"utf-8\");\n } catch {\n return { path, outcome: \"kept\", reason: \"could not read existing override file\" };\n }\n const eveManaged = existing.includes(OVERRIDE_MARKER) || LEGACY_MARKERS.some((m) => existing.includes(m));\n if (eveManaged) {\n if (existing === OVERRIDE_CONTENT) {\n return { path, outcome: \"wrote\" };\n }\n writeFileSync(path, OVERRIDE_CONTENT, \"utf-8\");\n return { path, outcome: \"wrote\" };\n }\n return {\n path,\n outcome: \"kept\",\n reason: `user-owned docker-compose.override.yml present (no Eve marker) \\u2014 loopback port ${SYNAP_HOST_LOOPBACK_PORT} not added; CLI will use public URL`\n };\n}\n\n// src/image-prune.ts\nimport { execSync as execSync2 } from \"child_process\";\nfunction listRepoImages(repository) {\n const out = execSync2(\n `docker images --filter \"reference=${repository}:*\" --format \"{{.Repository}}:{{.Tag}}|{{.ID}}\" --no-trunc`,\n { encoding: \"utf-8\", stdio: [\"ignore\", \"pipe\", \"ignore\"] }\n ).trim();\n if (!out) return [];\n const entries = [];\n for (const line of out.split(\"\\n\")) {\n const [reference, id] = line.split(\"|\");\n if (!reference || !id) continue;\n if (reference.endsWith(\":<none>\")) continue;\n entries.push({ reference, id });\n }\n return entries;\n}\nfunction tryRemoveImage(reference) {\n try {\n execSync2(`docker rmi ${reference}`, { stdio: [\"ignore\", \"pipe\", \"pipe\"] });\n return true;\n } catch {\n return false;\n }\n}\nfunction pruneOldImagesForRepo(repository, keep) {\n if (keep < 1) {\n throw new Error(`pruneOldImagesForRepo: keep must be >= 1 (got ${keep})`);\n }\n const all = listRepoImages(repository);\n if (all.length <= keep) {\n return { removed: [], skipped: [], kept: all.map((e) => e.reference) };\n }\n const kept = all.slice(0, keep);\n const candidates = all.slice(keep);\n const removed = [];\n const skipped = [];\n for (const entry of candidates) {\n if (tryRemoveImage(entry.reference)) {\n removed.push(entry.reference);\n } else {\n skipped.push(entry.reference);\n }\n }\n return {\n removed,\n skipped,\n kept: kept.map((e) => e.reference)\n };\n}\n\n// src/openwebui-bootstrap.ts\nimport { randomBytes } from \"crypto\";\nimport { existsSync as existsSync5, mkdirSync, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from \"fs\";\nimport { join as join6 } from \"path\";\nvar DEFAULT_ADMIN_EMAIL = \"admin@eve.local\";\nvar DEFAULT_ADMIN_NAME = \"Eve Admin\";\nfunction generatePassword() {\n return randomBytes(32).toString(\"base64url\");\n}\nfunction parseEnv(content) {\n const values = /* @__PURE__ */ new Map();\n for (const rawLine of content.split(\"\\n\")) {\n const line = rawLine.trim();\n if (!line || line.startsWith(\"#\") || !line.includes(\"=\")) continue;\n const eq = line.indexOf(\"=\");\n values.set(line.slice(0, eq), line.slice(eq + 1));\n }\n return values;\n}\nasync function ensureOpenWebuiBootstrapSecrets(cwd = process.cwd()) {\n const current = await readEveSecrets(cwd);\n const existing = current?.builder?.openwebui;\n const adminEmail = existing?.adminEmail?.trim() || DEFAULT_ADMIN_EMAIL;\n const adminPassword = existing?.adminPassword?.trim() || generatePassword();\n const adminName = existing?.adminName?.trim() || DEFAULT_ADMIN_NAME;\n const needsWrite = adminEmail !== existing?.adminEmail || adminPassword !== existing?.adminPassword || adminName !== existing?.adminName;\n const generated = {\n adminEmail: !existing?.adminEmail,\n adminPassword: !existing?.adminPassword,\n adminName: !existing?.adminName\n };\n if (!needsWrite && current) {\n return { secrets: current, generated };\n }\n const next = await writeEveSecrets({\n builder: {\n ...current?.builder ?? {},\n openwebui: {\n ...existing ?? {},\n adminEmail,\n adminPassword,\n adminName\n }\n }\n }, cwd);\n return { secrets: next, generated };\n}\nfunction writeOpenwebuiEnv(deployDir, options) {\n mkdirSync(deployDir, { recursive: true });\n const envPath = join6(deployDir, \".env\");\n const existing = existsSync5(envPath) ? parseEnv(readFileSync3(envPath, \"utf-8\")) : /* @__PURE__ */ new Map();\n const secretKeyGenerated = !existing.get(\"WEBUI_SECRET_KEY\")?.trim();\n const managed = {\n WEBUI_NAME: options.webuiName ?? \"Eve\",\n WEBUI_URL: options.webuiUrl,\n SYNAP_API_KEY: options.synapApiKey,\n SYNAP_IS_URL: options.synapIsUrl,\n OLLAMA_BASE_URL: \"http://eve-brain-ollama:11434\",\n ENABLE_SIGNUP: \"true\",\n DEFAULT_USER_ROLE: \"pending\",\n ENABLE_PERSISTENT_CONFIG: \"true\",\n WEBUI_ADMIN_EMAIL: options.adminEmail,\n WEBUI_ADMIN_PASSWORD: options.adminPassword,\n WEBUI_ADMIN_NAME: options.adminName,\n WEBUI_SECRET_KEY: existing.get(\"WEBUI_SECRET_KEY\")?.trim() || randomBytes(32).toString(\"hex\"),\n // Preserve pinned tag across updates; default to 'latest' (stable release)\n // rather than 'main' (nightly) to avoid regressions from unvetted builds.\n WEBUI_DOCKER_TAG: existing.get(\"WEBUI_DOCKER_TAG\")?.trim() || \"latest\"\n };\n const unknown = [];\n for (const [key, value] of existing.entries()) {\n if (!(key in managed)) unknown.push(`${key}=${value}`);\n }\n const lines = [\n \"# Open WebUI \\u2014 generated by @eve/lifecycle\",\n \"# Eve rewrites managed keys on install/update. Custom keys are preserved.\",\n \"\",\n \"# Eve-managed headless bootstrap\",\n ...Object.entries(managed).map(([key, value]) => `${key}=${value}`),\n ...unknown.length ? [\"\", \"# Preserved custom values\", ...unknown] : []\n ];\n writeFileSync2(envPath, lines.join(\"\\n\") + \"\\n\", { mode: 384 });\n return { envPath, secretKeyGenerated };\n}\n\n// src/app-detector.ts\nimport { existsSync as existsSync6, readFileSync as readFileSync4 } from \"fs\";\nimport { join as join7, basename, relative, isAbsolute } from \"path\";\nimport { execSync as execSync3 } from \"child_process\";\nfunction readJSON(path) {\n try {\n return JSON.parse(readFileSync4(path, \"utf-8\"));\n } catch {\n return null;\n }\n}\nfunction detectFramework(cwd) {\n const pkg = readJSON(join7(cwd, \"package.json\"));\n const depMap = { ...pkg?.dependencies || {}, ...pkg?.devDependencies || {} };\n if (depMap[\"next\"]) return \"nextjs\";\n if (existsSync6(join7(cwd, \"next.config.ts\")) || existsSync6(join7(cwd, \"next.config.js\")) || existsSync6(join7(cwd, \"next.config.mjs\"))) return \"nextjs\";\n if (existsSync6(join7(cwd, \"index.html\")) && !depMap[\"next\"]) return \"static\";\n if (depMap[\"express\"] || depMap[\"fastify\"] || depMap[\"@nestjs/core\"]) return \"node\";\n return \"unknown\";\n}\nfunction detectBuildTool(cwd) {\n if (existsSync6(join7(cwd, \"pnpm-lock.yaml\")) || existsSync6(join7(cwd, \".pnpm-workspace.yaml\"))) return \"pnpm\";\n if (existsSync6(join7(cwd, \"yarn.lock\"))) return \"yarn\";\n return \"npm\";\n}\nfunction detectBuildCommand(pkg, framework, vercelConfig, cwd) {\n const scripts = pkg?.scripts;\n if (vercelConfig?.buildCommand) return vercelConfig.buildCommand;\n if (scripts?.build) return scripts.build;\n const tool = cwd ? detectBuildTool(cwd) : \"pnpm\";\n switch (framework) {\n case \"nextjs\":\n return `${tool} run build`;\n case \"static\":\n return `${tool} run build`;\n case \"node\":\n return `${tool} run build`;\n default:\n return `${tool} run build`;\n }\n}\nfunction detectOutputDir(framework, pkg, vercelConfig) {\n if (vercelConfig?.outputDirectory) return vercelConfig.outputDirectory;\n switch (framework) {\n case \"nextjs\":\n return \".next\";\n case \"static\":\n return \"dist\";\n case \"node\":\n return \"dist\";\n default:\n return \"dist\";\n }\n}\nfunction detectStandalone(framework, pkg, cwd) {\n if (framework !== \"nextjs\") return false;\n const nc = readJSON(\n join7(cwd, \"next.config.ts\")\n ) || readJSON(\n join7(cwd, \"next.config.js\")\n ) || readJSON(\n join7(cwd, \"next.config.mjs\")\n );\n if (!nc) return false;\n if (nc?.standalone === true) return true;\n if (nc?.output === \"standalone\") return true;\n if (existsSync6(join7(cwd, \"vercel.json\"))) {\n const vc = readJSON(join7(cwd, \"vercel.json\"));\n if (vc?.framework === \"nextjs\") return true;\n }\n return false;\n}\nfunction detectWorkspaceRoot(cwd) {\n const checkDir = isAbsolute(cwd) ? cwd : join7(process.cwd(), cwd);\n let dir = checkDir;\n while (dir && dir !== \"/\") {\n if (existsSync6(join7(dir, \".pnpm-workspace.yaml\"))) return dir;\n if (existsSync6(join7(dir, \"pnpm-workspace.yaml\"))) return dir;\n if (existsSync6(join7(dir, \"turbo.json\"))) return dir;\n dir = join7(dir, \"..\");\n }\n return null;\n}\nfunction detectWorkspaceApp(cwd, workspaceRoot) {\n if (!workspaceRoot) return null;\n const rel = relative(workspaceRoot, cwd);\n if (rel.startsWith(\"apps/\")) {\n return rel.split(\"/\")[1];\n }\n if (rel.startsWith(\"packages/@eve/\")) {\n return rel.split(\"/\")[2];\n }\n if (rel.startsWith(\"packages/\")) {\n return rel.split(\"/\")[1];\n }\n return null;\n}\nfunction detectBranch(cwd) {\n try {\n const out = execSync3(\"git rev-parse --abbrev-ref HEAD\", {\n cwd,\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"]\n }).trim();\n return out || null;\n } catch {\n return null;\n }\n}\nfunction detectGitSha(cwd) {\n try {\n const out = execSync3(\"git rev-parse HEAD\", {\n cwd,\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"]\n }).trim();\n return out || null;\n } catch {\n return null;\n }\n}\nfunction detectVercelConfig(cwd) {\n const vcPath = join7(cwd, \"vercel.json\");\n if (!existsSync6(vcPath)) return null;\n return readJSON(vcPath);\n}\nfunction detectAppConfig(cwdToInspect) {\n const cwd = cwdToInspect || process.cwd();\n const pkg = readJSON(join7(cwd, \"package.json\"));\n const framework = detectFramework(cwd);\n const buildCommand = detectBuildCommand(pkg, framework, null, cwd);\n const outputDir = detectOutputDir(framework, pkg, null);\n const standalone = detectStandalone(framework, pkg, cwd);\n const vercelConfig = detectVercelConfig(cwd);\n const finalBuildCommand = vercelConfig?.buildCommand || buildCommand;\n const finalOutputDir = vercelConfig?.outputDirectory || outputDir;\n const appName = pkg?.name || basename(cwd) || \"untitled\";\n const workspaceRoot = detectWorkspaceRoot(cwd);\n const workspaceApp = detectWorkspaceApp(cwd, workspaceRoot || cwd);\n const branch = detectBranch(cwd);\n const sha = detectGitSha(cwd);\n return {\n name: appName,\n package: pkg?.name ?? null,\n framework,\n buildCommand: finalBuildCommand,\n outputDir: finalOutputDir,\n standalone,\n vercelConfig,\n cwd,\n workspaceRoot: workspaceRoot ?? void 0,\n workspaceApp: workspaceApp ?? void 0,\n branch: branch ?? void 0\n };\n}\nfunction getAppImageName(config) {\n if (config.workspaceApp) {\n const wsName = config.workspaceRoot ? basename(config.workspaceRoot) : config.name.split(\"/\").at(-1) || config.name;\n return `${wsName}@${config.workspaceApp}`;\n }\n return config.name;\n}\n\n// src/docker-packager.ts\nimport {\n mkdirSync as mkdirSync2,\n writeFileSync as writeFileSync4,\n existsSync as existsSync7,\n rmSync,\n readdirSync as readdirSync2,\n copyFileSync,\n statSync\n} from \"fs\";\nimport { join as join8 } from \"path\";\nimport { execSync as execSync4 } from \"child_process\";\nfunction copyDir(src, dest) {\n mkdirSync2(dest, { recursive: true });\n for (const entry of readdirSync2(src)) {\n const srcPath = join8(src, entry);\n const destPath = join8(dest, entry);\n if (statSync(srcPath).isDirectory()) {\n copyDir(srcPath, destPath);\n } else {\n copyFileSync(srcPath, destPath);\n }\n }\n}\nfunction generateNextJsStandaloneDockerfile() {\n return `FROM node:20-alpine AS runner\nWORKDIR /app\n\n# Copy Next.js standalone output\nCOPY .next/standalone/ ./\nCOPY .next/static/ ./_next/static/\nCOPY public/ ./public/\n\n# Run as non-root\nRUN addgroup -S appgroup && adduser -S appuser -G appgroup\nUSER appuser\n\nEXPOSE 3000\nENV NODE_ENV=production\nENV PORT=3000\n\nCMD [\"node\", \"server.js\"]\n`;\n}\nfunction generateNextJsDockerfile() {\n return `FROM node:20-alpine AS builder\nWORKDIR /app\n\nRUN apk add --no-cache python3 make g++\nCOPY package.json pnpm-lock.yaml* ./\nRUN corepack enable && pnpm install --frozen-lockfile\n\nCOPY . .\n\nRUN corepack enable && pnpm build\n\nFROM node:20-alpine AS runner\nWORKDIR /app\n\nCOPY --from=builder /app/.next/standalone/ ./\nCOPY --from=builder /app/.next/static/ ./_next/static/\nCOPY --from=builder /app/public/ ./public/\n\nRUN addgroup -S appgroup && adduser -S appuser -G appgroup\nUSER appuser\n\nEXPOSE 3000\nENV NODE_ENV=production\nENV PORT=3000\n\nCMD [\"node\", \"server.js\"]\n`;\n}\nfunction generateStaticDockerfile() {\n return `FROM node:20-alpine AS builder\nWORKDIR /app\n\nRUN apk add --no-cache python3 make g++\nCOPY package.json pnpm-lock.yaml* ./\nRUN corepack enable && pnpm install --frozen-lockfile\n\nCOPY . .\n\nRUN corepack enable && pnpm build\n\nFROM caddy:2-alpine\nCOPY --from=builder /app/dist /site\nCOPY --from=builder /app/public /public\nCOPY Caddyfile /etc/caddy/Caddyfile 2>/dev/null || echo \"\" > /etc/caddy/Caddyfile\nCaddyfile <<EOF\n* {\n root * /site\n file_server\n try_files {path} /index.html\n}\nEOF\n`;\n}\nfunction generateNodeDockerfile() {\n return `FROM node:20-alpine AS builder\nWORKDIR /app\n\nRUN apk add --no-cache python3 make g++\nCOPY package.json pnpm-lock.yaml* ./\nRUN corepack enable && pnpm install --frozen-lockfile\n\nCOPY . .\n\nRUN corepack enable && pnpm build\n\nFROM node:20-alpine AS runner\nWORKDIR /app\n\nCOPY --from=builder /app/dist/ ./\nCOPY --from=builder /app/package.json ./\n\nRUN addgroup -S appgroup && adduser -S appuser -G appgroup\nUSER appuser\n\nEXPOSE 3000\nENV NODE_ENV=production\n\nCMD [\"node\", \"dist/index.js\"]\n`;\n}\nfunction generateGenericDockerfile() {\n return `FROM node:20-alpine\nWORKDIR /app\n\nCOPY package.json pnpm-lock.yaml* ./\nRUN corepack enable && pnpm install --frozen-lockfile\n\nCOPY . .\n\nRUN corepack enable && pnpm build\n\nEXPOSE 3000\nCMD [\"node\", \"server.js\"]\n`;\n}\nfunction generateDockerfile(config) {\n switch (config.framework) {\n case \"nextjs\":\n return config.standalone ? generateNextJsStandaloneDockerfile() : generateNextJsDockerfile();\n case \"static\":\n return generateStaticDockerfile();\n case \"node\":\n return generateNodeDockerfile();\n default:\n return generateGenericDockerfile();\n }\n}\nasync function buildAndPackageImage(config, org = \"synap-core\", ghcrToken, buildOnly = false, customTag) {\n const startTime = Date.now();\n const step = (msg) => console.log(` ${msg}`);\n console.log(\"\\n\\u25B8 Building app...\");\n step(`Running: ${config.buildCommand}`);\n const buildParts = config.buildCommand.match(/(\\S+)\\s+(.+)/s);\n if (!buildParts) {\n console.error(`\n\\u2716 Could not parse build command: ${config.buildCommand}`);\n process.exit(1);\n }\n const tool = buildParts[1];\n const script = buildParts[2];\n let cmd;\n if (tool === \"pnpm\") cmd = `pnpm ${script}`;\n else if (tool === \"npm\" || tool === \"yarn\") cmd = `${tool} ${script}`;\n else cmd = config.buildCommand;\n try {\n execSync4(cmd, {\n cwd: config.cwd,\n stdio: \"inherit\",\n timeout: 3e5\n // 5 min\n });\n } catch (err) {\n console.error(\n `\n\\u2716 Build failed: ${err instanceof Error ? err.message : String(err)}`\n );\n console.log(\"\\nTip: Try running the build command manually:\");\n console.log(` cd ${config.cwd} && ${config.buildCommand}`);\n process.exit(1);\n }\n console.log(\"\\n\\u25B8 Locating build output...\");\n const outputPath = join8(config.cwd, config.outputDir);\n const standalonePath = join8(outputPath, \"standalone\");\n const hasOutput = existsSync7(outputPath);\n const hasStandalone = existsSync7(standalonePath);\n if (!hasOutput) {\n console.error(`\n\\u2716 Build output not found at ${outputPath}`);\n console.log(\"\\nExpected output directory based on framework:\");\n console.log(` ${config.framework}: ${config.outputDir}`);\n process.exit(1);\n }\n step(`Build output found at: ${config.outputDir}`);\n console.log(\"\\n\\u25B8 Preparing Docker context...\");\n const tmpDir = join8(config.cwd, \".eve-deploy-temp\");\n if (existsSync7(tmpDir)) rmSync(tmpDir, { recursive: true, force: true });\n mkdirSync2(tmpDir, { recursive: true });\n if (config.framework === \"nextjs\" && hasStandalone) {\n step(\"Using Next.js standalone output\");\n copyDir(standalonePath, tmpDir);\n } else {\n step(`Copying ${config.outputDir} to Docker context`);\n copyDir(outputPath, tmpDir);\n }\n const publicDir = join8(config.cwd, \"public\");\n if (existsSync7(publicDir)) {\n copyDir(publicDir, join8(tmpDir, \"public\"));\n }\n const dockerfileContent = generateDockerfile(config);\n writeFileSync4(join8(tmpDir, \"Dockerfile\"), dockerfileContent);\n step(`Dockerfile generated (${dockerfileContent.split(\"\\n\").length} lines)`);\n const appImageName = config.workspaceApp ? `${config.name}@${config.workspaceApp}` : config.name;\n const branch = config.branch || \"unknown\";\n const cleanBranch = branch.replace(/[\\/\\.\\-\\s]/g, \"-\").slice(0, 50);\n let sha = \"local\";\n try {\n sha = execSync4(\"git rev-parse HEAD\", {\n cwd: config.cwd,\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"]\n }).trim();\n } catch {\n }\n const tag = customTag || `${cleanBranch}-${sha.slice(0, 7)}`;\n const fullImage = `${org}/${appImageName}:${tag}`;\n console.log(\"\\n\\u25B8 Building Docker image...\");\n step(`Image: ${fullImage}`);\n try {\n execSync4(`docker build --cache-from ${org}/${appImageName}:latest -t \"${fullImage}\" ${tmpDir}`, {\n stdio: \"inherit\",\n timeout: 6e5\n // 10 min for Docker build\n });\n execSync4(`docker tag \"${fullImage}\" ${org}/${appImageName}:latest`);\n } catch (err) {\n console.error(\n `\n\\u2716 Docker build failed: ${err instanceof Error ? err.message : String(err)}`\n );\n process.exit(1);\n }\n if (buildOnly) {\n console.log(`\n\\u2705 Docker image built: ${fullImage}`);\n console.log(` Build only \\u2014 to deploy, run: eve deploy --${config.name}`);\n } else {\n console.log(\"\\n\\u25B8 Pushing to GitHub Container Registry...\");\n if (ghcrToken) {\n try {\n execSync4(`docker login ghcr.io -u USER --password-stdin <<< '${ghcrToken}'`, {\n stdio: \"pipe\",\n timeout: 3e4\n });\n } catch {\n console.error(`\n\\u2716 GHCR login failed`);\n console.log(\"\\nTip: Run `eve login --ghcr <token>` first\");\n process.exit(1);\n }\n }\n try {\n execSync4(`docker push \"${fullImage}\"`, {\n stdio: \"inherit\",\n timeout: 6e5\n });\n } catch (err) {\n console.error(\n `\n\\u2716 Push failed: ${err instanceof Error ? err.message : String(err)}`\n );\n process.exit(1);\n }\n console.log(`\n\\u2705 Pushed to GHCR: ${fullImage}`);\n }\n if (existsSync7(tmpDir)) {\n try {\n rmSync(tmpDir, { recursive: true, force: true });\n } catch {\n }\n }\n return {\n imageName: fullImage,\n tag,\n sha: sha.slice(0, 7),\n buildTime: Date.now() - startTime\n };\n}\n\n// src/coolify-client.ts\nasync function listCoolifyApps(target) {\n const resp = await fetch(`${target.apiUrl}/api/v1/applications`, {\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n },\n signal: AbortSignal.timeout(15e3)\n });\n if (!resp.ok) {\n throw new Error(\n `Coolify API error: ${resp.status} ${resp.statusText}`\n );\n }\n const data = await resp.json();\n if (Array.isArray(data)) {\n return data;\n }\n return [];\n}\nasync function findCoolifyAppByName(target, appName) {\n const apps = await listCoolifyApps(target);\n return apps.find((app) => app.name === appName || (app.url || \"\").includes(appName)) || null;\n}\nasync function syncCoolifyAppImage(target, appName, imageName, envVars) {\n const existing = await findCoolifyAppByName(target, appName);\n if (existing) {\n try {\n const resp = await fetch(`${target.apiUrl}/api/v1/applications/${existing.id}`, {\n method: \"PATCH\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n },\n body: JSON.stringify({\n docker_image: imageName,\n ...envVars && Object.keys(envVars).length > 0 ? { envs: Object.entries(envVars).map(([k, v]) => ({ key: k, value: v })) } : {}\n })\n });\n if (!resp.ok) {\n const errText = await resp.text();\n console.warn(\n `\\u26A0 Warning: Could not update existing app ${appName}: ${errText}`\n );\n }\n return { ...existing, name: appName };\n } catch (err) {\n console.warn(`\\u26A0 Warning: PATCH failed for app ${appName}: ${err.message}`);\n }\n }\n try {\n const resp = await fetch(`${target.apiUrl}/api/v1/applications`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n },\n body: JSON.stringify({\n name: appName,\n type: \"docker_image\",\n docker_image: imageName,\n is_static: false,\n is_container_exposed_to_external: true,\n ...envVars && Object.keys(envVars).length > 0 ? { envs: Object.entries(envVars).map(([k, v]) => ({ key: k, value: v })) } : {}\n }),\n signal: AbortSignal.timeout(3e4)\n });\n if (!resp.ok) {\n const errText = await resp.text();\n throw new Error(`Failed to create app in Coolify: ${errText}`);\n }\n const data = await resp.json();\n return data;\n } catch (err) {\n console.warn(`\\u26A0 Warning: Could not create app in Coolify: ${err.message}`);\n }\n return {\n id: \"\",\n name: appName,\n status: \"new\",\n url: \"\",\n resourceType: \"docker_image\"\n };\n}\nasync function deployToCoolify(params) {\n const target = params.targets[params.targetEnv];\n const appName = params.config.workspaceApp ? `${params.config.name}@${params.config.workspaceApp}` : params.config.name;\n console.log(\"\\n\\u25B8 Deploying to %s...\", target.label);\n console.log(` App: ${appName}`);\n console.log(` Image: ${params.dockerImage}`);\n let app = null;\n try {\n const existingApp = await findCoolifyAppByName(target, appName);\n if (existingApp && !params.force) {\n const resp = await fetch(`${target.apiUrl}/api/v1/applications/${existingApp.id}/restart`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n }\n });\n if (resp.ok) {\n app = existingApp;\n } else {\n console.log(\" Creating new app in Coolify...\");\n const newAppResp = await fetch(`${target.apiUrl}/api/v1/applications`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n },\n body: JSON.stringify({\n name: appName,\n type: \"docker_image\",\n docker_image: params.dockerImage,\n is_container_exposed_to_external: true,\n envs: Object.entries(params.envVars || {}).map(([k, v]) => ({ key: k, value: v }))\n })\n });\n if (newAppResp.ok) {\n app = await newAppResp.json();\n } else {\n console.warn(` \\u26A0 Could not create app in Coolify (will deploy without)`);\n app = null;\n }\n }\n } else {\n console.log(\" Creating new app in Coolify...\");\n const resp = await fetch(`${target.apiUrl}/api/v1/applications`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n },\n body: JSON.stringify({\n name: appName,\n type: \"docker_image\",\n docker_image: params.dockerImage,\n is_container_exposed_to_external: true,\n envs: Object.entries(params.envVars || {}).map(([k, v]) => ({ key: k, value: v }))\n })\n });\n if (resp.ok) {\n app = await resp.json();\n } else {\n console.warn(` \\u26A0 Could not create app in Coolify (will deploy with image only)`);\n app = null;\n }\n }\n } catch (err) {\n console.warn(` \\u26A0 Coolify API call failed: ${err.message}`);\n app = null;\n }\n if (!app) {\n return {\n success: true,\n appName,\n image: params.dockerImage,\n env: params.targetEnv,\n message: `Image ${params.dockerImage} is ready in GHCR. Coolify API unreachable \\u2014 image will deploy manually once Coolify is available.`,\n statusMessage: \"\"\n };\n }\n try {\n await fetch(`${target.apiUrl}/api/v1/applications/${app.id}/deploy`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n Authorization: `Bearer ${target.authToken}`\n }\n });\n } catch {\n }\n const url = app.url || `${appName}-staging.thearchitech.xyz`;\n return {\n success: true,\n appName,\n image: params.dockerImage,\n env: params.targetEnv,\n appId: app.id,\n url,\n message: `Deployed to ${target.label}`,\n statusMessage: `\\u2705 Deploys to ${target.label}`\n };\n}\nfunction getCoolifyTargetsFromEnv() {\n const targets = {};\n const prodUrl = process.env.COOLIFY_PROD_URL;\n const prodToken = process.env.COOLIFY_PROD_TOKEN;\n if (prodUrl && prodToken) {\n targets.production = {\n apiUrl: prodUrl,\n authToken: prodToken,\n label: \"production (CT 103)\"\n };\n }\n const stagingUrl = process.env.COOLIFY_STAGING_URL;\n const stagingToken = process.env.COOLIFY_STAGING_TOKEN;\n if (stagingUrl && stagingToken) {\n targets.staging = {\n apiUrl: stagingUrl,\n authToken: stagingToken,\n label: \"staging (CT 104)\"\n };\n }\n return targets;\n}\nfunction detectCoolifyEnvironments(envVarOverrides) {\n const targets = detectCoolifyTargets(envVarOverrides);\n return Object.entries(targets).map(([env, target]) => ({\n env,\n target\n }));\n}\nfunction detectCoolifyTargets(overrides) {\n const result = {};\n const prodUrl = overrides?.COOLIFY_PROD_URL || process.env.COOLIFY_PROD_URL || \"\";\n const prodToken = overrides?.COOLIFY_PROD_TOKEN || process.env.COOLIFY_PROD_TOKEN || \"\";\n if (prodUrl && prodToken) {\n result.production = {\n apiUrl: prodUrl,\n authToken: prodToken,\n label: \"Production (CT 103)\"\n };\n }\n const stagingUrl = overrides?.COOLIFY_STAGING_URL || process.env.COOLIFY_STAGING_URL || \"\";\n const stagingToken = overrides?.COOLIFY_STAGING_TOKEN || process.env.COOLIFY_STAGING_TOKEN || \"\";\n if (stagingUrl && stagingToken) {\n result.staging = {\n apiUrl: stagingUrl,\n authToken: stagingToken,\n label: \"Staging (CT 104)\"\n };\n }\n return result;\n}\n\n// src/pipeline-personalities.ts\nvar PIPELINE_PERSONALITIES = [\n {\n agentType: \"context-gatherer\",\n name: \"Context Gatherer\",\n description: \"Reads the feature spec, tech stack, decision records, and codebase map. Writes a structured context document to the feature AI channel.\",\n defaultPrompt: `You are the Context Gatherer for a DevPlane pipeline.\nRead the feature description, the linked app's tech stack, decision records, best practices, and codebase map from Synap. Then write a comprehensive structured context document back to the feature's AI channel.\nOutput: markdown with sections \\u2014 Feature Summary, Tech Stack, Relevant Decision Records, Best Practices, Codebase Touch Points, Open Questions.\nBe thorough: the planner and executor depend entirely on your output.`,\n recommendedModel: \"claude-sonnet-4-6\",\n allowedTools: [\"read\", \"grep\", \"bash\"]\n },\n {\n agentType: \"planner\",\n name: \"Planner\",\n description: \"Reads the context document and generates a detailed implementation plan as a numbered task list.\",\n defaultPrompt: `You are the Planner for a DevPlane pipeline.\nRead the context document from the feature AI channel. Generate a detailed, actionable implementation plan and write it back as a Synap Proposal.\nEach task must include: description, file(s) to modify or create, implementation approach, and test coverage notes.\nBe specific \\u2014 the executor follows your plan step-by-step. Vague tasks cause failures downstream.`,\n recommendedModel: \"claude-sonnet-4-6\",\n allowedTools: [\"read\", \"grep\"]\n },\n {\n agentType: \"executor\",\n name: \"Executor\",\n description: \"Reads the approved plan and implements the code changes according to the feature spec.\",\n defaultPrompt: `You are the Executor for a DevPlane pipeline.\nRead the approved implementation plan from the feature AI channel and implement every task in order.\nRules: follow the plan exactly; if you hit a blocker write it to the AI channel and stop. Do not invent scope beyond the plan. Commit logically grouped changes with clear messages.\nWhen done: write a brief execution summary (tasks completed, files changed, any deviations) to the AI channel.`,\n recommendedModel: \"claude-opus-4-7\"\n },\n {\n agentType: \"verifier\",\n name: \"Verifier\",\n description: \"Runs the test suite, type checker, and linter. Writes a structured pass/fail report.\",\n defaultPrompt: `You are the Verifier for a DevPlane pipeline.\nRun the full quality suite (tests, type checker, linter) and write a structured verification report to the feature AI channel.\nReport sections: Test Results (pass/fail + failures), Type Check (errors if any), Lint (issues if any), Overall Verdict (PASS or FAIL), Required Fixes (if FAIL).\nDo not fix issues \\u2014 report them clearly so the human or a retry loop can address them.`,\n recommendedModel: \"claude-sonnet-4-6\",\n allowedTools: [\"bash\", \"read\"]\n },\n {\n agentType: \"deployer\",\n name: \"Deployer\",\n description: \"Triggers the Coolify staging deployment recipe and monitors until completion.\",\n defaultPrompt: `You are the Deployer for a DevPlane pipeline.\nTrigger the Coolify staging deployment recipe for the linked app, monitor until completion, then write the result back to the feature AI channel.\nInclude: deployment URL, status (success/failed), build log excerpt if failed, and recommended next steps.`,\n recommendedModel: \"claude-sonnet-4-6\",\n allowedTools: [\"bash\"]\n }\n];\nfunction resolvePipelinePersonality(agentType) {\n return PIPELINE_PERSONALITIES.find((p) => p.agentType === agentType);\n}\nvar PIPELINE_AGENT_TYPES = PIPELINE_PERSONALITIES.map((p) => p.agentType);\n\n// src/pod-providers.ts\nvar PodProviderError = class extends Error {\n constructor(message, httpStatus) {\n super(message);\n this.httpStatus = httpStatus;\n this.name = \"PodProviderError\";\n }\n httpStatus;\n};\nfunction hubUrl(podUrl, path) {\n return `${podUrl.replace(/\\/$/, \"\")}/api/hub/${path}`;\n}\nasync function raise(res, providerId) {\n const text = await res.text().catch(() => \"\");\n if (res.status === 403 && text.includes(\"providers.write\")) {\n throw new PodProviderError(\n `The pod refused this write: your Eve key does not hold the \"providers.write\" scope.\n Writing an AI provider sets the URL your pod sends every prompt to, so it is\n deliberately not part of the default agent scope bundle.\n Re-provision Eve's key with that scope, then retry.`,\n 403\n );\n }\n if (res.status === 404) {\n throw new PodProviderError(\n `Pod has no /api/hub/ai-providers route (HTTP 404) \\u2014 it is running a build older than the provider door. Update the pod.`,\n 404\n );\n }\n throw new PodProviderError(\n `Pod responded ${res.status} for provider \"${providerId}\": ${text}`,\n res.status\n );\n}\nasync function upsertPodProvider(podUrl, apiKey, body) {\n const res = await fetch(hubUrl(podUrl, \"ai-providers\"), {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(body),\n signal: AbortSignal.timeout(15e3)\n });\n if (!res.ok && res.status !== 202) await raise(res, body.providerId);\n const json = await res.json().catch(() => ({}));\n if (res.status === 202 || json.status === \"proposed\") {\n return {\n status: \"proposed\",\n providerId: body.providerId,\n proposalId: String(json.proposalId ?? \"\"),\n message: String(\n json.message ?? \"Provider change filed for approval \\u2014 it takes effect once approved.\"\n )\n };\n }\n return { status: \"applied\", providerId: body.providerId };\n}\nasync function setPodProviderEnabled(podUrl, apiKey, providerId, enabled) {\n const res = await fetch(\n hubUrl(podUrl, `ai-providers/${providerId}/${enabled ? \"enable\" : \"disable\"}`),\n {\n method: \"POST\",\n headers: { Authorization: `Bearer ${apiKey}` },\n signal: AbortSignal.timeout(15e3)\n }\n );\n if (!res.ok && res.status !== 202) await raise(res, providerId);\n const json = await res.json().catch(() => ({}));\n if (res.status === 202 || json.status === \"proposed\") {\n return {\n status: \"proposed\",\n providerId,\n proposalId: String(json.proposalId ?? \"\"),\n message: String(json.message ?? \"Filed for approval.\")\n };\n }\n return { status: \"applied\", providerId };\n}\nfunction describePodProviderResult(r) {\n return r.status === \"applied\" ? `\\u2713 Provider \"${r.providerId}\" saved on the pod and synced to the Intelligence Service.` : `\\u23F3 ${r.message}\n Provider \"${r.providerId}\" is NOT active yet \\u2014 approve proposal ${r.proposalId} to apply it.`;\n}\n\n// src/index.ts\nvar VERSION = \"0.1.0\";\nexport {\n AGENTS,\n AI_CONSUMERS,\n AI_CONSUMERS_NEEDING_RECREATE,\n AiModeSchema,\n AiProviderSchema,\n BuilderEngineSchema,\n COMPONENTS,\n ConfigManager,\n CredentialsManager,\n DEFAULT_CODE_ENGINE,\n DEFAULT_HERMES_CONFIG,\n DEFAULT_HUB_PATH,\n EVE_BACKGROUND_ACTIONS,\n EVE_DASHBOARD_SERVICE,\n EntityStateManager,\n LEGACY_CODER_ENGINE_SLUGS,\n PIPELINE_AGENT_TYPES,\n PIPELINE_PERSONALITIES,\n POD_DEPLOY_DIR_CANDIDATES,\n PodProviderError,\n SYNAP_BACKEND_CONTAINERS,\n SYNAP_BACKEND_INTERNAL_URL,\n SetupProfileKindSchema,\n SetupProfileSchema,\n UsbSetupManifestSchema,\n VERSION,\n addonComponentIds,\n agentsToProvision,\n allAgentTypes,\n allComponentIds,\n appendOperationalEvent,\n assigneeForAction,\n buildAndPackageImage,\n buildConfigDebugPayload,\n buildDiscoveryDebugPayload,\n buildEventsDebugPayload,\n buildMaterializedDebugPayload,\n buildOpenwebuiManagedConfig,\n buildOpenwebuiModelSources,\n clearCpUserSession,\n configManager,\n configStore,\n configureChannel,\n connectTraefikToEveNetwork,\n copySynapSkillIntoClaudeProject,\n createAllowedEmbedOriginChecker,\n credentialsManager,\n defaultSkillsDir,\n deployToCoolify,\n describePodProviderResult,\n detectAppConfig,\n detectCoolifyEnvironments,\n detectCoolifyTargets,\n disableChannel,\n discoverAndBackfillPodConfig,\n discoverAndBackfillPodUrl,\n discoverPodConfig,\n ensureEveSkillsLayout,\n ensureOpenWebuiBootstrapSecrets,\n ensureSecretValue,\n ensureSynapLoopbackOverride,\n entityStateManager,\n findCoolifyAppByName,\n findPodDeployDir,\n formatExtrasSummary,\n formatHardwareReport,\n generateSynapPlugin,\n getAccessUrls,\n getAdminJwt,\n getAdminJwtPostHealth,\n getAdminJwtPostHealthDetailed,\n getAdminReadyStatus,\n getAppImageName,\n getConfig,\n getConfigDetailed,\n getCoolifyTargetsFromEnv,\n getEveEventsPath,\n getEveStateHome,\n getEveStatePath,\n getServerIp,\n getSetupProfilePath,\n getStatus,\n hasAnyProvider,\n isAllowedEmbedOrigin,\n isCpSessionStale,\n isLoopbackUrl,\n isSynapLoopbackReachable,\n isValidEveBackgroundAction,\n listCoolifyApps,\n listEveBackgroundActions,\n listModelSources,\n migrateStateDirectory,\n pickPrimaryProvider,\n probeAdminAuth,\n probeHardware,\n provisionOwuiUserInSynap,\n pruneOldImagesForRepo,\n publicComponentUrl,\n pushSynapFunctionsToOpenwebui,\n pushSynapSkillsToOpenwebuiPrompts,\n readAgentKey,\n readAgentKeyOrLegacy,\n readAgentKeyOrLegacySync,\n readChannelStatus,\n readCodeEngine,\n readCpUserSession,\n readEveSecrets,\n readOperationalEvents,\n readSetupProfile,\n readUsbSetupManifest,\n reconcile,\n reconcileOpenwebuiManagedConfig,\n reconcileOpenwebuiManagedConfigViaAdmin,\n reconcileOpenwebuiManagedConfigViaAdminDetailed,\n redactSecrets,\n registerModelSource,\n registerOpenwebuiAdminApi,\n registerSynapAsOpenwebuiToolServer,\n resetPodUrlCache,\n resetSynapLoopbackProbeCache,\n resolveAgent,\n resolveComponent,\n resolveHubBaseUrl,\n resolveOpenwebuiAdminUrl,\n resolvePipelinePersonality,\n resolvePodUrl,\n resolvePodUrlDetailed,\n resolveSynapUrl,\n resolveSynapUrlOnHost,\n restartBackendContainer,\n restartHermesIfRunning,\n runStateCoherenceChecks,\n saveConfig,\n saveConfigDetailed,\n secretsPath,\n selectedIds,\n serviceComponents,\n setPodProviderEnabled,\n syncCoolifyAppImage,\n syncOpenwebuiExtras,\n syncOwuiUsersToSynap,\n syncSynapKnowledgeToOpenwebui,\n upsertAllModelSources,\n upsertPodProvider,\n validateBaseDomain,\n validateChannelCredentials,\n waitForHealth,\n waitForHealthDetailed,\n wireAllInstalledComponents,\n wireComponentAi,\n writeAgentKey,\n writeBuilderProjectEnv,\n writeClaudeCodeSettings,\n writeCodeEngine,\n writeCpUserSession,\n writeEveSecrets,\n writeHermesConfigYaml,\n writeHermesEnvFile,\n writeOpenwebuiEnv,\n writeSandboxEnvFile,\n writeSetupProfile,\n writeUsbSetupManifest\n};\n","\n/*! js-yaml 4.1.1 https://github.com/nodeca/js-yaml @license MIT */\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nvar isNothing_1 = isNothing;\nvar isObject_1 = isObject;\nvar toArray_1 = toArray;\nvar repeat_1 = repeat;\nvar isNegativeZero_1 = isNegativeZero;\nvar extend_1 = extend;\n\nvar common = {\n\tisNothing: isNothing_1,\n\tisObject: isObject_1,\n\ttoArray: toArray_1,\n\trepeat: repeat_1,\n\tisNegativeZero: isNegativeZero_1,\n\textend: extend_1\n};\n\n// YAML error class. http://stackoverflow.com/questions/8458984\n\n\nfunction formatError(exception, compact) {\n var where = '', message = exception.reason || '(unknown reason)';\n\n if (!exception.mark) return message;\n\n if (exception.mark.name) {\n where += 'in \"' + exception.mark.name + '\" ';\n }\n\n where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')';\n\n if (!compact && exception.mark.snippet) {\n where += '\\n\\n' + exception.mark.snippet;\n }\n\n return message + ' ' + where;\n}\n\n\nfunction YAMLException$1(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = formatError(this, false);\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException$1.prototype = Object.create(Error.prototype);\nYAMLException$1.prototype.constructor = YAMLException$1;\n\n\nYAMLException$1.prototype.toString = function toString(compact) {\n return this.name + ': ' + formatError(this, compact);\n};\n\n\nvar exception = YAMLException$1;\n\n// get snippet for a single line, respecting maxLength\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n var head = '';\n var tail = '';\n var maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\n if (position - lineStart > maxHalfLength) {\n head = ' ... ';\n lineStart = position - maxHalfLength + head.length;\n }\n\n if (lineEnd - position > maxHalfLength) {\n tail = ' ...';\n lineEnd = position + maxHalfLength - tail.length;\n }\n\n return {\n str: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, '→') + tail,\n pos: position - lineStart + head.length // relative position\n };\n}\n\n\nfunction padStart(string, max) {\n return common.repeat(' ', max - string.length) + string;\n}\n\n\nfunction makeSnippet(mark, options) {\n options = Object.create(options || null);\n\n if (!mark.buffer) return null;\n\n if (!options.maxLength) options.maxLength = 79;\n if (typeof options.indent !== 'number') options.indent = 1;\n if (typeof options.linesBefore !== 'number') options.linesBefore = 3;\n if (typeof options.linesAfter !== 'number') options.linesAfter = 2;\n\n var re = /\\r?\\n|\\r|\\0/g;\n var lineStarts = [ 0 ];\n var lineEnds = [];\n var match;\n var foundLineNo = -1;\n\n while ((match = re.exec(mark.buffer))) {\n lineEnds.push(match.index);\n lineStarts.push(match.index + match[0].length);\n\n if (mark.position <= match.index && foundLineNo < 0) {\n foundLineNo = lineStarts.length - 2;\n }\n }\n\n if (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\n var result = '', i, line;\n var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length;\n var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3);\n\n for (i = 1; i <= options.linesBefore; i++) {\n if (foundLineNo - i < 0) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo - i],\n lineEnds[foundLineNo - i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]),\n maxLineLength\n );\n result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n' + result;\n }\n\n line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\\n';\n\n for (i = 1; i <= options.linesAfter; i++) {\n if (foundLineNo + i >= lineEnds.length) break;\n line = getLine(\n mark.buffer,\n lineStarts[foundLineNo + i],\n lineEnds[foundLineNo + i],\n mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]),\n maxLineLength\n );\n result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) +\n ' | ' + line.str + '\\n';\n }\n\n return result.replace(/\\n$/, '');\n}\n\n\nvar snippet = makeSnippet;\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'multi',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'representName',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type$1(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new exception('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.options = options; // keep original options in case user wants to extend this type later\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.representName = options['representName'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.multi = options['multi'] || false;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new exception('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nvar type = Type$1;\n\n/*eslint-disable max-len*/\n\n\n\n\n\nfunction compileList(schema, name) {\n var result = [];\n\n schema[name].forEach(function (currentType) {\n var newIndex = result.length;\n\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag &&\n previousType.kind === currentType.kind &&\n previousType.multi === currentType.multi) {\n\n newIndex = previousIndex;\n }\n });\n\n result[newIndex] = currentType;\n });\n\n return result;\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {},\n multi: {\n scalar: [],\n sequence: [],\n mapping: [],\n fallback: []\n }\n }, index, length;\n\n function collectType(type) {\n if (type.multi) {\n result.multi[type.kind].push(type);\n result.multi['fallback'].push(type);\n } else {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema$1(definition) {\n return this.extend(definition);\n}\n\n\nSchema$1.prototype.extend = function extend(definition) {\n var implicit = [];\n var explicit = [];\n\n if (definition instanceof type) {\n // Schema.extend(type)\n explicit.push(definition);\n\n } else if (Array.isArray(definition)) {\n // Schema.extend([ type1, type2, ... ])\n explicit = explicit.concat(definition);\n\n } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) {\n // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] })\n if (definition.implicit) implicit = implicit.concat(definition.implicit);\n if (definition.explicit) explicit = explicit.concat(definition.explicit);\n\n } else {\n throw new exception('Schema.extend argument should be a Type, [ Type ], ' +\n 'or a schema definition ({ implicit: [...], explicit: [...] })');\n }\n\n implicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n if (type$1.loadKind && type$1.loadKind !== 'scalar') {\n throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n\n if (type$1.multi) {\n throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.');\n }\n });\n\n explicit.forEach(function (type$1) {\n if (!(type$1 instanceof type)) {\n throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n });\n\n var result = Object.create(Schema$1.prototype);\n\n result.implicit = (this.implicit || []).concat(implicit);\n result.explicit = (this.explicit || []).concat(explicit);\n\n result.compiledImplicit = compileList(result, 'implicit');\n result.compiledExplicit = compileList(result, 'explicit');\n result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);\n\n return result;\n};\n\n\nvar schema = Schema$1;\n\nvar str = new type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n\nvar seq = new type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n\nvar map = new type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n\nvar failsafe = new schema({\n explicit: [\n str,\n seq,\n map\n ]\n});\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nvar _null = new type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; },\n empty: function () { return ''; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nvar bool = new type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'o') {\n // base 8\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n }\n\n // base 10 (except 0)\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n return true;\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch;\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value.slice(2), 16);\n if (value[1] === 'o') return sign * parseInt(value.slice(2), 8);\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nvar int = new type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nvar float = new type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n\nvar json = failsafe.extend({\n implicit: [\n _null,\n bool,\n int,\n float\n ]\n});\n\nvar core = json;\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nvar timestamp = new type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nvar merge = new type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n\n/*eslint-disable no-bitwise*/\n\n\n\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n return new Uint8Array(result);\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(obj) {\n return Object.prototype.toString.call(obj) === '[object Uint8Array]';\n}\n\nvar binary = new type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n\nvar _hasOwnProperty$3 = Object.prototype.hasOwnProperty;\nvar _toString$2 = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString$2.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty$3.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nvar omap = new type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n\nvar _toString$1 = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString$1.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nvar pairs = new type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n\nvar _hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty$2.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nvar set = new type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n\nvar _default = core.extend({\n implicit: [\n timestamp,\n merge\n ],\n explicit: [\n binary,\n omap,\n pairs,\n set\n ]\n});\n\n/*eslint-disable max-len,no-use-before-define*/\n\n\n\n\n\n\n\nvar _hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\n// set a property of a literal object, while protecting against prototype pollution,\n// see https://github.com/nodeca/js-yaml/issues/164 for more details\nfunction setProperty(object, key, value) {\n // used for this specific key only because Object.defineProperty is slow\n if (key === '__proto__') {\n Object.defineProperty(object, key, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value\n });\n } else {\n object[key] = value;\n }\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State$1(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || _default;\n this.onWarning = options['onWarning'] || null;\n // (Hidden) Remove? makes the loader to expect YAML 1.1 documents\n // if such documents have no explicit %YAML directive\n this.legacy = options['legacy'] || false;\n\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n // position of first leading tab in the current line,\n // used to make sure there are no tabs in the indentation\n this.firstTabInLine = -1;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n var mark = {\n name: state.filename,\n buffer: state.input.slice(0, -1), // omit trailing \\0\n position: state.position,\n line: state.line,\n column: state.position - state.lineStart\n };\n\n mark.snippet = snippet(mark);\n\n return new exception(message, mark);\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty$1.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n try {\n prefix = decodeURIComponent(prefix);\n } catch (err) {\n throwError(state, 'tag prefix is malformed: ' + prefix);\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty$1.call(destination, key)) {\n setProperty(destination, key, source[key]);\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode,\n startLine, startLineStart, startPos) {\n\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty$1.call(overridableKeys, keyNode) &&\n _hasOwnProperty$1.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.lineStart = startLineStart || state.lineStart;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n\n setProperty(_result, keyNode, valueNode);\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n state.firstTabInLine = -1;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) {\n state.firstTabInLine = state.position;\n }\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _lineStart,\n _pos,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = Object.create(null),\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n } else if (ch === 0x2C/* , */) {\n // \"flow collection entries can never be completely empty\", as per YAML 1.2, section 7.4\n throwError(state, \"expected the node content, but found ','\");\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line; // Save the current line.\n _lineStart = state.lineStart;\n _pos = state.position;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _keyLine,\n _keyLineStart,\n _keyPos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = Object.create(null),\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n // there is a leading tab before this token, so it can't be a block sequence/mapping;\n // it can still be flow sequence/mapping or a scalar\n if (state.firstTabInLine !== -1) return false;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n if (!atExplicitKey && state.firstTabInLine !== -1) {\n state.position = state.firstTabInLine;\n throwError(state, 'tab characters must not be used in indentation');\n }\n\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n\n if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n // Neither implicit nor explicit notation.\n // Reading is done. Go to the epilogue.\n break;\n }\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (atExplicitKey) {\n _keyLine = state.line;\n _keyLineStart = state.lineStart;\n _keyPos = state.position;\n }\n\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n try {\n tagName = decodeURIComponent(tagName);\n } catch (err) {\n throwError(state, 'tag name is malformed: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty$1.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n typeList,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag === null) {\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n\n } else if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (state.tag !== '!') {\n if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n } else {\n // looking for multi type\n type = null;\n typeList = state.typeMap.multi[state.kind || 'fallback'];\n\n for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {\n if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {\n type = typeList[typeIndex];\n break;\n }\n }\n }\n\n if (!type) {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result, state.tag);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = Object.create(null);\n state.anchorMap = Object.create(null);\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State$1(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll$1(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load$1(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new exception('expected a single document in the stream, but found more');\n}\n\n\nvar loadAll_1 = loadAll$1;\nvar load_1 = load$1;\n\nvar loader = {\n\tloadAll: loadAll_1,\n\tload: load_1\n};\n\n/*eslint-disable no-use-before-define*/\n\n\n\n\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_BOM = 0xFEFF;\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nvar DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\\.[0-9_]*)?$/;\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new exception('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\n\nvar QUOTING_TYPE_SINGLE = 1,\n QUOTING_TYPE_DOUBLE = 2;\n\nfunction State(options) {\n this.schema = options['schema'] || _default;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n this.quotingType = options['quotingType'] === '\"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;\n this.forceQuotes = options['forceQuotes'] || false;\n this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// Including s-white (for some reason, examples doesn't match specs in this aspect)\n// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark\nfunction isNsCharOrWhitespace(c) {\n return isPrintable(c)\n && c !== CHAR_BOM\n // - b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out\n// c = flow-in ⇒ ns-plain-safe-in\n// c = block-key ⇒ ns-plain-safe-out\n// c = flow-key ⇒ ns-plain-safe-in\n// [128] ns-plain-safe-out ::= ns-char\n// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator\n// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )\n// | ( /* An ns-char preceding */ “#” )\n// | ( “:” /* Followed by an ns-plain-safe(c) */ )\nfunction isPlainSafe(c, prev, inblock) {\n var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);\n var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);\n return (\n // ns-plain-safe\n inblock ? // c = flow-in\n cIsNsCharOrWhitespace\n : cIsNsCharOrWhitespace\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n )\n // ns-plain-char\n && c !== CHAR_SHARP // false on '#'\n && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '\n || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'\n || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part\n return isPrintable(c) && c !== CHAR_BOM\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Simplified test for values allowed as the last character in plain style.\nfunction isPlainSafeLast(c) {\n // just not whitespace or colon, it will be checked to be plain character later\n return !isWhitespace(c) && c !== CHAR_COLON;\n}\n\n// Same as 'string'.codePointAt(pos), but works in older browsers.\nfunction codePointAt(string, pos) {\n var first = string.charCodeAt(pos), second;\n if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {\n second = string.charCodeAt(pos + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,\n testAmbiguousType, quotingType, forceQuotes, inblock) {\n\n var i;\n var char = 0;\n var prevChar = null;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(codePointAt(string, 0))\n && isPlainSafeLast(codePointAt(string, string.length - 1));\n\n if (singleLineOnly || forceQuotes) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n plain = plain && isPlainSafe(char, prevChar, inblock);\n prevChar = char;\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n if (plain && !forceQuotes && !testAmbiguousType(string)) {\n return STYLE_PLAIN;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n if (!forceQuotes) {\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n }\n return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey, inblock) {\n state.dump = (function () {\n if (string.length === 0) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? '\"\"' : \"''\";\n }\n if (!state.noCompatMode) {\n if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {\n return state.quotingType === QUOTING_TYPE_DOUBLE ? ('\"' + string + '\"') : (\"'\" + string + \"'\");\n }\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,\n testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {\n\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string) + '\"';\n default:\n throw new exception('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char = 0;\n var escapeSeq;\n\n for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {\n char = codePointAt(string, i);\n escapeSeq = ESCAPE_SEQUENCES[char];\n\n if (!escapeSeq && isPrintable(char)) {\n result += string[i];\n if (char >= 0x10000) result += string[i + 1];\n } else {\n result += escapeSeq || encodeHex(char);\n }\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level, value, false, false) ||\n (typeof value === 'undefined' &&\n writeNode(state, level, null, false, false))) {\n\n if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length,\n value;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n value = object[index];\n\n if (state.replacer) {\n value = state.replacer.call(object, String(index), value);\n }\n\n // Write only valid elements, put null instead of invalid elements.\n if (writeNode(state, level + 1, value, true, true, false, true) ||\n (typeof value === 'undefined' &&\n writeNode(state, level + 1, null, true, true, false, true))) {\n\n if (!compact || _result !== '') {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (_result !== '') pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new exception('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || _result !== '') {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (state.replacer) {\n objectValue = state.replacer.call(object, objectKey, objectValue);\n }\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n if (explicit) {\n if (type.multi && type.representName) {\n state.tag = type.representName(object);\n } else {\n state.tag = type.tag;\n }\n } else {\n state.tag = '?';\n }\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new exception('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey, isblockseq) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n var inblock = block;\n var tagStr;\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n if (block && (state.dump.length !== 0)) {\n if (state.noArrayIndent && !isblockseq && level > 0) {\n writeBlockSequence(state, level - 1, state.dump, compact);\n } else {\n writeBlockSequence(state, level, state.dump, compact);\n }\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey, inblock);\n }\n } else if (type === '[object Undefined]') {\n return false;\n } else {\n if (state.skipInvalid) return false;\n throw new exception('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n // Need to encode all characters except those allowed by the spec:\n //\n // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */\n // [36] ns-hex-digit ::= ns-dec-digit\n // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */\n // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */\n // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”\n // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”\n // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”\n // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”\n //\n // Also need to encode '!' because it has special meaning (end of tag prefix).\n //\n tagStr = encodeURI(\n state.tag[0] === '!' ? state.tag.slice(1) : state.tag\n ).replace(/!/g, '%21');\n\n if (state.tag[0] === '!') {\n tagStr = '!' + tagStr;\n } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {\n tagStr = '!!' + tagStr.slice(18);\n } else {\n tagStr = '!<' + tagStr + '>';\n }\n\n state.dump = tagStr + ' ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump$1(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n var value = input;\n\n if (state.replacer) {\n value = state.replacer.call({ '': value }, '', value);\n }\n\n if (writeNode(state, 0, value, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nvar dump_1 = dump$1;\n\nvar dumper = {\n\tdump: dump_1\n};\n\nfunction renamed(from, to) {\n return function () {\n throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' +\n 'Use yaml.' + to + ' instead, which is now safe by default.');\n };\n}\n\n\nvar Type = type;\nvar Schema = schema;\nvar FAILSAFE_SCHEMA = failsafe;\nvar JSON_SCHEMA = json;\nvar CORE_SCHEMA = core;\nvar DEFAULT_SCHEMA = _default;\nvar load = loader.load;\nvar loadAll = loader.loadAll;\nvar dump = dumper.dump;\nvar YAMLException = exception;\n\n// Re-export all types in case user wants to create custom schema\nvar types = {\n binary: binary,\n float: float,\n map: map,\n null: _null,\n pairs: pairs,\n set: set,\n timestamp: timestamp,\n bool: bool,\n int: int,\n merge: merge,\n omap: omap,\n seq: seq,\n str: str\n};\n\n// Removed functions from JS-YAML 3.0.x\nvar safeLoad = renamed('safeLoad', 'load');\nvar safeLoadAll = renamed('safeLoadAll', 'loadAll');\nvar safeDump = renamed('safeDump', 'dump');\n\nvar jsYaml = {\n\tType: Type,\n\tSchema: Schema,\n\tFAILSAFE_SCHEMA: FAILSAFE_SCHEMA,\n\tJSON_SCHEMA: JSON_SCHEMA,\n\tCORE_SCHEMA: CORE_SCHEMA,\n\tDEFAULT_SCHEMA: DEFAULT_SCHEMA,\n\tload: load,\n\tloadAll: loadAll,\n\tdump: dump,\n\tYAMLException: YAMLException,\n\ttypes: types,\n\tsafeLoad: safeLoad,\n\tsafeLoadAll: safeLoadAll,\n\tsafeDump: safeDump\n};\n\nexport { CORE_SCHEMA, DEFAULT_SCHEMA, FAILSAFE_SCHEMA, JSON_SCHEMA, Schema, Type, YAMLException, jsYaml as default, dump, load, loadAll, safeDump, safeLoad, safeLoadAll, types };\n"],"mappings":"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","names":["exception","map","schema","type","extend","str","string","json"]}
|