@gaunt-sloth/core 2.0.0-alpha.23 → 2.0.0-alpha.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +43 -18
  2. package/dist/config/colour.d.ts +38 -0
  3. package/dist/config/colour.js +36 -0
  4. package/dist/config/colour.js.map +1 -0
  5. package/dist/config/defaults.d.ts +6 -7
  6. package/dist/config/defaults.js +4 -8
  7. package/dist/config/defaults.js.map +1 -1
  8. package/dist/config/loader.d.ts +50 -3
  9. package/dist/config/loader.js +345 -29
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/mouse.d.ts +50 -0
  12. package/dist/config/mouse.js +44 -0
  13. package/dist/config/mouse.js.map +1 -0
  14. package/dist/config/profiles.d.ts +68 -0
  15. package/dist/config/profiles.js +93 -0
  16. package/dist/config/profiles.js.map +1 -0
  17. package/dist/config/schema.d.ts +2441 -116
  18. package/dist/config/schema.js +930 -19
  19. package/dist/config/schema.js.map +1 -1
  20. package/dist/config/shell-policy.d.ts +466 -116
  21. package/dist/config/shell-policy.js +273 -62
  22. package/dist/config/shell-policy.js.map +1 -1
  23. package/dist/config/tool-descriptions.d.ts +165 -0
  24. package/dist/config/tool-descriptions.js +229 -0
  25. package/dist/config/tool-descriptions.js.map +1 -0
  26. package/dist/config/types.d.ts +139 -6
  27. package/dist/config/types.js.map +1 -1
  28. package/dist/config.d.ts +4 -0
  29. package/dist/config.js +4 -0
  30. package/dist/config.js.map +1 -1
  31. package/dist/core/GthAbstractAgent.d.ts +85 -2
  32. package/dist/core/GthAbstractAgent.js +194 -1
  33. package/dist/core/GthAbstractAgent.js.map +1 -1
  34. package/dist/core/GthAgentRunner.d.ts +341 -58
  35. package/dist/core/GthAgentRunner.js +857 -149
  36. package/dist/core/GthAgentRunner.js.map +1 -1
  37. package/dist/core/GthLangChainAgent.d.ts +99 -0
  38. package/dist/core/GthLangChainAgent.js +388 -3
  39. package/dist/core/GthLangChainAgent.js.map +1 -1
  40. package/dist/core/approvals/annotations.d.ts +122 -0
  41. package/dist/core/approvals/annotations.js +137 -0
  42. package/dist/core/approvals/annotations.js.map +1 -0
  43. package/dist/core/approvals/grants.d.ts +216 -0
  44. package/dist/core/approvals/grants.js +469 -0
  45. package/dist/core/approvals/grants.js.map +1 -0
  46. package/dist/core/approvals/matcher.d.ts +202 -0
  47. package/dist/core/approvals/matcher.js +267 -0
  48. package/dist/core/approvals/matcher.js.map +1 -0
  49. package/dist/core/approvals/mcpSubjects.d.ts +40 -0
  50. package/dist/core/approvals/mcpSubjects.js +99 -0
  51. package/dist/core/approvals/mcpSubjects.js.map +1 -0
  52. package/dist/core/approvals/toolAnnotationSources.d.ts +105 -0
  53. package/dist/core/approvals/toolAnnotationSources.js +277 -0
  54. package/dist/core/approvals/toolAnnotationSources.js.map +1 -0
  55. package/dist/core/approvals/toolHost.d.ts +46 -0
  56. package/dist/core/approvals/toolHost.js +108 -0
  57. package/dist/core/approvals/toolHost.js.map +1 -0
  58. package/dist/core/debugCapture.d.ts +16 -0
  59. package/dist/core/debugCapture.js.map +1 -1
  60. package/dist/core/launchBanner.d.ts +120 -0
  61. package/dist/core/launchBanner.js +399 -0
  62. package/dist/core/launchBanner.js.map +1 -0
  63. package/dist/core/plainToolIndication.js +61 -35
  64. package/dist/core/plainToolIndication.js.map +1 -1
  65. package/dist/core/refusal.d.ts +53 -0
  66. package/dist/core/refusal.js +129 -0
  67. package/dist/core/refusal.js.map +1 -0
  68. package/dist/core/shell/approvalStop.d.ts +75 -0
  69. package/dist/core/shell/approvalStop.js +108 -0
  70. package/dist/core/shell/approvalStop.js.map +1 -0
  71. package/dist/core/shell/arity.d.ts +6 -0
  72. package/dist/core/shell/arity.js +20 -6
  73. package/dist/core/shell/arity.js.map +1 -1
  74. package/dist/core/shell/denylist.d.ts +11 -0
  75. package/dist/core/shell/denylist.js +37 -0
  76. package/dist/core/shell/denylist.js.map +1 -0
  77. package/dist/core/shell/normalize.d.ts +41 -1
  78. package/dist/core/shell/normalize.js +58 -4
  79. package/dist/core/shell/normalize.js.map +1 -1
  80. package/dist/core/shell/openWorld.d.ts +138 -0
  81. package/dist/core/shell/openWorld.js +523 -0
  82. package/dist/core/shell/openWorld.js.map +1 -0
  83. package/dist/core/shell/rater.d.ts +560 -0
  84. package/dist/core/shell/rater.js +895 -0
  85. package/dist/core/shell/rater.js.map +1 -0
  86. package/dist/core/shell/raterModel.d.ts +41 -0
  87. package/dist/core/shell/raterModel.js +51 -0
  88. package/dist/core/shell/raterModel.js.map +1 -0
  89. package/dist/core/shell/rejection.d.ts +66 -0
  90. package/dist/core/shell/rejection.js +38 -0
  91. package/dist/core/shell/rejection.js.map +1 -0
  92. package/dist/core/toolCallRepair/grammar.d.ts +41 -0
  93. package/dist/core/toolCallRepair/grammar.js +116 -0
  94. package/dist/core/toolCallRepair/grammar.js.map +1 -0
  95. package/dist/core/toolCallRepair/index.d.ts +2 -0
  96. package/dist/core/toolCallRepair/index.js +7 -0
  97. package/dist/core/toolCallRepair/index.js.map +1 -0
  98. package/dist/core/toolCallRepair/payload.d.ts +36 -0
  99. package/dist/core/toolCallRepair/payload.js +341 -0
  100. package/dist/core/toolCallRepair/payload.js.map +1 -0
  101. package/dist/core/toolCallRepair/promote.d.ts +45 -0
  102. package/dist/core/toolCallRepair/promote.js +90 -0
  103. package/dist/core/toolCallRepair/promote.js.map +1 -0
  104. package/dist/core/toolDisplay.d.ts +14 -1
  105. package/dist/core/toolDisplay.js +69 -12
  106. package/dist/core/toolDisplay.js.map +1 -1
  107. package/dist/core/toolOutputChannel.d.ts +33 -6
  108. package/dist/core/toolOutputChannel.js +61 -8
  109. package/dist/core/toolOutputChannel.js.map +1 -1
  110. package/dist/core/types.d.ts +71 -9
  111. package/dist/core/types.js.map +1 -1
  112. package/dist/providers/geminiSchemaSanitizer.d.ts +6 -3
  113. package/dist/providers/geminiSchemaSanitizer.js +152 -6
  114. package/dist/providers/geminiSchemaSanitizer.js.map +1 -1
  115. package/dist/providers/modelDiscovery.d.ts +18 -4
  116. package/dist/providers/modelDiscovery.js +67 -17
  117. package/dist/providers/modelDiscovery.js.map +1 -1
  118. package/dist/providers/openai.js +34 -0
  119. package/dist/providers/openai.js.map +1 -1
  120. package/dist/runtime/askStructured.d.ts +8 -7
  121. package/dist/runtime/askStructured.js +8 -7
  122. package/dist/runtime/askStructured.js.map +1 -1
  123. package/dist/runtime/conversation.js +89 -76
  124. package/dist/runtime/conversation.js.map +1 -1
  125. package/dist/runtime/singleShot.js +71 -60
  126. package/dist/runtime/singleShot.js.map +1 -1
  127. package/dist/utils/ProgressIndicator.d.ts +21 -0
  128. package/dist/utils/ProgressIndicator.js +30 -3
  129. package/dist/utils/ProgressIndicator.js.map +1 -1
  130. package/dist/utils/consoleUtils.d.ts +30 -0
  131. package/dist/utils/consoleUtils.js +27 -2
  132. package/dist/utils/consoleUtils.js.map +1 -1
  133. package/dist/utils/crashHandler.d.ts +87 -0
  134. package/dist/utils/crashHandler.js +128 -0
  135. package/dist/utils/crashHandler.js.map +1 -0
  136. package/dist/utils/debugDump.d.ts +58 -0
  137. package/dist/utils/debugDump.js +149 -15
  138. package/dist/utils/debugDump.js.map +1 -1
  139. package/dist/utils/llmUtils.d.ts +22 -8
  140. package/dist/utils/llmUtils.js +48 -8
  141. package/dist/utils/llmUtils.js.map +1 -1
  142. package/dist/utils/redactSecrets.js +68 -20
  143. package/dist/utils/redactSecrets.js.map +1 -1
  144. package/dist/utils/systemUtils.d.ts +17 -0
  145. package/dist/utils/systemUtils.js +17 -0
  146. package/dist/utils/systemUtils.js.map +1 -1
  147. package/package.json +5 -2
  148. package/schema/gsloth-config.schema.json +1484 -466
  149. package/dist/core/shell/allowlist.d.ts +0 -75
  150. package/dist/core/shell/allowlist.js +0 -187
  151. package/dist/core/shell/allowlist.js.map +0 -1
  152. package/dist/core/shell/judge.d.ts +0 -161
  153. package/dist/core/shell/judge.js +0 -261
  154. package/dist/core/shell/judge.js.map +0 -1
@@ -7,11 +7,13 @@
7
7
  import { GSLOTH_DIR, GSLOTH_SETTINGS_DIR, USER_PROJECT_CONFIG_JS, USER_PROJECT_CONFIG_JSON, USER_PROJECT_CONFIG_JSONC, USER_PROJECT_CONFIG_MJS, USER_PROJECT_CONFIG_TS, } from '#src/constants.js';
8
8
  import { StatusLevel } from '#src/core/types.js';
9
9
  import { displayDebug, displayError, displayInfo, displayWarning, setConsoleLevel, } from '#src/utils/consoleUtils.js';
10
- import { findDeprecatedConfigIssues, findUnknownTopLevelKeys, formatConfigValidationError, formatDeprecatedConfigIssues, isRecordConfig, rawGthConfigSchema, validateRawGthConfig, } from '#src/config/schema.js';
10
+ import { findApprovalsGrammarIssues, findApprovalsRaterProfiles, findDeprecatedConfigIssues, findUnknownTopLevelKeys, formatConfigValidationError, formatDeprecatedConfigIssues, isRecordConfig, rawGthConfigSchema, unresolvedRaterProfileMessage, validateRawGthConfig, } from '#src/config/schema.js';
11
11
  import { parseJsonc } from '#src/config/jsonc.js';
12
12
  import { getGslothConfigReadPath, importExternalFile } from '#src/utils/fileUtils.js';
13
13
  import { getGlobalGslothConfigReadPath } from '#src/utils/globalConfigUtils.js';
14
- import { error, exit, getCurrentWorkDir, isTTY, setProjectDir, setUseColour, } from '#src/utils/systemUtils.js';
14
+ import { env, error, exit, getCurrentWorkDir, isStdoutTTY, isTTY, setProjectDir, setUseColour, } from '#src/utils/systemUtils.js';
15
+ import { resolveUseColour } from '#src/config/colour.js';
16
+ import { resolveUseMouse } from '#src/config/mouse.js';
15
17
  import { existsSync, readFileSync } from 'node:fs';
16
18
  import { homedir } from 'node:os';
17
19
  import { dirname, resolve } from 'node:path';
@@ -27,6 +29,10 @@ import { DEFAULT_CONFIG } from '#src/config/defaults.js';
27
29
  * {@link findDeprecatedConfigIssues} — is a HARD error naming the canonical replacement +
28
30
  * migration path, then exit. 2.0 dropped back-compat coercion, so these fail rather than
29
31
  * remap. Runs FIRST so a deprecated name never merely surfaces as an unknown-key warning.
32
+ * 1b. Approvals rule-grammar reject (EXT-71): a bare string in `allow`/`deny`/`escalate`, or a
33
+ * configured `mcpServers` key named `*`, detected by {@link findApprovalsGrammarIssues} — a
34
+ * HARD error, before the parse so its message (which shows the object form of the string the
35
+ * user wrote) is the only one they see.
30
36
  * 2. Unknown top-level keys: warn (do NOT fail) so likely typos are surfaced while
31
37
  * forward-compatible / extension keys still pass through untouched.
32
38
  * 3. Schema parse: on a genuine type mismatch on a known field, emit a friendly,
@@ -50,6 +56,16 @@ function validateRawConfigLayer(raw, sourceLabel) {
50
56
  // through into the schema parse below.
51
57
  return raw;
52
58
  }
59
+ // EXT-71 — the rule-grammar errors that must be seen BEFORE the schema parse: a bare string in
60
+ // a rule list (whose message shows the object form of that same string) and a reserved `*`
61
+ // MCP server name. Checked in the same place as the deprecated scan, and in `gth config
62
+ // validate` too, so the validator can never green-light a config a real run refuses.
63
+ const grammarIssues = findApprovalsGrammarIssues(raw);
64
+ if (grammarIssues.length > 0) {
65
+ displayError(`Invalid configuration in ${sourceLabel}:\n${formatDeprecatedConfigIssues(grammarIssues)}`);
66
+ exit(1);
67
+ return raw;
68
+ }
53
69
  const unknownKeys = findUnknownTopLevelKeys(raw);
54
70
  if (unknownKeys.length > 0) {
55
71
  displayWarning(`Unknown top-level config ${unknownKeys.length === 1 ? 'key' : 'keys'} in ${sourceLabel}: ` +
@@ -61,6 +77,23 @@ function validateRawConfigLayer(raw, sourceLabel) {
61
77
  if (!result.success) {
62
78
  displayError(`Invalid configuration in ${sourceLabel}:\n${formatConfigValidationError(result.error)}`);
63
79
  exit(1);
80
+ // Unreachable past exit(1) in production; in specs exit() is mocked, so returning here keeps
81
+ // a shape-invalid config from falling through into the profile check below.
82
+ return raw;
83
+ }
84
+ // CFG-26 — `approvals.rater` STRICT resolution (GS2-62): a named profile that does not
85
+ // resolve to a real profile config is a hard error, never a silent fallback to the main model.
86
+ // Checked HERE rather than in the zod schema on purpose — resolution needs the filesystem and
87
+ // `schema.ts` must stay pure (it also feeds `z.toJSONSchema`).
88
+ if (isRecordConfig(raw)) {
89
+ for (const ref of findApprovalsRaterProfiles(raw)) {
90
+ if (!resolveIdentityProfileConfigPath(ref.profile)) {
91
+ displayError(`Invalid configuration in ${sourceLabel}:\n` +
92
+ ` - ${ref.path}: ${unresolvedRaterProfileMessage(ref)}`);
93
+ exit(1);
94
+ return raw;
95
+ }
96
+ }
64
97
  }
65
98
  return raw;
66
99
  }
@@ -185,6 +218,14 @@ export function findProjectConfigPath(commandLineConfigOverrides) {
185
218
  }
186
219
  return undefined;
187
220
  }
221
+ /**
222
+ * CFG-26 — the read-side validator's fs-backed hook, so `gth config validate`
223
+ * ({@link collectConfigValidationLayers}) enforces the SAME `approvals.rater` existence
224
+ * rule the loader hard-exits on. `schema.ts` stays pure; the filesystem knowledge lives here.
225
+ */
226
+ const RAW_CONFIG_VALIDATION_OPTIONS = {
227
+ resolveProfile: (profile) => resolveIdentityProfileConfigPath(profile) !== undefined,
228
+ };
188
229
  /**
189
230
  * STRICT existence check for an EXPLICITLY-named identity profile: does
190
231
  * `.gsloth/.gsloth-settings/<identityProfile>/<config>` resolve to a real config file anywhere in
@@ -286,6 +327,138 @@ async function applyGlobalConfigBase(projectRawConfig) {
286
327
  }
287
328
  return deepMerge(globalRawConfig, projectRawConfig);
288
329
  }
330
+ /**
331
+ * GS2-41 — hard cap on the `extends` chain length: a belt-and-suspenders backstop BEHIND the
332
+ * name-cycle guard. Even if a base name somehow failed to register in the visited chain, a chain
333
+ * this long is a misconfiguration and must fail fast rather than recurse without bound.
334
+ */
335
+ const MAX_EXTENDS_CHAIN_DEPTH = 50;
336
+ /**
337
+ * GS2-73 — the typed failure the `extends` traversal ({@link resolveExtendsChain}) raises on a
338
+ * cycle, a missing base, an over-deep chain, or an unreadable base. It carries the SAME clear,
339
+ * user-facing message the run path prints, so the two consumers can translate one shared failure
340
+ * into their own convention WITHOUT the traversal being forked or the checks duplicated:
341
+ * - the run path ({@link resolveConfigExtends}) → `displayError` + `exit(1)` (hard-fail a run),
342
+ * - the read path ({@link validateConfig}) → a `not-ok` layer with this message (collect, never
343
+ * `exit`), so `gth config validate` mirrors what a real run would hit (GS2-29 invariant).
344
+ */
345
+ class ConfigExtendsError extends Error {
346
+ }
347
+ /**
348
+ * GS2-41 — resolve a named profile's `extends` inheritance into a single composed raw config,
349
+ * riding the SAME GS2-1 deep-merge the config LAYERS use (NO second merge engine). When the given
350
+ * profile config declares `extends: "<base>"`, the base profile's config resolves FIRST
351
+ * (recursively — a base may itself extend another, so base-of-base resolves first), then this
352
+ * profile's own fields merge on top with last-wins semantics: the child overrides the base, nested
353
+ * objects merge, arrays REPLACE except the additive-array fields (`allowDirs`, `aiignore.patterns`
354
+ * and the three `approvals` rule lists, see {@link isAdditiveArrayField}) which accumulate
355
+ * base+child. The `extends` key itself is consumed and never leaks into the composed output.
356
+ *
357
+ * A config WITHOUT `extends` is returned UNCHANGED — every non-inheriting config (the vast
358
+ * majority) is untouched and behaves exactly as before.
359
+ *
360
+ * Composition is CONFINED to the profile-dir layer: it produces the single raw config that then
361
+ * acts as the project-file layer the global config underlays and CLI flags overlay, preserving
362
+ * GS2-33's outer precedence `CLI flags > profile (base+child composed) > global > defaults`. It is
363
+ * therefore invoked in {@link initConfig} on the loaded project/profile config BEFORE
364
+ * {@link applyGlobalConfigBase}.
365
+ *
366
+ * The base profile is discovered with {@link resolveIdentityProfileConfigPath} (the SAME strict
367
+ * up-tree profile walk `--profile` uses), so `extends` names a profile exactly as a user selects
368
+ * one; a name with no config dir is a hard, clearly-named error.
369
+ *
370
+ * CYCLE GUARD: the chain of profile NAMES is tracked (seeded with the selected profile's own name);
371
+ * because `extends` is single-valued the chain is linear, so a repeated name — `A extends B extends
372
+ * A`, or a self-extend — is an unambiguous cycle and fails fast with a clear error NAMING the cycle,
373
+ * never infinite-looping / stack-overflowing. A hard {@link MAX_EXTENDS_CHAIN_DEPTH} cap backstops
374
+ * it regardless of how the base path was derived.
375
+ *
376
+ * @param rawConfig the just-loaded, schema-validated raw config that MAY declare `extends`.
377
+ * @param profileLabel the selected profile's own name (for cycle detection + messages); undefined
378
+ * for a plain (non-profile) project config.
379
+ */
380
+ export async function resolveConfigExtends(rawConfig, profileLabel) {
381
+ try {
382
+ return await composeExtends(rawConfig, profileLabel);
383
+ }
384
+ catch (e) {
385
+ // GS2-73 — the traversal now RAISES a {@link ConfigExtendsError} rather than exiting inline, so
386
+ // the read side ({@link validateConfig}) can report the same failure without terminating. On the
387
+ // RUN path we translate it back to the original behaviour: print the clear message and exit(1).
388
+ if (e instanceof ConfigExtendsError) {
389
+ displayError(e.message);
390
+ exit(1);
391
+ // Unreachable past exit(1) in production; LOAD-BEARING under the specs' mocked exit so the
392
+ // caller never observes a silently-composed config after a cycle/missing base.
393
+ throw new Error('Unexpected error occurred.');
394
+ }
395
+ throw e;
396
+ }
397
+ }
398
+ /**
399
+ * GS2-73 — seed the `extends` chain from the selected profile's own name and run the throwing
400
+ * traversal ({@link resolveExtendsChain}). Shared by BOTH consumers so the walk and its
401
+ * cycle/missing-base checks live in ONE place: the run-path {@link resolveConfigExtends} (which
402
+ * translates a {@link ConfigExtendsError} into `displayError` + `exit`) and the read-path
403
+ * {@link validateConfig} (which records it as a not-ok layer). Propagates the typed error to its
404
+ * caller; the caller owns the reporting convention.
405
+ */
406
+ async function composeExtends(rawConfig, profileLabel) {
407
+ const seed = profileLabel?.trim();
408
+ return resolveExtendsChain(rawConfig, seed ? [seed] : []);
409
+ }
410
+ /**
411
+ * The recursive worker for {@link resolveConfigExtends}. `chain` is the ordered list of profile
412
+ * names already being resolved (the selected profile first, then each `extends` base as it is
413
+ * descended into) — used both for the name-based cycle guard and to render the cycle in the error.
414
+ *
415
+ * GS2-73 — on any hard failure (cycle, over-deep chain, missing base, unreadable base) it RAISES a
416
+ * {@link ConfigExtendsError} rather than printing + `exit`ing inline, so the same traversal serves
417
+ * both the run path and the read-side `validateConfig` (each translates the error its own way).
418
+ */
419
+ async function resolveExtendsChain(rawConfig, chain) {
420
+ const baseName = typeof rawConfig.extends === 'string' ? rawConfig.extends.trim() : undefined;
421
+ if (!baseName) {
422
+ return rawConfig;
423
+ }
424
+ // Cycle guard (name-based): a base already present in the chain we are resolving loops back on
425
+ // itself. Fail fast, naming the cycle — never recurse without bound. GS2-73 — raise the shared
426
+ // {@link ConfigExtendsError}; the caller (run path vs. `validateConfig`) owns how it is surfaced.
427
+ if (chain.includes(baseName)) {
428
+ throw new ConfigExtendsError(`Profile inheritance cycle detected: ${[...chain, baseName].join(' -> ')}. ` +
429
+ `A profile's "extends" chain must not refer back to itself.`);
430
+ }
431
+ // Depth backstop behind the name guard — a chain this long can only be a misconfiguration.
432
+ if (chain.length >= MAX_EXTENDS_CHAIN_DEPTH) {
433
+ throw new ConfigExtendsError(`Profile inheritance chain exceeds the maximum depth of ${MAX_EXTENDS_CHAIN_DEPTH}: ` +
434
+ `${[...chain, baseName].join(' -> ')}. This is almost certainly a misconfiguration.`);
435
+ }
436
+ const basePath = resolveIdentityProfileConfigPath(baseName);
437
+ if (!basePath) {
438
+ const from = chain.length > 0 ? ` (referenced from "${chain[chain.length - 1]}")` : '';
439
+ throw new ConfigExtendsError(`Profile "${baseName}" referenced by "extends"${from} was not found: no config file in ` +
440
+ `${GSLOTH_DIR}/${GSLOTH_SETTINGS_DIR}/${baseName}/ (checked ${PROJECT_CONFIG_FORMATS.join(', ')}).`);
441
+ }
442
+ let baseRaw;
443
+ try {
444
+ baseRaw = await readRawConfigAtPath(basePath);
445
+ }
446
+ catch (e) {
447
+ displayDebug(e instanceof Error ? e : String(e));
448
+ throw new ConfigExtendsError(`Failed to read base profile "${baseName}" from ${basePath}.`);
449
+ }
450
+ // Validate the base layer exactly as the project layer is validated (deprecated-shape reject,
451
+ // unknown-key warn, type-mismatch fail) so a broken base surfaces loudly rather than silently.
452
+ const validatedBase = validateRawConfigLayer(baseRaw, `${baseName} (extends base)`);
453
+ // Resolve the base's OWN extends first (base-of-base first), THEN merge this profile's delta on
454
+ // top via the existing GS2-1 deep-merge (child = source, so it wins; additive-array fields at the
455
+ // config root accumulate).
456
+ const resolvedBase = await resolveExtendsChain(validatedBase, [...chain, baseName]);
457
+ // Consume `extends` so it never leaks into the composed output, then merge child over base.
458
+ const childDelta = { ...rawConfig };
459
+ delete childDelta.extends;
460
+ return deepMerge(resolvedBase, childDelta);
461
+ }
289
462
  /**
290
463
  * ORDERING INVARIANT (GS2-11): detection ({@link hasProjectConfig}/{@link hasAnyConfig}) MUST run
291
464
  * before {@link initConfig} in a given process. Both resolve cwd-level candidates via
@@ -401,8 +574,12 @@ export async function initConfig(commandLineConfigOverrides) {
401
574
  // truth): pre-map deprecated names, warn on unknown top-level keys, and fail
402
575
  // with a friendly, path-scoped message on a genuine type mismatch.
403
576
  const projectJsonConfig = validateRawConfigLayer(parseJsonc(readFileSync(jsonConfigPath, 'utf8'), jsonConfigName), jsonConfigName);
577
+ // GS2-41 — compose profile inheritance (`extends`) WITHIN the profile-dir layer BEFORE the
578
+ // global base underlays it, so precedence stays CLI > profile(base+child) > global > defaults.
579
+ // No-op (returns the config unchanged) when there is no `extends`.
580
+ const composedProjectConfig = (await resolveConfigExtends(projectJsonConfig, commandLineConfigOverrides.identityProfile));
404
581
  // Apply global config as the base layer (project config wins on conflicts).
405
- const jsonConfig = (await applyGlobalConfigBase(projectJsonConfig));
582
+ const jsonConfig = (await applyGlobalConfigBase(composedProjectConfig));
406
583
  // If the config has an LLM with a type, create the appropriate LLM instance
407
584
  if (jsonConfig.llm && typeof jsonConfig.llm === 'object' && 'type' in jsonConfig.llm) {
408
585
  return await tryJsonConfig(jsonConfig, commandLineConfigOverrides);
@@ -463,7 +640,10 @@ async function tryModuleConfig(format, commandLineConfigOverrides, baseDir) {
463
640
  try {
464
641
  const i = await importExternalFile(configPath);
465
642
  const customConfig = validateRawConfigLayer((await i.configure()), filename);
466
- const mergedWithGlobal = await applyGlobalConfigBase(customConfig);
643
+ // GS2-41 compose profile inheritance (`extends`) before the global base underlays it
644
+ // (parity with the JSON branch); no-op when there is no `extends`.
645
+ const composedConfig = await resolveConfigExtends(customConfig, commandLineConfigOverrides.identityProfile);
646
+ const mergedWithGlobal = await applyGlobalConfigBase(composedConfig);
467
647
  return await mergeConfig(mergedWithGlobal, commandLineConfigOverrides);
468
648
  }
469
649
  catch (e) {
@@ -563,33 +743,96 @@ export async function tryJsonConfig(jsonConfig, commandLineConfigOverrides) {
563
743
  * REPLACE semantics, because those express "this is THE set" and silently unioning them across
564
744
  * global + project would surprise users.
565
745
  *
566
- * | array field | policy | rationale |
567
- * | -------------------- | -------- | ---------------------------------------------------- |
568
- * | `allowDirs` | ADDITIVE | extra sandbox roots accumulate across layers |
569
- * | `aiignore.patterns` | ADDITIVE | ignore patterns accumulate across layers |
570
- * | `allowedTools` | replace | the explicit allow-list IS the set |
571
- * | `builtInTools` | replace | the explicit tool selection IS the set |
572
- * | `tools` | replace | live tool instances; union would be surprising |
573
- * | `middleware` | replace | ordered pipeline; union would reorder/duplicate |
574
- * | `binaryFormats` | replace | the declared format policy IS the set |
575
- * | (every other array) | replace | default; preserves historical behaviour |
576
- *
577
- * NOTE: the additive fields only live at the config ROOT, so only the
578
- * `applyGlobalConfigBase(global, project)` merge can trigger them; the per-command
579
- * `deepMerge` calls start at command scope and never reach these paths.
746
+ * | array field | policy | rationale |
747
+ * | ------------------------------- | -------- | --------------------------------------------- |
748
+ * | `allowDirs` | ADDITIVE | extra sandbox roots accumulate across layers |
749
+ * | `aiignore.patterns` | ADDITIVE | ignore patterns accumulate across layers |
750
+ * | `approvals.deny`/`escalate` | ADDITIVE | see {@link isAdditiveArrayField} |
751
+ * | `approvals.allow` | replace | a PERMISSIVE list; see the same doc |
752
+ * | `allowedTools` | replace | the explicit allow-list IS the set |
753
+ * | `builtInTools` | replace | the explicit tool selection IS the set |
754
+ * | `tools` | replace | live tool instances; union would be surprising|
755
+ * | `middleware` | replace | ordered pipeline; union would reorder/duplicate|
756
+ * | `binaryFormats` | replace | the declared format policy IS the set |
757
+ * | (every other array) | replace | default; preserves historical behaviour |
758
+ *
759
+ * NOTE: these keys only live at the config ROOT, so they are triggered only by the `deepMerge`
760
+ * calls that START at the config root (path === ''). There are TWO such sites: the
761
+ * `applyGlobalConfigBase(global, project)` merge, and — as of GS2-41 — the root-level `deepMerge`
762
+ * inside {@link resolveConfigExtends} that composes an `extends` base with its child profile. The
763
+ * per-command `deepMerge` calls start at command scope and never reach these paths.
580
764
  *
581
765
  * NAMESPACE CAVEAT: these keys are config-ROOT-relative, but the per-command
582
766
  * `deepMerge(DEFAULT_CONFIG.commands.X, …)` calls also start at `path === ''`. No command
583
767
  * default carries `allowDirs`/`aiignore`, so there is no collision today — but do NOT add a
584
- * key here that could also appear as a per-command field, or it would silently become additive
585
- * inside command merges too.
768
+ * key to THIS SET that could also appear as a per-command field, or it would silently become
769
+ * additive inside command merges too. The approvals RESTRICTIVE lists are the deliberate exception
770
+ * and are therefore matched by path SHAPE ({@link isAdditiveArrayField}) rather than listed here:
771
+ * for them, additive at every scope is the rule and not an accident.
586
772
  */
587
773
  const ADDITIVE_ARRAY_FIELDS = new Set(['allowDirs', 'aiignore.patterns']);
774
+ /**
775
+ * §9.1/§11.1f — the approvals **restrictive** lists, wherever they appear. `deny` and `escalate`
776
+ * are PROHIBITIONS, and a prohibition another config layer can quietly delete is not a hardline:
777
+ * §3's "an appended entry can never perturb an existing outcome" has to hold across layers or it
778
+ * holds nowhere. So they add up rather than replace, and no layer can narrow another's.
779
+ *
780
+ * Matched by path SHAPE rather than by an exact root-relative path, because `approvals` is settable
781
+ * at the root AND per command — `commands.code.approvals.deny` has to add up across the global and
782
+ * project layers for exactly the same reason `approvals.deny` does, and listing only the root path
783
+ * would leave the identical silent loss one keystroke away.
784
+ *
785
+ * **`allow` is deliberately NOT here, and adding it would be a security regression.** It is the
786
+ * PERMISSIVE list, so it keeps the default REPLACE policy: a layer that states its own `allow`
787
+ * replaces the layer below, and one that says nothing inherits. §3.1's cost asymmetry is why the
788
+ * three lists do not share a policy — a missed allow entry escalates and a missed deny entry
789
+ * reaches the rater, but a too-broad allow entry runs, unrated and unprompted. Unioning the
790
+ * restrictive lists fails toward a prompt; unioning the permissive one fails toward an execution.
791
+ */
792
+ const APPROVAL_RESTRICTIVE_LIST_PATH = /(^|\.)approvals\.(deny|escalate)$/;
793
+ /** Whether the array at this dotted path accumulates across layers instead of being replaced. */
794
+ function isAdditiveArrayField(fieldPath) {
795
+ return ADDITIVE_ARRAY_FIELDS.has(fieldPath) || APPROVAL_RESTRICTIVE_LIST_PATH.test(fieldPath);
796
+ }
797
+ /** The `approvals` block itself, at the root or on any command. */
798
+ const APPROVALS_BLOCK_PATH = /(^|\.)approvals$/;
799
+ /**
800
+ * §9.1 — the `approvals` value is a union, and **the scalar rung is exactly sugar for
801
+ * `{ mode: <rung> }`**. Expanded at merge time so a layer that spells its rung the friendly way
802
+ * still merges field-wise: left as a string, a project config's `"approvals": "bypass"` simply
803
+ * overwrites the global's object and discards that layer's rule lists — the same silent loss
804
+ * {@link APPROVAL_RESTRICTIVE_LIST_PATH} exists to prevent, reached by a different route. It
805
+ * matters for the permissive list too, in the other direction: without the expansion a bare rung
806
+ * would silently drop the lower layer's `allow` rather than inheriting it.
807
+ */
808
+ function expandApprovalsScalar(value) {
809
+ return typeof value === 'string' ? { mode: value } : value;
810
+ }
811
+ /**
812
+ * Whether two layers' `approvals` values have to be merged FIELD-WISE rather than one replacing the
813
+ * other. True only when both layers set the key AND at least one of them is the object form — i.e.
814
+ * only when there is a field that replacement would lose.
815
+ *
816
+ * Deliberately narrow, because expanding the scalar changes the value's SHAPE: a config that is the
817
+ * only one to declare `approvals`, and two layers that both spell it as a bare rung, keep the exact
818
+ * value the user wrote, so `gth config print` and the `/config` panel do not churn for the
819
+ * overwhelmingly common cases.
820
+ */
821
+ function approvalsNeedFieldWiseMerge(sourceValue, targetValue) {
822
+ if (sourceValue === undefined || targetValue === undefined)
823
+ return false;
824
+ return typeof sourceValue === 'object' || typeof targetValue === 'object';
825
+ }
588
826
  /**
589
827
  * Deep merge two objects, with source overriding target properties.
590
828
  * Objects are merged recursively. Arrays REPLACE by default; arrays at an
591
- * {@link ADDITIVE_ARRAY_FIELDS} path are concatenated (target-first) then de-duplicated by
829
+ * {@link isAdditiveArrayField} path are concatenated (target-first) then de-duplicated by
592
830
  * value. Every other non-plain-object value is replaced by the source value.
831
+ *
832
+ * The de-duplication is by VALUE identity (a `Set`), so it removes repeated primitives and leaves
833
+ * structurally-equal objects — an approvals rule entry written in two layers — both in place. That
834
+ * is correct rather than merely tolerable: a duplicate entry cannot change a most-restrictive-wins
835
+ * outcome, and a deep-equality pass could.
593
836
  * @param target - The target object with default values (lower-precedence layer)
594
837
  * @param source - The source object with user overrides (higher-precedence layer)
595
838
  * @param path - Dotted path from the config root, used to look up the array merge policy.
@@ -601,9 +844,13 @@ function deepMerge(target, source, path = '') {
601
844
  return source;
602
845
  const result = { ...target };
603
846
  for (const key in source) {
604
- const sourceValue = source[key];
605
- const targetValue = target[key];
606
847
  const fieldPath = path ? `${path}.${key}` : key;
848
+ // §9.1 — normalize the `approvals` scalar/object union to its object form when (and only when)
849
+ // a field would otherwise be lost, so the merge below is field-wise rather than a bare string
850
+ // clobbering a block that carries the user's rule lists.
851
+ const mergeApprovalsFieldWise = APPROVALS_BLOCK_PATH.test(fieldPath) && approvalsNeedFieldWiseMerge(source[key], target[key]);
852
+ const sourceValue = mergeApprovalsFieldWise ? expandApprovalsScalar(source[key]) : source[key];
853
+ const targetValue = mergeApprovalsFieldWise ? expandApprovalsScalar(target[key]) : target[key];
607
854
  if (sourceValue &&
608
855
  typeof sourceValue === 'object' &&
609
856
  !Array.isArray(sourceValue) &&
@@ -615,7 +862,7 @@ function deepMerge(target, source, path = '') {
615
862
  }
616
863
  else if (Array.isArray(sourceValue) &&
617
864
  Array.isArray(targetValue) &&
618
- ADDITIVE_ARRAY_FIELDS.has(fieldPath)) {
865
+ isAdditiveArrayField(fieldPath)) {
619
866
  // Additive list: concat both layers (target/lower-precedence first), de-dupe by value.
620
867
  result[key] = [...new Set([...targetValue, ...sourceValue])];
621
868
  }
@@ -677,14 +924,29 @@ function resolvePrecedencePickedField(rawConfig, command, field) {
677
924
  }
678
925
  /**
679
926
  * Resolve a fully-merged {@link GthConfig} from a partial config + CLI overrides WITHOUT
680
- * any global side effects (a pure transform). It deep-merges defaults, applies CLI overrides,
681
- * resolves the numeric `consoleLevel` (warning + defaulting to INFO on an invalid value), and
682
- * computes `canInterruptInferenceWithEsc`. The process-global setters (`setUseColour` /
927
+ * any global side effects. It deep-merges defaults, applies CLI overrides, resolves the numeric
928
+ * `consoleLevel` (warning + defaulting to INFO on an invalid value), and computes
929
+ * `canInterruptInferenceWithEsc` and `useColour`. The process-global setters (`setUseColour` /
683
930
  * `setConsoleLevel`) are applied separately by {@link mergeConfig}, so this function can be
684
931
  * reasoned about and reused without touching global state.
932
+ *
933
+ * It WRITES nothing globally, but it does READ the environment: `canInterruptInferenceWithEsc`
934
+ * consults stdin's TTY status, and (CFG-30) `useColour` consults `FORCE_COLOR`, `NO_COLOR` and
935
+ * stdout's TTY status. So it is deterministic for a given environment rather than a pure function
936
+ * of its arguments — a test that pins a resolved config should declare the terminal and the colour
937
+ * environment it expects in its setup. The ladder itself is a pure helper
938
+ * ({@link resolveUseColour}) so it can be tested rung by rung without process globals.
685
939
  */
686
940
  export function resolveConfig(partialConfig, commandLineConfigOverrides) {
687
941
  const config = partialConfig;
942
+ // CFG-30 — capture whether the user set `useColour` AT ALL, while the config is still raw.
943
+ // `DEFAULT_CONFIG.useColour` is merged in below, after which an explicit `true` and the default
944
+ // `true` are the same value and rung 3 can no longer be told from rung 4. Read it here or lose it.
945
+ const explicitUseColour = config?.useColour;
946
+ // TUI-C37 — the same pre-merge capture for `useMouse`, and for the same reason: once
947
+ // `DEFAULT_CONFIG.useMouse` is merged in, "the user asked for it" and "nobody said" are the same
948
+ // value and the ladder's config rung can no longer be distinguished from its default rung.
949
+ const explicitUseMouse = config?.useMouse;
688
950
  // Deep merge command configs while preserving defaults
689
951
  // Type complexity from DEFAULT_CONFIG.commands 'as const' requires any cast for deep merge result
690
952
  const mergedCommands = {
@@ -745,6 +1007,25 @@ export function resolveConfig(partialConfig, commandLineConfigOverrides) {
745
1007
  }
746
1008
  }
747
1009
  mergedConfig.canInterruptInferenceWithEsc = mergedConfig.canInterruptInferenceWithEsc && isTTY();
1010
+ // CFG-30 — resolve colour through the four-rung ladder (FORCE_COLOR > NO_COLOR > explicit config
1011
+ // > stdout auto-detect). `useColour` is top-level only (it is not one of the
1012
+ // PRECEDENCE_PICKED_COMMAND_FIELDS), so there is no per-command variant to reconcile.
1013
+ mergedConfig.useColour = resolveUseColour({
1014
+ forceColor: env.FORCE_COLOR,
1015
+ noColor: env.NO_COLOR,
1016
+ explicitUseColour,
1017
+ stdoutIsTTY: isStdoutTTY(),
1018
+ });
1019
+ // TUI-C37 — resolve mouse through its own ladder (GTH_NO_MOUSE > explicit config > TERM >
1020
+ // TTY auto-detect). Resolved here rather than in the TUI so the answer is one field on the
1021
+ // config, the way `useColour` is, instead of a decision each surface re-takes.
1022
+ mergedConfig.useMouse = resolveUseMouse({
1023
+ noMouse: env.GTH_NO_MOUSE,
1024
+ explicitUseMouse,
1025
+ term: env.TERM,
1026
+ stdoutIsTTY: isStdoutTTY(),
1027
+ stdinIsTTY: isTTY(),
1028
+ });
748
1029
  return mergedConfig;
749
1030
  }
750
1031
  /**
@@ -871,6 +1152,12 @@ async function loadGlobalRawConfigUnvalidated() {
871
1152
  * global (no layer added) but is surfaced with a `displayWarning` — exactly as a run does (it
872
1153
  * warns the user while ignoring the broken global's value) — see {@link
873
1154
  * loadGlobalRawConfigUnvalidated}.
1155
+ *
1156
+ * GS2-73 — for the PROJECT layer it also walks the GS2-41 profile `extends` chain (via the SAME
1157
+ * {@link composeExtends}/{@link resolveExtendsChain} the run path uses), so a cycle or a missing
1158
+ * base — which fail a real run — is reported here as a not-ok layer instead of passing OK and only
1159
+ * failing at run time. The GLOBAL layer is NOT walked, mirroring the run (`resolveConfigExtends`
1160
+ * runs on the project/profile layer only).
874
1161
  */
875
1162
  export async function validateConfig(commandLineConfigOverrides) {
876
1163
  const layers = [];
@@ -879,14 +1166,43 @@ export async function validateConfig(commandLineConfigOverrides) {
879
1166
  const discovered = findProjectConfigPath(commandLineConfigOverrides);
880
1167
  if (discovered) {
881
1168
  const raw = await readRawConfigAtPath(discovered.path);
882
- layers.push({ sourceLabel: discovered.path, ...validateRawGthConfig(raw) });
1169
+ const layer = {
1170
+ sourceLabel: discovered.path,
1171
+ ...validateRawGthConfig(raw, RAW_CONFIG_VALIDATION_OPTIONS),
1172
+ };
1173
+ // GS2-73 — mirror the run's `extends` resolution. GS2-41's `resolveConfigExtends` walks the
1174
+ // profile inheritance chain and hard-fails a real run on a cycle or a missing base; the read
1175
+ // side must surface the SAME failures, else a profile whose `extends` names a missing base (or
1176
+ // forms a cycle) reports OK here yet dies at run time — the exact GS2-29 "validate mirrors the
1177
+ // layer set a run loads" divergence. Reuse the SAME traversal (via {@link composeExtends}) —
1178
+ // no forked walk — and record its typed failure as a not-ok layer instead of exiting. Gated on
1179
+ // `layer.ok` and on a string `extends`, mirroring run order (a run validates the raw shape and
1180
+ // only THEN resolves `extends`) and skipping the read + walk for the common no-`extends` config.
1181
+ if (layer.ok && typeof raw.extends === 'string') {
1182
+ try {
1183
+ await composeExtends(raw, commandLineConfigOverrides.identityProfile);
1184
+ }
1185
+ catch (e) {
1186
+ if (e instanceof ConfigExtendsError) {
1187
+ layer.ok = false;
1188
+ layer.errorMessage = e.message;
1189
+ }
1190
+ else {
1191
+ throw e;
1192
+ }
1193
+ }
1194
+ }
1195
+ layers.push(layer);
883
1196
  }
884
1197
  // Global layer next: a run ALWAYS applies it (applyGlobalConfigBase in the project path,
885
1198
  // loadGlobalRawConfig in the no-project path), so the diagnostic must validate it too — this is
886
1199
  // the layer the previous single-layer validateConfig skipped whenever a project config existed.
887
1200
  const globalRaw = await loadGlobalRawConfigUnvalidated();
888
1201
  if (globalRaw) {
889
- layers.push({ sourceLabel: globalRaw.label, ...validateRawGthConfig(globalRaw.raw) });
1202
+ layers.push({
1203
+ sourceLabel: globalRaw.label,
1204
+ ...validateRawGthConfig(globalRaw.raw, RAW_CONFIG_VALIDATION_OPTIONS),
1205
+ });
890
1206
  }
891
1207
  // Vacuous-truth guard: `every` is true on an empty array, so gate `ok` on a config existing.
892
1208
  return { found: layers.length > 0, ok: layers.length > 0 && layers.every((l) => l.ok), layers };
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EACL,KAAK,EACL,IAAI,EACJ,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,YAAY,GACb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AASzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,sBAAsB,CAAoC,GAAM,EAAE,WAAmB;IAC5F,+FAA+F;IAC/F,uFAAuF;IACvF,sFAAsF;IACtF,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,YAAY,CACV,4BAA4B,WAAW,MAAM,4BAA4B,CAAC,gBAAgB,CAAC,EAAE,CAC9F,CAAC;YACF,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,uFAAuF;YACvF,uCAAuC;YACvC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,cAAc,CACZ,4BAA4B,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,OAAO,WAAW,IAAI;gBACzF,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,cAAc;gBAC3F,8CAA8C,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,YAAY,CACV,4BAA4B,WAAW,MAAM,2BAA2B,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzF,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAAsB;IAChD,wBAAwB;IACxB,yBAAyB;IACzB,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,qBAAqB,GAAsB;IAC/C,wBAAwB;IACxB,yBAAyB;CAC1B,CAAC;AAEF;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6BAA6B,CACpC,GAAW,EACX,QAAgB,EAChB,kBAAsC;IAEtC,MAAM,eAAe,GAAG,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,eAAe;YAChC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,eAAe,EAAE,QAAQ,CAAC;YACxD,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,OAAe,EACf,QAAgB,EAChB,eAAmC;IAEnC,OAAO,OAAO,KAAK,iBAAiB,EAAE;QACpC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,CAAC;QACpD,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,QAAQ,CAAC,CAAC,oBAAoB;IAC5B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAI,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAC9B,SAAS,CAAC;QACR,MAAM,GAAG,CAAC;QACV,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACvE,MAAM;QACR,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,qBAAqB,CACnC,0BAAsD;IAEtD,IAAI,0BAA0B,CAAC,gBAAgB,EAAE,CAAC;QAChD,OAAO,UAAU,CAAC,0BAA0B,CAAC,gBAAgB,CAAC;YAC5D,CAAC,CAAC;gBACE,GAAG,EAAE,OAAO,CAAC,0BAA0B,CAAC,gBAAgB,CAAC;gBACzD,IAAI,EAAE,0BAA0B,CAAC,gBAAgB;aAClD;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,mFAAmF;IACnF,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,EAAE,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,sBAAsB,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,iBAAiB,CACjC,GAAG,EACH,QAAQ,EACR,0BAA0B,CAAC,eAAe,CAC3C,CAAC;YACF,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gCAAgC,CAAC,eAAuB;IACtE,MAAM,OAAO,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC1E,KAAK,MAAM,QAAQ,IAAI,sBAAsB,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,mFAAmF;IACnF,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,QAAQ,WAAW,CAG/E,CAAC;gBACF,OAAO,sBAAsB,CAAC,MAAM,EAAE,GAAG,QAAQ,WAAW,CAA0B,CAAC;YACzF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,cAAc,CAAC,qCAAqC,QAAQ,gBAAgB,CAAC,CAAC;gBAC9E,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,KAAK,MAAM,QAAQ,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EAAE,CAAC;QACzE,MAAM,UAAU,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC9C,OAAO,sBAAsB,CAC3B,UAAqC,EACrC,GAAG,QAAQ,WAAW,CACE,CAAC;YAC7B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,cAAc,CAAC,qCAAqC,UAAU,gBAAgB,CAAC,CAAC;gBAChF,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAClC,gBAAmB;IAEnB,MAAM,eAAe,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC,eAA6B,EAAE,gBAAgB,CAAM,CAAC;AACzE,CAAC;AAED;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,0BAAsD;IACrF,OAAO,qBAAqB,CAAC,0BAA0B,CAAC,KAAK,SAAS,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,0BAAsD;IAEtD,IAAI,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,MAAM,mBAAmB,EAAE,CAAC,KAAK,SAAS,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,0BAAsD;IAEtD,IACE,0BAA0B,CAAC,gBAAgB;QAC3C,CAAC,UAAU,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,EACxD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2BAA2B,0BAA0B,CAAC,gBAAgB,kBAAkB,CACzF,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,gGAAgG;IAChG,kGAAkG;IAClG,2FAA2F;IAC3F,sDAAsD;IACtD,aAAa,CAAC,SAAS,CAAC,CAAC;IAEzB,4FAA4F;IAC5F,8FAA8F;IAC9F,sFAAsF;IACtF,MAAM,UAAU,GAAG,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,UAAU,EAAE,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAEvD,0FAA0F;IAC1F,8FAA8F;IAC9F,2FAA2F;IAC3F,iGAAiG;IACjG,oGAAoG;IACpG,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAE/B,qFAAqF;IACrF,4FAA4F;IAC5F,4FAA4F;IAC5F,8FAA8F;IAC9F,MAAM,wBAAwB,GAC5B,UAAU,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,cAAc,GAClB,0BAA0B,CAAC,gBAAgB;QAC3C,wBAAwB;QACxB,iBAAiB,CACf,OAAO,EACP,wBAAwB,EACxB,0BAA0B,CAAC,eAAe,CAC3C,CAAC;IAEJ,8FAA8F;IAC9F,sFAAsF;IACtF,6FAA6F;IAC7F,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,2FAA2F;QAC3F,+FAA+F;QAC/F,gGAAgG;QAChG,4FAA4F;QAC5F,gGAAgG;QAChG,4FAA4F;QAC5F,MAAM,eAAe,GAAG,0BAA0B,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAC3E,IAAI,eAAe,EAAE,CAAC;YACpB,YAAY,CACV,qBAAqB,eAAe,iCAAiC;gBACnE,GAAG,UAAU,IAAI,mBAAmB,IAAI,eAAe,IAAI;gBAC3D,YAAY,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnD,CAAC;YACF,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,8FAA8F;YAC9F,4FAA4F;YAC5F,2FAA2F;YAC3F,+EAA+E;YAC/E,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACpD,IAAI,eAAe,EAAE,CAAC;YACpB,IACE,eAAe,CAAC,GAAG;gBACnB,OAAO,eAAe,CAAC,GAAG,KAAK,QAAQ;gBACvC,MAAM,IAAI,eAAe,CAAC,GAAG,EAC7B,CAAC;gBACD,uEAAuE;gBACvE,OAAO,MAAM,aAAa,CAAC,eAA+B,EAAE,0BAA0B,CAAC,CAAC;YAC1F,CAAC;YACD,YAAY,CACV,2FAA2F,CAC5F,CAAC;YACF,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,iFAAiF;YACjF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,0FAA0F;IAC1F,8EAA8E;IAC9E,IAAI,gBAAgB,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACtD,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,wBAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,6EAA6E;YAC7E,6EAA6E;YAC7E,mEAAmE;YACnE,MAAM,iBAAiB,GAAG,sBAAsB,CAC9C,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,cAAc,CAA4B,EAC3F,cAAc,CACY,CAAC;YAC7B,4EAA4E;YAC5E,MAAM,UAAU,GAAG,CAAC,MAAM,qBAAqB,CAC7C,iBAAuD,CACxD,CAA4B,CAAC;YAC9B,4EAA4E;YAC5E,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;gBACrF,OAAO,MAAM,aAAa,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,cAAc,0DAA0D,CAAC,CAAC;gBACnF,IAAI,CAAC,CAAC,CAAC,CAAC;gBACR,wCAAwC;gBACxC,iHAAiH;gBACjH,wCAAwC;gBACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,YAAY,CAAC,8BAA8B,cAAc,2BAA2B,CAAC,CAAC;YACtF,gCAAgC;YAChC,OAAO,MAAM,eAAe,CAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,OAAO,eAAe,CAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AASD;;;GAGG;AACH,MAAM,qBAAqB,GAAkC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAEjF,MAAM,sBAAsB,GAAuC;IACjE,EAAE,EAAE,sBAAsB;IAC1B,GAAG,EAAE,uBAAuB;IAC5B,EAAE,EAAE,sBAAsB;CAC3B,CAAC;AAEF,MAAM,iBAAiB,GAAuC;IAC5D,EAAE,EAAE,KAAK;IACT,GAAG,EAAE,MAAM;IACX,EAAE,EAAE,KAAK;CACV,CAAC;AAEF;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,CAC5B,MAA0B,EAC1B,0BAAsD,EACtD,OAAe;IAEf,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,UAAU,GACd,0BAA0B,CAAC,gBAAgB;QAC3C,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,0BAA0B,CAAC,eAAe,CAAC,CAAC;IACnF,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,sBAAsB,CACzC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAA4B,EAChD,QAAQ,CACT,CAAC;YACF,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC,CAAC;YACnE,OAAO,MAAM,WAAW,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,IAAI,UAAU,EAAE,CAAC;gBACf,YAAY,CAAC,8BAA8B,QAAQ,2BAA2B,CAAC,CAAC;gBAChF,gCAAgC;gBAChC,OAAO,MAAM,eAAe,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;YAChF,CAAC;YACD,YAAY,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC;YACxD,YAAY,CAAC,yEAAyE,CAAC,CAAC;YACxF,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,0CAA0C;QAC1C,OAAO,MAAM,eAAe,CAAC,UAAU,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,YAAY,CACV,qDAAqD;YACnD,GAAG,wBAAwB,KAAK,sBAAsB,QAAQ,uBAAuB,GAAG;YACxF,4BAA4B,CAC/B,CAAC;QACF,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,iHAAiH;IACjH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAwB,EACxB,0BAAsD;IAEtD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,UAAU,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACzD,yEAAyE;YACzE,MAAM,OAAO,GAAI,UAAU,CAAC,GAAiB,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,YAAY,CAAC,mCAAmC,CAAC,CAAC;gBAClD,IAAI,CAAC,CAAC,CAAC,CAAC;YACV,CAAC;YAED,kDAAkD;YAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;YACjC,IAAI,0BAA0B,CAAC,OAAO,EAAE,CAAC;gBACvC,6EAA6E;gBAC7E,SAAS,CAAC,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC;YACzD,CAAC;YACD,IAAI,0BAA0B,CAAC,KAAK,EAAE,CAAC;gBACrC,yFAAyF;gBACzF,yFAAyF;gBACzF,6DAA6D;gBAC7D,SAAS,CAAC,KAAK,GAAG,0BAA0B,CAAC,KAAK,CAAC;YACrD,CAAC;YACD,uCAAuC;YACvC,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,kBAAkB,OAAO,KAAK,CAAC,CAAC;YAClE,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAkB,CAAC;gBAC/E,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBACjF,IAAI,YAAY,CAAC,qBAAqB,EAAE,CAAC;oBACvC,OAAO,MAAM,YAAY,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACN,OAAO,MAAM,YAAY,CAAC;gBAC5B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,qBAAqB,OAAO,4CAA4C,CAAC,CAAC;gBACzF,IAAI,CAAC,CAAC,CAAC,CAAC;YACV,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,uCAAuC,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACnE,YAAY,CAAC,aAAc,UAAU,CAAC,GAAiB,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,gCAAgC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,iHAAiH;IACjH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAE/F;;;;;;;;GAQG;AACH,SAAS,SAAS,CAChB,MAAqB,EACrB,MAA8B,EAC9B,IAAI,GAAG,EAAE;IAET,IAAI,CAAC,MAAM;QAAE,OAAO,MAAW,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAW,CAAC;IAEhC,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEhD,IACE,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,mCAAmC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,EACtC,SAAS,CACqB,CAAC;QACnC,CAAC;aAAM,IACL,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,EACpC,CAAC;YACD,uFAAuF;YACvF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC,CAAgC,CAAC;QAC9F,CAAC;aAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,sEAAsE;YACtE,MAAM,CAAC,GAAG,CAAC,GAAG,WAA0C,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,gCAAgC,GAAG;IACvC,YAAY;IACZ,cAAc;IACd,cAAc;IACd,eAAe;CACP,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,SAAS,4BAA4B,CACnC,SAA6B,EAC7B,OAA6C,EAC7C,KAAwD;IAExD,MAAM,WAAW,GAAG,SAAS,CAAC,QAA+D,CAAC;IAC9F,MAAM,kBAAkB,GAAG,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,kBAAkB,KAAK,SAAS;QAAE,OAAO,kBAAkB,CAAC;IAEhE,MAAM,gBAAgB,GAAI,SAAqC,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAE5D,MAAM,iBAAiB,GAAI,cAAc,CAAC,QAAoD,CAC5F,OAAO,CACR,EAAE,CAAC,KAAK,CAAC,CAAC;IACX,IAAI,iBAAiB,KAAK,SAAS;QAAE,OAAO,iBAAiB,CAAC;IAE9D,OAAQ,cAA0C,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,aAA8F,EAC9F,0BAAsD;IAEtD,MAAM,MAAM,GAAG,aAA0B,CAAC;IAE1C,uDAAuD;IACvD,kGAAkG;IAClG,MAAM,cAAc,GAA0B;QAC5C,EAAE,EAAE,SAAS,CACX,cAAc,CAAC,QAAQ,CAAC,EAA6B,EACrD,MAAM,EAAE,QAAQ,EAAE,EAAyC,CACrD,EAAE,yDAAyD;QACnE,MAAM,EAAE,SAAS,CACf,cAAc,CAAC,QAAQ,CAAC,MAAiC,EACzD,MAAM,EAAE,QAAQ,EAAE,MAA6C,CACzD,EAAE,yDAAyD;QACnE,IAAI,EAAE,SAAS,CACb,cAAc,CAAC,QAAQ,CAAC,IAA+B,EACvD,MAAM,EAAE,QAAQ,EAAE,IAA2C,CACvD,EAAE,yDAAyD;QACnE,IAAI,EAAE,SAAS,CACb,cAAc,CAAC,QAAQ,CAAC,IAA+B,EACvD,MAAM,EAAE,QAAQ,EAAE,IAA2C,CACvD,EAAE,yDAAyD;QACnE,GAAG,EAAE,SAAS,CACZ,cAAc,CAAC,QAAQ,CAAC,GAA8B,EACtD,MAAM,EAAE,QAAQ,EAAE,GAA0C,CACtD,EAAE,yDAAyD;QACnE,IAAI,EAAE,SAAS,CACb,cAAc,CAAC,QAAQ,CAAC,IAA+B,EACvD,MAAM,EAAE,QAAQ,EAAE,IAA2C,CACvD,EAAE,yDAAyD;QACnE,GAAG,EAAE,SAAS,CACZ,cAAc,CAAC,QAAQ,CAAC,GAA8B,EACtD,MAAM,EAAE,QAAQ,EAAE,GAA0C,CACtD,EAAE,yDAAyD;KACpE,CAAC;IAEF,gFAAgF;IAChF,+FAA+F;IAC/F,6FAA6F;IAC7F,iGAAiG;IACjG,iGAAiG;IACjG,4FAA4F;IAC5F,8FAA8F;IAC9F,+FAA+F;IAC/F,MAAM,cAAc,GAAG,cAAoE,CAAC;IAC5F,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,gCAAgC,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,4BAA4B,CAC3C,MAAM,EACN,OAA+C,EAC/C,KAAK,CACN,CAAC;YACF,0FAA0F;YAC1F,+EAA+E;YAC/E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,GAAG,cAAc;QACjB,GAAG,MAAM;QACT,QAAQ,EAAE,cAAc;KACzB,CAAC;IAEF,IAAI,0BAA0B,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC7D,WAAW,CAAC,uBAAuB,0BAA0B,CAAC,eAAe,EAAE,CAAC,CAAC;QACjF,YAAY,CAAC,eAAe,GAAG,0BAA0B,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACnF,CAAC;IAED,IAAI,0BAA0B,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrD,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC;IAChE,CAAC;IAED,IAAI,0BAA0B,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC/D,YAAY,CAAC,iBAAiB,GAAG,0BAA0B,CAAC,iBAAiB,CAAC;IAChF,CAAC;IAED,2FAA2F;IAC3F,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,YAAY,CAAC,YAAY,GAAG,oBAAoB,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,cAAc,CACZ,yBAAyB,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,oBAAoB,WAAW,CAAC,IAAI,GAAG,CAClG,CAAC;YACF,YAAY,CAAC,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,YAAY,CAAC,4BAA4B,GAAG,YAAY,CAAC,4BAA4B,IAAI,KAAK,EAAE,CAAC;IAEjG,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,WAAW,CACxB,aAA8F,EAC9F,0BAAsD;IAEtD,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;IAE9E,0CAA0C;IAC1C,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAErC,6BAA6B;IAC7B,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC5C,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,sBAAsB,GAAgC;IAC1D,KAAK,EAAE,WAAW,CAAC,KAAK;IACxB,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,WAAW,CAAC,KAAK;IACxB,MAAM,EAAE,WAAW,CAAC,MAAM;CAC3B,CAAC;AAEF,SAAS,mBAAmB,CAAC,KAAsC;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,UAAU,IAAI,sBAAsB,EAAE,CAAC;YACzC,OAAO,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAiC,CAAC,CAAC;QACjE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAA4B,CAAC;IACjF,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,CAA4B,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,8BAA8B;IAG3C,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,QAAQ,WAAW,CAAC;YACrC,IAAI,CAAC;gBACH,OAAO;oBACL,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAA4B;oBACjF,KAAK;iBACN,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,cAAc,CAAC,qCAAqC,QAAQ,gBAAgB,CAAC,CAAC;gBAC9E,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EAAE,CAAC;QACzE,MAAM,UAAU,GAAG,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACtD,OAAO;oBACL,GAAG,EAAE,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,CAA4B;oBAC5D,KAAK,EAAE,GAAG,QAAQ,WAAW;iBAC9B,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,YAAY,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,cAAc,CAAC,qCAAqC,UAAU,gBAAgB,CAAC,CAAC;gBAChF,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAoCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,0BAAsD;IAEtD,MAAM,MAAM,GAAkC,EAAE,CAAC;IAEjD,6FAA6F;IAC7F,sFAAsF;IACtF,MAAM,UAAU,GAAG,qBAAqB,CAAC,0BAA0B,CAAC,CAAC;IACrE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,yFAAyF;IACzF,gGAAgG;IAChG,gGAAgG;IAChG,MAAM,SAAS,GAAG,MAAM,8BAA8B,EAAE,CAAC;IACzD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,6FAA6F;IAC7F,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AAClG,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,MAAoB,EACpB,GAAkB,EAClB,0BAAsD;IAEtD,MAAM,gBAAgB,GAAuB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;IAC/D,4FAA4F;IAC5F,+FAA+F;IAC/F,yFAAyF;IACzF,kGAAkG;IAClG,MAAM,iBAAiB,GAAuB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;IAC/D,OAAO,MAAM,WAAW,CACtB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,EACvD,0BAA0B,CAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}