@unbrained/pm-cli 2026.5.1 → 2026.5.3-5

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 (265) hide show
  1. package/AGENTS.md +8 -1
  2. package/CHANGELOG.md +73 -4
  3. package/CONTRIBUTING.md +11 -5
  4. package/PRD.md +17 -1
  5. package/README.md +55 -1099
  6. package/SECURITY.md +6 -11
  7. package/dist/cli/bootstrap-args.d.ts +18 -0
  8. package/dist/cli/bootstrap-args.js +242 -0
  9. package/dist/cli/bootstrap-args.js.map +1 -0
  10. package/dist/cli/commander-usage.d.ts +17 -0
  11. package/dist/cli/commander-usage.js +178 -0
  12. package/dist/cli/commander-usage.js.map +1 -0
  13. package/dist/cli/commands/activity.d.ts +10 -0
  14. package/dist/cli/commands/activity.js +14 -10
  15. package/dist/cli/commands/activity.js.map +1 -1
  16. package/dist/cli/commands/aggregate.js.map +1 -1
  17. package/dist/cli/commands/append.js.map +1 -1
  18. package/dist/cli/commands/calendar.js +19 -34
  19. package/dist/cli/commands/calendar.js.map +1 -1
  20. package/dist/cli/commands/claim.js.map +1 -1
  21. package/dist/cli/commands/close.js.map +1 -1
  22. package/dist/cli/commands/comments-audit.js.map +1 -1
  23. package/dist/cli/commands/comments.js +1 -9
  24. package/dist/cli/commands/comments.js.map +1 -1
  25. package/dist/cli/commands/completion.js.map +1 -1
  26. package/dist/cli/commands/config.d.ts +21 -3
  27. package/dist/cli/commands/config.js +118 -2
  28. package/dist/cli/commands/config.js.map +1 -1
  29. package/dist/cli/commands/context.d.ts +90 -1
  30. package/dist/cli/commands/context.js +496 -12
  31. package/dist/cli/commands/context.js.map +1 -1
  32. package/dist/cli/commands/contracts.js.map +1 -1
  33. package/dist/cli/commands/create.js +2 -2
  34. package/dist/cli/commands/create.js.map +1 -1
  35. package/dist/cli/commands/dedupe-audit.js +2 -11
  36. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  37. package/dist/cli/commands/delete.js.map +1 -1
  38. package/dist/cli/commands/deps.js.map +1 -1
  39. package/dist/cli/commands/docs.js.map +1 -1
  40. package/dist/cli/commands/extension.js.map +1 -1
  41. package/dist/cli/commands/files.js +14 -2
  42. package/dist/cli/commands/files.js.map +1 -1
  43. package/dist/cli/commands/gc.js.map +1 -1
  44. package/dist/cli/commands/get.js.map +1 -1
  45. package/dist/cli/commands/health.js +16 -12
  46. package/dist/cli/commands/health.js.map +1 -1
  47. package/dist/cli/commands/history.js +1 -9
  48. package/dist/cli/commands/history.js.map +1 -1
  49. package/dist/cli/commands/index.js.map +1 -1
  50. package/dist/cli/commands/init.js.map +1 -1
  51. package/dist/cli/commands/learnings.js +1 -9
  52. package/dist/cli/commands/learnings.js.map +1 -1
  53. package/dist/cli/commands/list.d.ts +1 -0
  54. package/dist/cli/commands/list.js +13 -31
  55. package/dist/cli/commands/list.js.map +1 -1
  56. package/dist/cli/commands/normalize.js +14 -23
  57. package/dist/cli/commands/normalize.js.map +1 -1
  58. package/dist/cli/commands/notes.js +1 -9
  59. package/dist/cli/commands/notes.js.map +1 -1
  60. package/dist/cli/commands/reindex.js +2 -7
  61. package/dist/cli/commands/reindex.js.map +1 -1
  62. package/dist/cli/commands/restore.js.map +1 -1
  63. package/dist/cli/commands/search.js +4 -35
  64. package/dist/cli/commands/search.js.map +1 -1
  65. package/dist/cli/commands/stats.js.map +1 -1
  66. package/dist/cli/commands/templates.js.map +1 -1
  67. package/dist/cli/commands/test-all.js.map +1 -1
  68. package/dist/cli/commands/test-runs.js +1 -11
  69. package/dist/cli/commands/test-runs.js.map +1 -1
  70. package/dist/cli/commands/test.js.map +1 -1
  71. package/dist/cli/commands/update-many.js +1 -6
  72. package/dist/cli/commands/update-many.js.map +1 -1
  73. package/dist/cli/commands/update.js +2 -2
  74. package/dist/cli/commands/update.js.map +1 -1
  75. package/dist/cli/commands/validate.js +23 -18
  76. package/dist/cli/commands/validate.js.map +1 -1
  77. package/dist/cli/error-guidance.d.ts +13 -0
  78. package/dist/cli/error-guidance.js +56 -6
  79. package/dist/cli/error-guidance.js.map +1 -1
  80. package/dist/cli/extension-command-help.d.ts +48 -0
  81. package/dist/cli/extension-command-help.js +389 -0
  82. package/dist/cli/extension-command-help.js.map +1 -0
  83. package/dist/cli/extension-command-options.js.map +1 -1
  84. package/dist/cli/help-content.js +9 -3
  85. package/dist/cli/help-content.js.map +1 -1
  86. package/dist/cli/help-json-payload.d.ts +25 -0
  87. package/dist/cli/help-json-payload.js +265 -0
  88. package/dist/cli/help-json-payload.js.map +1 -0
  89. package/dist/cli/main.js +1000 -4456
  90. package/dist/cli/main.js.map +1 -1
  91. package/dist/cli/migration-gates.d.ts +22 -0
  92. package/dist/cli/migration-gates.js +146 -0
  93. package/dist/cli/migration-gates.js.map +1 -0
  94. package/dist/cli/register-list-query.d.ts +2 -0
  95. package/dist/cli/register-list-query.js +317 -0
  96. package/dist/cli/register-list-query.js.map +1 -0
  97. package/dist/cli/register-mutation.d.ts +2 -0
  98. package/dist/cli/register-mutation.js +795 -0
  99. package/dist/cli/register-mutation.js.map +1 -0
  100. package/dist/cli/register-operations.d.ts +2 -0
  101. package/dist/cli/register-operations.js +610 -0
  102. package/dist/cli/register-operations.js.map +1 -0
  103. package/dist/cli/register-setup.d.ts +2 -0
  104. package/dist/cli/register-setup.js +334 -0
  105. package/dist/cli/register-setup.js.map +1 -0
  106. package/dist/cli/registration-helpers.d.ts +53 -0
  107. package/dist/cli/registration-helpers.js +669 -0
  108. package/dist/cli/registration-helpers.js.map +1 -0
  109. package/dist/cli/shared-parsers.d.ts +6 -0
  110. package/dist/cli/shared-parsers.js +40 -0
  111. package/dist/cli/shared-parsers.js.map +1 -0
  112. package/dist/cli.d.ts +1 -1
  113. package/dist/cli.js +3 -1
  114. package/dist/cli.js.map +1 -1
  115. package/dist/core/extensions/extension-types.d.ts +605 -0
  116. package/dist/core/extensions/extension-types.js +22 -0
  117. package/dist/core/extensions/extension-types.js.map +1 -0
  118. package/dist/core/extensions/index.js.map +1 -1
  119. package/dist/core/extensions/item-fields.js.map +1 -1
  120. package/dist/core/extensions/loader.d.ts +2 -586
  121. package/dist/core/extensions/loader.js +3 -21
  122. package/dist/core/extensions/loader.js.map +1 -1
  123. package/dist/core/extensions/runtime-registrations.js.map +1 -1
  124. package/dist/core/fs/fs-utils.js.map +1 -1
  125. package/dist/core/fs/index.js.map +1 -1
  126. package/dist/core/history/history-stream-policy.js.map +1 -1
  127. package/dist/core/history/history.js.map +1 -1
  128. package/dist/core/history/index.js.map +1 -1
  129. package/dist/core/item/id.js.map +1 -1
  130. package/dist/core/item/index.js.map +1 -1
  131. package/dist/core/item/item-format.js.map +1 -1
  132. package/dist/core/item/parent-reference-policy.js.map +1 -1
  133. package/dist/core/item/parse.js +6 -0
  134. package/dist/core/item/parse.js.map +1 -1
  135. package/dist/core/item/sprint-release-format.js.map +1 -1
  136. package/dist/core/item/status.js.map +1 -1
  137. package/dist/core/item/type-registry.js.map +1 -1
  138. package/dist/core/lock/index.js.map +1 -1
  139. package/dist/core/lock/lock.js +1 -6
  140. package/dist/core/lock/lock.js.map +1 -1
  141. package/dist/core/output/command-aware.js.map +1 -1
  142. package/dist/core/output/output.js.map +1 -1
  143. package/dist/core/schema/runtime-field-filters.js.map +1 -1
  144. package/dist/core/schema/runtime-field-values.js.map +1 -1
  145. package/dist/core/schema/runtime-schema.js.map +1 -1
  146. package/dist/core/search/cache.js +1 -7
  147. package/dist/core/search/cache.js.map +1 -1
  148. package/dist/core/search/embedding-batches.js +4 -0
  149. package/dist/core/search/embedding-batches.js.map +1 -1
  150. package/dist/core/search/http-client.d.ts +29 -0
  151. package/dist/core/search/http-client.js +64 -0
  152. package/dist/core/search/http-client.js.map +1 -0
  153. package/dist/core/search/providers.d.ts +3 -13
  154. package/dist/core/search/providers.js +19 -88
  155. package/dist/core/search/providers.js.map +1 -1
  156. package/dist/core/search/semantic-defaults.js +2 -7
  157. package/dist/core/search/semantic-defaults.js.map +1 -1
  158. package/dist/core/search/vector-stores.d.ts +4 -13
  159. package/dist/core/search/vector-stores.js +40 -93
  160. package/dist/core/search/vector-stores.js.map +1 -1
  161. package/dist/core/sentry/helpers.d.ts +27 -0
  162. package/dist/core/sentry/helpers.js +171 -0
  163. package/dist/core/sentry/helpers.js.map +1 -0
  164. package/dist/core/sentry/instrument.d.ts +25 -0
  165. package/dist/core/sentry/instrument.js +204 -0
  166. package/dist/core/sentry/instrument.js.map +1 -0
  167. package/dist/core/shared/command-types.js.map +1 -1
  168. package/dist/core/shared/conflict-markers.js.map +1 -1
  169. package/dist/core/shared/constants.d.ts +3 -0
  170. package/dist/core/shared/constants.js +58 -1
  171. package/dist/core/shared/constants.js.map +1 -1
  172. package/dist/core/shared/errors.js.map +1 -1
  173. package/dist/core/shared/index.d.ts +1 -0
  174. package/dist/core/shared/index.js +1 -0
  175. package/dist/core/shared/index.js.map +1 -1
  176. package/dist/core/shared/primitives.d.ts +13 -0
  177. package/dist/core/shared/primitives.js +33 -0
  178. package/dist/core/shared/primitives.js.map +1 -0
  179. package/dist/core/shared/serialization.js.map +1 -1
  180. package/dist/core/shared/text-normalization.js.map +1 -1
  181. package/dist/core/shared/time.js.map +1 -1
  182. package/dist/core/store/front-matter-cache.d.ts +6 -0
  183. package/dist/core/store/front-matter-cache.js +150 -0
  184. package/dist/core/store/front-matter-cache.js.map +1 -0
  185. package/dist/core/store/index.js.map +1 -1
  186. package/dist/core/store/item-format-migration.js.map +1 -1
  187. package/dist/core/store/item-store.js +46 -36
  188. package/dist/core/store/item-store.js.map +1 -1
  189. package/dist/core/store/paths.js.map +1 -1
  190. package/dist/core/store/settings.js +36 -0
  191. package/dist/core/store/settings.js.map +1 -1
  192. package/dist/core/telemetry/consent.js.map +1 -1
  193. package/dist/core/telemetry/observability.d.ts +24 -0
  194. package/dist/core/telemetry/observability.js +185 -0
  195. package/dist/core/telemetry/observability.js.map +1 -0
  196. package/dist/core/telemetry/runtime.d.ts +29 -3
  197. package/dist/core/telemetry/runtime.js +337 -25
  198. package/dist/core/telemetry/runtime.js.map +1 -1
  199. package/dist/core/test/background-runs.js.map +1 -1
  200. package/dist/core/test/item-test-run-tracking.js.map +1 -1
  201. package/dist/sdk/cli-contracts.js +28 -0
  202. package/dist/sdk/cli-contracts.js.map +1 -1
  203. package/dist/sdk/index.d.ts +1 -1
  204. package/dist/sdk/index.js.map +1 -1
  205. package/dist/types/index.js.map +1 -1
  206. package/dist/types.d.ts +21 -0
  207. package/dist/types.js +11 -0
  208. package/dist/types.js.map +1 -1
  209. package/docs/AGENT_GUIDE.md +125 -0
  210. package/docs/ARCHITECTURE.md +201 -478
  211. package/docs/COMMANDS.md +209 -0
  212. package/docs/CONFIGURATION.md +146 -0
  213. package/docs/EXTENSIONS.md +146 -645
  214. package/docs/QUICKSTART.md +108 -0
  215. package/docs/README.md +70 -0
  216. package/docs/RELEASING.md +92 -50
  217. package/docs/SDK.md +127 -68
  218. package/docs/TESTING.md +125 -0
  219. package/docs/examples/starter-extension/README.md +39 -25
  220. package/package.json +24 -11
  221. package/dist/command-types.d.ts +0 -1
  222. package/dist/command-types.js +0 -2
  223. package/dist/command-types.js.map +0 -1
  224. package/dist/constants.d.ts +0 -1
  225. package/dist/constants.js +0 -2
  226. package/dist/constants.js.map +0 -1
  227. package/dist/errors.d.ts +0 -1
  228. package/dist/errors.js +0 -2
  229. package/dist/errors.js.map +0 -1
  230. package/dist/fs-utils.d.ts +0 -1
  231. package/dist/fs-utils.js +0 -2
  232. package/dist/fs-utils.js.map +0 -1
  233. package/dist/history.d.ts +0 -1
  234. package/dist/history.js +0 -2
  235. package/dist/history.js.map +0 -1
  236. package/dist/id.d.ts +0 -1
  237. package/dist/id.js +0 -2
  238. package/dist/id.js.map +0 -1
  239. package/dist/item-format.d.ts +0 -1
  240. package/dist/item-format.js +0 -2
  241. package/dist/item-format.js.map +0 -1
  242. package/dist/item-store.d.ts +0 -1
  243. package/dist/item-store.js +0 -2
  244. package/dist/item-store.js.map +0 -1
  245. package/dist/lock.d.ts +0 -1
  246. package/dist/lock.js +0 -2
  247. package/dist/lock.js.map +0 -1
  248. package/dist/output.d.ts +0 -1
  249. package/dist/output.js +0 -2
  250. package/dist/output.js.map +0 -1
  251. package/dist/parse.d.ts +0 -1
  252. package/dist/parse.js +0 -2
  253. package/dist/parse.js.map +0 -1
  254. package/dist/paths.d.ts +0 -1
  255. package/dist/paths.js +0 -2
  256. package/dist/paths.js.map +0 -1
  257. package/dist/serialization.d.ts +0 -1
  258. package/dist/serialization.js +0 -2
  259. package/dist/serialization.js.map +0 -1
  260. package/dist/settings.d.ts +0 -1
  261. package/dist/settings.js +0 -2
  262. package/dist/settings.js.map +0 -1
  263. package/dist/time.d.ts +0 -1
  264. package/dist/time.js +0 -2
  265. package/dist/time.js.map +0 -1
@@ -3,28 +3,10 @@ import path from "node:path";
3
3
  import { pathToFileURL } from "node:url";
4
4
  import { pathExists } from "../fs/fs-utils.js";
5
5
  import { resolveGlobalPmRoot } from "../store/paths.js";
6
+ import { KNOWN_EXTENSION_CAPABILITIES, EXTENSION_CAPABILITY_CONTRACT_VERSION, EXTENSION_CAPABILITY_LEGACY_ALIASES, } from "./extension-types.js";
7
+ export * from "./extension-types.js";
6
8
  const DEFAULT_EXTENSION_PRIORITY = 100;
7
- export const KNOWN_EXTENSION_CAPABILITIES = [
8
- "commands",
9
- "renderers",
10
- "hooks",
11
- "schema",
12
- "importers",
13
- "search",
14
- "parser",
15
- "preflight",
16
- "services",
17
- ];
18
- export const EXTENSION_CAPABILITY_CONTRACT_VERSION = 2;
19
- export const EXTENSION_CAPABILITY_LEGACY_ALIASES = Object.freeze({
20
- migration: "schema",
21
- validation: "schema",
22
- });
23
- export const EXTENSION_CAPABILITY_CONTRACT = Object.freeze({
24
- version: EXTENSION_CAPABILITY_CONTRACT_VERSION,
25
- capabilities: [...KNOWN_EXTENSION_CAPABILITIES],
26
- legacy_aliases: { ...EXTENSION_CAPABILITY_LEGACY_ALIASES },
27
- });
9
+ /* Types now in extension-types.ts - re-exported via `export * from "./extension-types.js"` above */
28
10
  function normalizeNames(values) {
29
11
  return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort((a, b) => a.localeCompare(b));
30
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/extensions/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIxD,MAAM,0BAA0B,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,UAAU;IACV,WAAW;IACX,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,UAAU;CACF,CAAC;AAEX,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,mCAAmC,GAAkD,MAAM,CAAC,MAAM,CAAC;IAC9G,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,QAAQ;CACrB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC;IACzD,OAAO,EAAE,qCAAqC;IAC9C,YAAY,EAAE,CAAC,GAAG,4BAA4B,CAAC;IAC/C,cAAc,EAAE,EAAE,GAAG,mCAAmC,EAAE;CAC3D,CAAC,CAAC;AAunBH,SAAS,cAAc,CAAC,MAAgB;IACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,OAAQ,4BAAkD,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,mCAAmC,CAAC,YAA+B;IAC1E,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,qCAAqC,CAAC,UAAkB;IAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,mCAAmC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;AACjE,CAAC;AAED,SAAS,6BAA6B,CAAC,eAAkC;IAIvE,MAAM,sBAAsB,GAAG,cAAc,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxG,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,MAAM,aAAa,GAA4C,EAAE,CAAC;IAClE,KAAK,MAAM,UAAU,IAAI,sBAAsB,EAAE,CAAC;QAChD,MAAM,iBAAiB,GAAG,qCAAqC,CAAC,UAAU,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE,CAAC;YACtB,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7C,aAAa,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,iBAAiB;aAC1B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC9H,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CACvD,CAAC;IACF,OAAO;QACL,YAAY,EAAE,cAAc,CAAC,oBAAoB,CAAC;QAClD,cAAc,EAAE,oBAAoB;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACtD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CACnB,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EACf,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAClB,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CACnC,CAAC;QACJ,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;AAC/C,CAAC;AAED,SAAS,+BAA+B,CAAC,UAAkB;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,WAAW,GAAG,qCAAqC,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,4BAA4B,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;YAC5B,YAAY,GAAG,QAAQ,CAAC;YACxB,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,SAAS,KAAK,IAAI,IAAI,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,SAAS,uCAAuC,CAAC,KAAqB,EAAE,IAAY,EAAE,UAAkB;IACtG,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,+BAA+B,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC;IACxE,OAAO,gCAAgC,KAAK,IAAI,IAAI,IAAI,UAAU,YAAY,OAAO,cAAc,SAAS,EAAE,CAAC;AACjH,CAAC;AAED,SAAS,2CAA2C,CAClD,KAAqB,EACrB,IAAY,EACZ,OAAyD;IAEzD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxF,OAAO,qCAAqC,KAAK,IAAI,IAAI,YAAY,YAAY,EAAE,CAAC;AACtF,CAAC;AAaD,MAAM,UAAU,sCAAsC,CACpD,OAAe;IAEf,MAAM,KAAK,GAAG,mGAAmG,CAAC,IAAI,CACpH,OAAO,CAAC,IAAI,EAAE,CACf,CAAC;IACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;IACvE,MAAM,KAAK,GAAG,QAA0B,CAAC;IACzC,MAAM,oBAAoB,GAAG,UAAU;SACpC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,qCAAqC,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,oBAAoB,GAAG,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAChF,MAAM,oBAAoB,GAAG,oBAAoB,IAAI,WAAW,IAAI,SAAS,CAAC;IAC9E,MAAM,iBAAiB,GAAG,oBAAoB;QAC5C,CAAC,CAAC,WAAW,KAAK,oBAAoB;YACpC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,eAAe;QACnB,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,KAAK;QACL,IAAI;QACJ,UAAU;QACV,oBAAoB;QACpB,2BAA2B,EAAE,qCAAqC;QAClE,oBAAoB;QACpB,iBAAiB;QACjB,mBAAmB,EAAE,WAAW,IAAI,SAAS;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0CAA0C,CAAC,OAAe;IACxE,MAAM,KAAK,GAAG,2EAA2E,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/G,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC;IAC7C,MAAM,KAAK,GAAG,QAA0B,CAAC;IACzC,MAAM,mBAAmB,GAAG,CAAC,GAAG,4BAA4B,CAAC,CAAC;IAC9D,MAAM,MAAM,GAA+C,EAAE,CAAC;IAC9D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK;YACL,IAAI;YACJ,UAAU,EAAE,KAAK;YACjB,oBAAoB,EAAE,mBAAmB;YACzC,2BAA2B,EAAE,qCAAqC;YAClE,oBAAoB,EAAE,MAAM;YAC5B,iBAAiB,EAAE,cAAc;YACjC,mBAAmB,EAAE,MAAM;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,GAA8B,CAAC;IACjD,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,GAAG,0BAA0B,CAAC;IAC1C,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC/F,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,uBAAuB,GAA4C,EAAE,CAAC;IAC1E,IAAI,cAAc,IAAI,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAC3G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;YAChH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,sBAAsB,GAAG,6BAA6B,CAAC,SAAS,CAAC,YAAwB,CAAC,CAAC;QACjG,YAAY,GAAG,sBAAsB,CAAC,YAAY,CAAC;QACnD,uBAAuB,GAAG,sBAAsB,CAAC,cAAc,CAAC;IAClE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE;QACjC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;QAC7B,QAAQ;QACR,YAAY;QACZ,yBAAyB,EAAE,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;KACpG,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAAoB,EAAE,QAAqB;IAC7E,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB,EAAE,UAAkB;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,SAAiB,EAAE,UAAkB;IACjF,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrH,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACvE,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;QACzD,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC;IACnD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC;IAClD,OAAO;QACL,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC;IACtD,OAAO;QACL,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,gBAAgB,EAAE,EAAE;QACpB,qBAAqB,EAAE,EAAE;KAC1B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,cAAsB;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;aACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,SAA6B;IACvD,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI;QAC7B,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO;QACnC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK;QAC/B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ;QACrC,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAgC;IACtD,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAsC,EACtC,iBAAuC;IAEvC,MAAM,OAAO,GAAG,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,EAAE,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAyB,EAAE,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtG,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAqB,EACrB,cAAsB,EACtB,OAAoB,EACpB,QAAqB;IAErB,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAEnE,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,KAAqB,EACrB,cAAsB,EACtB,SAAiB,EACjB,OAAoB,EACpB,QAAqB;IAErB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,UAAU,EAAE;gBACV,KAAK;gBACL,SAAS;gBACT,aAAa,EAAE,YAAY;gBAC3B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE,CAAC,8BAA8B,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9D,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAA6B,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAY,CAAC;QAC9E,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,UAAU,EAAE;gBACV,KAAK;gBACL,SAAS;gBACT,aAAa,EAAE,YAAY;gBAC3B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE,CAAC,8BAA8B,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9D,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,0BAA0B,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,MAAM,oBAAoB,GACxB,0BAA0B,IAAI,WAAW;QACvC,CAAC,CAAC,MAAM,8BAA8B,CAAC,YAAY,EAAE,SAAS,CAAC;QAC/D,CAAC,CAAC,0BAA0B,CAAC;IACjC,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,QAAQ,CAAC,yBAAyB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvG,iBAAiB,CAAC,IAAI,CACpB,2CAA2C,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CACtG,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,mCAAmC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACpF,iBAAiB,CAAC,IAAI,CAAC,uCAAuC,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,iBAAiB,CAAC,IAAI,CAAC,qCAAqC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC;SAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACxB,iBAAiB,CAAC,IAAI,CAAC,2BAA2B,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACL,UAAU,EAAE;YACV,KAAK;YACL,SAAS;YACT,aAAa,EAAE,YAAY;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,oBAAoB,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;SAC5D;QACD,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EACP,oBAAoB,IAAI,WAAW,IAAI,cAAc;YACnD,CAAC,CAAC;gBACE,KAAK;gBACL,SAAS;gBACT,aAAa,EAAE,YAAY;gBAC3B,UAAU,EAAE,SAAS;gBACrB,QAAQ;aACT;YACH,CAAC,CAAC,IAAI;KACX,CAAC;AACJ,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAkC;IACzE,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/E,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEjF,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO;YACL,gBAAgB,EAAE,IAAI;YACtB,KAAK;YACL,kBAAkB;YAClB,mBAAmB;YACnB,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,wBAAwB,CAAC,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAElH,OAAO;QACL,gBAAgB,EAAE,KAAK;QACvB,KAAK;QACL,kBAAkB;QAClB,mBAAmB;QACnB,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC;QACnE,SAAS;QACT,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAkC;IACrE,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC/B,OAAO;YACL,GAAG,SAAS;YACZ,QAAQ;YACR,MAAM;YACN,MAAM;SACP,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,SAAS;gBACZ,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,yBAAyB,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,SAAS;QACZ,QAAQ;QACR,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC;AAQD,SAAS,2BAA2B,CAAC,MAAe;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAChD,OAAO;YACL,QAAQ,EAAE,YAAY,CAAC,QAA4C;SACpE,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,aAAa,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClE,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAA4C;SACrE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,OAAO;SACX,IAAI,EAAE;SACN,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA4C;IAC/E,OAAO,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAkC;IACpE,OAAO,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,oBAAoB,CAAI,KAAQ;IACvC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,CAAC;AAC9C,CAAC;AAED,MAAM,uBAAuB,GAAoC;IAC/D,eAAe;IACf,cAAc;IACd,aAAa;IACb,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,uBAAuB,CAAC,QAAQ,CAAC,KAA6B,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,IAAa;IACxD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,aAAa,QAAQ,8BAA8B,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAc;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAc;IACzD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,OAAO,IAAI;SACR,IAAI,EAAE;SACN,WAAW,EAAE;SACb,KAAK,CAAC,KAAK,CAAC;SACZ,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,MAA2B;IAC1E,OAAO,oBAAoB,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,mCAAmC,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAMnF,SAAS,iCAAiC,CAAC,OAAe,EAAE,KAAsC;IAChG,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,OAAO,CAA6B,CAAC;IACjE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,mCAAmC,EAAE;QAChE,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,KAAK;QACnB,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAc;IACxD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAQ,KAAkC,CAAC,mCAAmC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY,EAAE,KAAc;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,yBAAyB,CAAC,KAAK,CAA4B,CAAC;AACrE,CAAC;AAED,SAAS,kCAAkC,CAAC,IAAY,EAAE,KAAc;IACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,6BAA6B,CAAC,KAAK,CAA4B,CAAC;AACzE,CAAC;AAED,SAAS,+BAA+B,CAAC,IAAY,EAAE,KAAc;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAc;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY,EAAE,KAAc;IAC9D,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,kCAAkC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,KAAc;IAC7D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,2CAA2C,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY,EAAE,KAAc;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sDAAsD,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,8BAA8B,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iCAAiC,CAAC,IAAY,EAAE,KAAc;IACrE,8BAA8B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,8BAA8B,CAAC,WAAmB,EAAE,MAAe;IAC1E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,UAAU,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mCAAmC,CAAC,KAAc;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,UAAU,GAAyC,EAAE,CAAC;IAC5D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,wCAAwC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,oBAAoB,CAAC,wCAAwC,KAAK,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACtG,0BAA0B,CAAC,wCAAwC,KAAK,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvG,0BAA0B,CAAC,wCAAwC,KAAK,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvG,yBAAyB,CAAC,wCAAwC,KAAK,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5G,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,SAAS,CAAC,wCAAwC,KAAK,gCAAgC,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,UAAU,GAAuC;YACrD,IAAI;SACL,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7B,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,UAAU,CAAC,WAAW,GAAG,kBAAkB,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,aAAa,IAAI,CAAC,CAAC;QACnB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,6EAA6E,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,KAAK,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,SAAS,CAAC,mFAAmF,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;IACrF,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,oBAAoB,CAAC,uBAAuB,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CAAC,uBAAuB,KAAK,0CAA0C,CAAC,CAAC;QAC9F,CAAC;QACD,yBAAyB,CAAC,uBAAuB,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtE,yBAAyB,CAAC,uBAAuB,KAAK,SAAS,EAAE,KAAK,CAAC,CAAC;QACxE,yBAAyB,CAAC,uBAAuB,KAAK,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACzF,yBAAyB,CAAC,uBAAuB,KAAK,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3F,0BAA0B,CAAC,uBAAuB,KAAK,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtF,0BAA0B,CAAC,uBAAuB,KAAK,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACpF,0BAA0B,CAAC,uBAAuB,KAAK,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAe;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,6BAA6B,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QAChF,oBAAoB,CAAC,6BAA6B,KAAK,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9E,oBAAoB,CAAC,6BAA6B,KAAK,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9E,0BAA0B,CAAC,6BAA6B,KAAK,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,iEAAiE,CAAC,CAAC;IACzF,CAAC;IACD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,2BAA2B,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;QAClF,oBAAoB,CAAC,2BAA2B,SAAS,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChF,yBAAyB,CAAC,2BAA2B,SAAS,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACzF,8BAA8B,CAAC,2BAA2B,SAAS,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChG,8BAA8B,CAC5B,2BAA2B,SAAS,0BAA0B,EAC9D,MAAM,CAAC,sBAAsB,CAC9B,CAAC;QACF,8BAA8B,CAC5B,2BAA2B,SAAS,+BAA+B,EACnE,MAAM,CAAC,2BAA2B,CACnC,CAAC;QAEF,IAAI,MAAM,CAAC,uBAAuB,KAAK,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,SAAS,CACjB,2BAA2B,SAAS,0DAA0D,CAC/F,CAAC;YACJ,CAAC;YACD,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChF,MAAM,MAAM,GAAG,oBAAoB,CACjC,2BAA2B,SAAS,6BAA6B,WAAW,GAAG,EAC/E,SAAS,CACV,CAAC;gBACF,oBAAoB,CAClB,2BAA2B,SAAS,6BAA6B,WAAW,WAAW,EACvF,MAAM,CAAC,OAAO,CACf,CAAC;gBACF,oBAAoB,CAClB,2BAA2B,SAAS,6BAA6B,WAAW,UAAU,EACtF,MAAM,CAAC,MAAM,CACd,CAAC;gBACF,0BAA0B,CACxB,2BAA2B,SAAS,6BAA6B,WAAW,WAAW,EACvF,MAAM,CAAC,OAAO,CACf,CAAC;gBACF,0BAA0B,CACxB,2BAA2B,SAAS,6BAA6B,WAAW,YAAY,EACxF,MAAM,CAAC,QAAQ,CAChB,CAAC;gBACF,0BAA0B,CACxB,2BAA2B,SAAS,6BAA6B,WAAW,WAAW,EACvF,MAAM,CAAC,OAAO,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,SAAS,CAAC,2BAA2B,SAAS,0CAA0C,CAAC,CAAC;YACtG,CAAC;YACD,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChE,MAAM,MAAM,GAAG,oBAAoB,CAAC,2BAA2B,SAAS,aAAa,WAAW,GAAG,EAAE,SAAS,CAAC,CAAC;gBAChH,oBAAoB,CAAC,2BAA2B,SAAS,aAAa,WAAW,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtG,8BAA8B,CAAC,2BAA2B,SAAS,aAAa,WAAW,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACtH,0BAA0B,CAAC,2BAA2B,SAAS,aAAa,WAAW,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtH,8BAA8B,CAC5B,2BAA2B,SAAS,aAAa,WAAW,WAAW,EACvE,MAAM,CAAC,OAAO,CACf,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,UAAmB;IACtD,MAAM,MAAM,GAAG,oBAAoB,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,gEAAgE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC/E,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;IAC5F,CAAC;IACD,0BAA0B,CAAC,wCAAwC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAa,EACb,iBAA0C;IAE1C,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE;QACjD,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gCAAgC,CAAC,SAA0B;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,yBAAyB,CAAC,SAA0B,EAAE,UAA+B,EAAE,MAAc;IAC5G,MAAM,QAAQ,GAAG,gCAAgC,CAAC,SAAS,CAAC,CAAC;IAC7D,yEAAyE;IACzE,6EAA6E;IAC7E,8CAA8C;IAC9C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CACjB,GAAG,MAAM,yBAAyB,UAAU,sCAAsC,CACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,SAA0B,EAC1B,KAA4B,EAC5B,QAAkC,EAClC,OAAgC,EAChC,SAAqC,EACrC,QAAkC,EAClC,SAAoC,EACpC,aAA4C,EAC5C,kBAA4B;IAE5B,MAAM,oBAAoB,GAAG,CAC3B,IAA+B,EAC/B,OAA2B,EAC3B,cAAsB,EACtB,QAAiB,EACjB,IAAa,EACoB,EAAE,CAAC,CAAC;QACrC,MAAM,EAAE,iBAAiB;QACzB,kBAAkB,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAC9F,OAAO;QACP,eAAe,EAAE,cAAc;QAC/B,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,CAAC;QAC7C,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,CAAC,mBAA+C,EAAE,QAA0B,EAAQ,EAAE;QAC5G,yBAAyB,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACpE,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;YACpE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,MAAM,iCAAiC,CACrC,mDAAmD,EACnD,oBAAoB,CAClB,UAAU,EACV,mBAAmB,EACnB,oDAAoD,EACpD,mBAAmB,EACnB,yDAAyD,CAC1D,CACF,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,oBAAoB,CAChC,UAAU,EACV,iBAAiB,EACjB,oDAAoD,EACpD,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAC1C,4DAA4D,CAC7D,CAAC;gBACF,MAAM,iCAAiC,CACrC,yFAAyF,iBAAiB,yBAAyB,KAAK,CAAC,kBAAkB,GAAG,EAC9J,KAAK,CACN,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO,EAAE,iBAAiB;gBAC1B,GAAG,EAAE,QAAQ;aACd,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,OAAO,mBAAmB,KAAK,QAAQ,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;YAC5E,MAAM,iCAAiC,CACrC,sDAAsD,EACtD,oBAAoB,CAClB,YAAY,EACZ,SAAS,EACT,8CAA8C,EAC9C,mBAAmB,EACnB,yEAAyE,CAC1E,CACF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,mBAAmB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,iCAAiC,CACrC,oDAAoD,EACpD,oBAAoB,CAClB,YAAY,EACZ,SAAS,EACT,8CAA8C,EAC9C,mBAAmB,EACnB,iEAAiE,CAClE,CACF,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,iCAAiC,CACrC,8DAA8D,EAC9D,oBAAoB,CAClB,YAAY,EACZ,mBAAmB,CAAC,IAAI,EACxB,8CAA8C,EAC9C,mBAAmB,EACnB,mEAAmE,CACpE,CACF,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,mBAAmB,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,MAAM,aAAa,GAAG,OAAO,mBAAmB,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAClH,IAAI,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;YACjC,kBAAkB,CAAC,IAAI,CACrB,qDAAqD,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAC9G,CAAC;QACJ,CAAC;QACD,MAAM,eAAe,GAAG,UAAU,IAAI,aAAa,CAAC;QACpD,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,oBAAoB,CAChC,YAAY,EACZ,iBAAiB,EACjB,8CAA8C,EAC9C,mBAAmB,EACnB,8CAA8C,CAC/C,CAAC;YACF,MAAM,iCAAiC,CACrC,uEAAuE,iBAAiB,yBAAyB,KAAK,CAAC,kBAAkB,GAAG,EAC5I,KAAK,CACN,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,yBAAyB,CAAC,mCAAmC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC3F,yBAAyB,CAAC,wCAAwC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACrG,yBAAyB,CAAC,mCAAmC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,8BAA8B,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC7F,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,iCAAiC,CAAC,qCAAqC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACxH,MAAM,YAAY,GAAG,iCAAiC,CACpD,0CAA0C,EAC1C,mBAAmB,CAAC,aAAa,CAClC,CAAC;YACF,MAAM,mBAAmB,GAAG,mCAAmC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAE/F,IAAI,mBAAmB,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC5C,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;gBACxE,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBACnD,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;oBACvB,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,cAAc,EAAE,iBAAiB;oBACjC,KAAK,EAAE,+BAA+B,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,KAAK,CAAC;iBACtG,CAAC,CAAC;YACL,CAAC;YAED,MAAM,YAAY,GAAyC;gBACzD,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO,EAAE,iBAAiB;gBAC1B,MAAM;gBACN,QAAQ;gBACR,aAAa,EAAE,YAAY;gBAC3B,SAAS,EAAE,mBAAmB;aAC/B,CAAC;YACF,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC;YACzC,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC;YAC/B,CAAC;YACD,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C,CAAC;YACvG,MAAM,KAAK,GAAG,oBAAoB,CAChC,YAAY,EACZ,iBAAiB,EACjB,uGAAuG,EACvG,mBAAmB,EACnB,uFAAuF,CACxF,CAAC;YACF,MAAM,iCAAiC,CACrC,yDAAyD,iBAAiB,yBAAyB,KAAK,CAAC,kBAAkB,MAAM,MAAM,EAAE,EACzI,KAAK,CACN,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,eAAe;SACrB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,QAAwB,EAAQ,EAAE;QACzE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACjE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,CAAC;QACxG,qBAAqB,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAC3D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,QAA2B,EAAQ,EAAE;QAC9D,yBAAyB,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACvE,qBAAqB,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QAC9D,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,OAA6B,EAAE,QAAyB,EAAQ,EAAE;QACzF,yBAAyB,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/D,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,SAAS,CAAC,2CAA2C,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,qBAAqB,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;QAC5D,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,iBAAyC;YAClD,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,MAA4B,EAAE,QAA0B,EAAQ,EAAE;QAC1F,yBAAyB,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACtE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,gBAAgB;YACxB,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,aAAqB,EAAE,KAAuB,EAAQ,EAAE;QAC7E,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAChE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,6BAA6B,EAAE,aAAa,CAAC,CAAC,CAAC;QACzH,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,eAAe,GAAG,+BAA+B,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QACtF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;QAC7E,CAAC;QACD,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,cAAc,EAAE,uBAAuB;YACvC,KAAK,EAAE,eAAe;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,MAA+B,EAAQ,EAAE;QACnE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACrE,4BAA4B,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,gBAAgB,GAAG,+BAA+B,CACtD,2BAA2B,EAC3B,MAAM,CACoB,CAAC;QAC7B,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;QACnF,CAAC;QACD,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC;YAC7B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,KAAiC,EAAQ,EAAE;QACpE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACpE,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,+BAA+B,CACrD,yBAAyB,EACzB,KAAK,CACwB,CAAC;QAChC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;QACjF,CAAC;QACD,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,eAAe;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,UAAqC,EAAQ,EAAE;QACxE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACpE,2BAA2B,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,iBAAiB,GAAG,kCAAkC,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC;QACzG,aAAa,CAAC,UAAU,CAAC,IAAI,CAC3B,uBAAuB,CACrB;YACE,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,UAAU,EAAE,2BAA2B,CAAC,8BAA8B,EAAE,UAAU,CAAC;SACpF,EACD,iBAAiB,CAC8B,CAClD,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,QAAkB,EAAQ,EAAE;QAClE,yBAAyB,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QACtG,qBAAqB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC;QACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACrB,QAAQ,CAAC;gBACP,YAAY,EAAE,cAAc;gBAC5B,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC9C,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,QAAkB,EAAQ,EAAE;QAClE,yBAAyB,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QACtG,qBAAqB,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,QAAQ,EAAE,cAAc;SACzB,CAAC,CAAC;QACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CACrB,QAAQ,CAAC;gBACP,YAAY,EAAE,cAAc;gBAC5B,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC9C,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;SACL,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,CAAC,QAAkC,EAAQ,EAAE;QAC1E,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,kCAAkC,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;QAC1G,aAAa,CAAC,gBAAgB,CAAC,IAAI,CACjC,uBAAuB,CACrB;YACE,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,UAAU,EAAE,2BAA2B,CAAC,iCAAiC,EAAE,QAAQ,CAAC;SACrF,EACD,iBAAiB,CACmB,CACvC,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,0BAA0B,GAAG,CAAC,OAAqC,EAAQ,EAAE;QACjF,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GAAG,kCAAkC,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;QAC5G,aAAa,CAAC,qBAAqB,CAAC,IAAI,CACtC,uBAAuB,CACrB;YACE,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,UAAU,EAAE,2BAA2B,CAAC,oCAAoC,EAAE,OAAO,CAAC;SACvF,EACD,iBAAiB,CACuB,CAC3C,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,CAAC,IAAuB,EAAQ,EAAE;QAC9D,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC;QACzE,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACzC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,CAAC,IAAsB,EAAQ,EAAE;QAC5D,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;QACxE,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACxC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,IAAiB,EAAQ,EAAE;QAClD,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACnE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,IAAgB,EAAQ,EAAE;QAChD,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAClE,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,IAAiB,EAAQ,EAAE;QAClD,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACnE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,eAAe;QACf,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,sBAAsB;QACtB,0BAA0B;QAC1B,KAAK,EAAE;YACL,aAAa,EAAE,qBAAqB;YACpC,YAAY,EAAE,oBAAoB;YAClC,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,eAAe;SACzB;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAoF,EACpF,QAAkB,EAClB,OAAiB;IAEjB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,aAA4C;IACzE,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvG,OAAO;QACL,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,aAAa;QACzB,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM;QAC3C,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM;QACzC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM;QACzC,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,MAAM;QACvD,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,CAAC,MAAM;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAkC;IACzE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,gBAAgB,GAAG,CACvB,OAAiB,EACjB,UAAkB,EACZ,EAAE;QACR,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CACX,GAAG,UAAU,IAAI,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAC/F,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;IAC3E,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;IAE7E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SACnF,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACjD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gCAAgC,CAAC,SAAoC;IAC5E,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+D,CAAC;IACvF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CACX,gCAAgC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,8BAA8B,CAAC,OAAgC;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+C,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CACX,uCAAuC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CACrH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iCAAiC,CAAC,SAAqC;IAC9E,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC,SAAS,EAAE,EAAE,CACZ,0CAA0C,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAC/G,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAkC;IACzE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8D,CAAC;IACtF,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CACX,wCAAwC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAA+B;IACtE,MAAM,KAAK,GAAG,gCAAgC,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,mCAAmC,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,kCAAkC,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,qCAAqC,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,mCAAmC,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,oCAAoC,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,wCAAwC,EAAE,CAAC;IACjE,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,2BAA2B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,QAAQ,CACxB,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,CACjH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;gBAChC,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG;QACxB,GAAG,+BAA+B,CAAC,QAAQ,CAAC;QAC5C,GAAG,8BAA8B,CAAC,OAAO,CAAC;QAC1C,GAAG,iCAAiC,CAAC,SAAS,CAAC;QAC/C,GAAG,+BAA+B,CAAC,QAAQ,CAAC;QAC5C,GAAG,gCAAgC,CAAC,SAAS,CAAC;KAC/C,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAEzE,OAAO;QACL,KAAK;QACL,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,aAAa;QACb,MAAM;QACN,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE;YACX,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM;YAC1C,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM;YACxC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC9B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC5B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;SAC/B;QACD,sBAAsB,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;QACjD,qBAAqB,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAC/C,qBAAqB,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM;QAC/C,wBAAwB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;QACpD,sBAAsB,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;QACjD,uBAAuB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;QACnD,mBAAmB,EAAE,qBAAqB,CAAC,aAAa,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAA4B,EAC5B,OAAiC;IAEjC,OAAO,sBAAsB,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAA4B,EAC5B,OAAgC;IAEhC,OAAO,sBAAsB,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA4B,EAAE,OAA2B;IAC7F,OAAO,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA4B,EAAE,OAA0B;IAC3F,OAAO,sBAAsB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAA4B,EAAE,OAA2B;IAC7F,OAAO,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAkC,EAClC,OAA8B;IAE9B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC/B,OAAO;YACP,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;YACxC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9C,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM;YACN,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC,oCAAoC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;SACnG,CAAC;IACJ,CAAC;AACH,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAgC,EAChC,OAA8B;IAE9B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,OAAO;gBACP,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC;gBACrD,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClD,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,OAAO;gBACP,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC;gBACrD,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClD,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAClC,OAAO,CAAC,GAAG,CAAC;YACV,OAAO;YACP,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;YACxC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC;YACrD,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC;YAClD,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnH,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9H,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxH,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;gBACP,OAAO;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,OAAO;gBACP,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC;gBACrD,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClD,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB;YACD,QAAQ,EAAE,CAAC,oCAAoC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;SACnG,CAAC;IACJ,CAAC;AACH,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,SAAqC,EACrC,OAAiC;IAEjC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,WAAW,GAA0B;QACzC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9C,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC;QACrD,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC;QAClD,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IACF,MAAM,YAAY,GAA6B,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAClC,OAAO,CAAC,GAAG,CAAC;YACV,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5C,OAAO,EAAE,2BAA2B,CAAC,WAAW,CAAC,OAAO,CAAC;YACzD,MAAM,EAAE,0BAA0B,CAAC,WAAW,CAAC,MAAM,CAAC;YACtD,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,QAAQ,EAAE,oBAAoB,CAAC,YAAY,CAAC;SAC7C,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,WAAW,GAA0B;YACzC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;YACrF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO;YACzF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM;YACpF,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC;QACF,MAAM,YAAY,GAA6B;YAC7C,wBAAwB,EACtB,OAAO,KAAK,CAAC,wBAAwB,KAAK,SAAS;gBACjD,CAAC,CAAC,KAAK,CAAC,wBAAwB;gBAChC,CAAC,CAAC,YAAY,CAAC,wBAAwB;YAC3C,8BAA8B,EAC5B,OAAO,KAAK,CAAC,8BAA8B,KAAK,SAAS;gBACvD,CAAC,CAAC,KAAK,CAAC,8BAA8B;gBACtC,CAAC,CAAC,YAAY,CAAC,8BAA8B;YACjD,wBAAwB,EACtB,OAAO,KAAK,CAAC,wBAAwB,KAAK,SAAS;gBACjD,CAAC,CAAC,KAAK,CAAC,wBAAwB;gBAChC,CAAC,CAAC,YAAY,CAAC,wBAAwB;YAC3C,gCAAgC,EAC9B,OAAO,KAAK,CAAC,gCAAgC,KAAK,SAAS;gBACzD,CAAC,CAAC,KAAK,CAAC,gCAAgC;gBACxC,CAAC,CAAC,YAAY,CAAC,gCAAgC;SACpD,CAAC;QACF,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,CAAC,uCAAuC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;SACnF,CAAC;IACJ,CAAC;AACH,CAAC;AAQD,SAAS,2BAA2B,CAAC,OAA+B;IAClE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,OAAO,CAAC,OAAO;QACvB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAkC,EAClC,OAA+B;IAE/B,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5E,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACnE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACnF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/E,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;SAC/C,CAAC,CAAC;QACH,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,OAAO,CAAC,OAAO;gBACvB,QAAQ,EAAE,CAAC,gDAAgD,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;aAC/G,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM;YACN,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,QAAQ,EAAE,CAAC,qCAAqC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAkC,EAClC,OAA+B;IAE/B,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAClC,OAAO,CAAC,GAAG,CAAC;YACV,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5E,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACnE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACnF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/E,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;SAC/C,CAAC,CACH,CAAC;QACF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM;YACN,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,OAAO,CAAC,OAAO;YACvB,QAAQ,EAAE,CAAC,qCAAqC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAkC,EAClC,OAA+B;IAE/B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;YACjC,OAAO;YACP,IAAI,EAAE,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC;YACxC,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,cAAc,YAAY,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,CAAC,gDAAgD,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;aAC/G,CAAC;QACJ,CAAC;QACD,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,CAAC,qCAAqC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;SACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,mBAAmB,CACjC,SAAoC,EACpC,OAAgC;IAEhC,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpG,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,eAAe,GAAG,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,CAAC,qCAAqC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;aACnG,CAAC;QACJ,CAAC;QACD,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,QAAQ;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC,6BAA6B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;SAC3F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"/","sources":["core/extensions/loader.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { pathExists } from \"../fs/fs-utils.js\";\nimport { resolveGlobalPmRoot } from \"../store/paths.js\";\nimport type { GlobalOptions } from \"../shared/command-types.js\";\nimport type { PmSettings } from \"../../types/index.js\";\nimport {\n KNOWN_EXTENSION_CAPABILITIES,\n EXTENSION_CAPABILITY_CONTRACT_VERSION,\n EXTENSION_CAPABILITY_LEGACY_ALIASES,\n EXTENSION_CAPABILITY_CONTRACT,\n type ExtensionCapability,\n type ExtensionLayer,\n type ExtensionStatus,\n type ExtensionManifest,\n type ExtensionDiagnostic,\n type EffectiveExtension,\n type ExtensionDiscoveryResult,\n type LoadedExtension,\n type FailedExtensionLoad,\n type ExtensionLoadResult,\n type BeforeCommandHookContext,\n type AfterCommandHookContext,\n type OnWriteHookContext,\n type OnReadHookContext,\n type OnIndexHookContext,\n type BeforeCommandHook,\n type AfterCommandHook,\n type OnWriteHook,\n type OnReadHook,\n type OnIndexHook,\n type OutputRendererFormat,\n type CommandOverride,\n type RendererOverride,\n type CommandHandler,\n type ParserOverride,\n type PreflightOverride,\n type ServiceOverride,\n type ExtensionHookRegistry,\n type CommandOverrideContext,\n type RendererOverrideContext,\n type CommandHandlerContext,\n type ParserOverrideContext,\n type ParserOverrideDelta,\n type PreflightOverrideContext,\n type PreflightRuntimeDecision,\n type PreflightOverrideDelta,\n type ExtensionServiceName,\n type ServiceOverrideContext,\n type ExtensionCommandArgumentDefinition,\n type CommandDefinition,\n type FlagValueType,\n type FlagDefinition,\n type SchemaFieldDefinition,\n type SchemaItemTypeCommandOptionPolicyDefinition,\n type SchemaItemTypeOptionDefinition,\n type SchemaItemTypeDefinition,\n type SchemaMigrationRunContext,\n type SchemaMigrationRunner,\n type SchemaMigrationDefinition,\n type ImportExportContext,\n type Importer,\n type Exporter,\n type ExtensionSearchMode,\n type SearchProviderQueryContext,\n type SearchProviderHit,\n type SearchProviderQueryResult,\n type SearchProviderEmbedBatchContext,\n type SearchProviderEmbedContext,\n type SearchProviderDefinition,\n type VectorStoreQueryHit,\n type VectorStoreQueryContext,\n type VectorStoreUpsertPoint,\n type VectorStoreUpsertContext,\n type VectorStoreDeleteContext,\n type VectorStoreAdapterDefinition,\n type RegisteredExtensionCommandOverride,\n type RegisteredExtensionCommandHandler,\n type RegisteredExtensionParserOverride,\n type RegisteredExtensionPreflightOverride,\n type RegisteredExtensionServiceOverride,\n type RegisteredExtensionRendererOverride,\n type ExtensionCommandRegistry,\n type ExtensionParserRegistry,\n type ExtensionPreflightRegistry,\n type ExtensionServiceRegistry,\n type ExtensionRendererRegistry,\n type RegisteredExtensionFlagDefinitions,\n type RegisteredExtensionCommandDefinition,\n type RegisteredExtensionSchemaFieldDefinitions,\n type RegisteredExtensionSchemaItemTypeDefinitions,\n type RegisteredExtensionSchemaMigrationDefinition,\n type RegisteredExtensionImporter,\n type RegisteredExtensionExporter,\n type RegisteredExtensionSearchProvider,\n type RegisteredExtensionVectorStoreAdapter,\n type ExtensionRegistrationRegistry,\n type ExtensionRegistrationCounts,\n type ExtensionApi,\n type FailedExtensionActivation,\n type ExtensionActivationFailureTrace,\n type ExtensionActivationResult,\n type ExtensionCandidate,\n type ExtensionLayerScanResult,\n type ScannedExtensionDirectory,\n type LegacyExtensionCapabilityAliasMapping,\n type DiscoverExtensionsOptions,\n type ActivatableExtension,\n type ServiceOverrideResult,\n type CommandOverrideResult,\n type CommandHandlerResult,\n type ParserOverrideResult,\n type PreflightOverrideResult,\n type RendererOverrideResult,\n type UnknownExtensionCapabilityWarningDetails,\n type RegisteredExtensionHook,\n} from \"./extension-types.js\";\n\nexport * from \"./extension-types.js\";\n\nconst DEFAULT_EXTENSION_PRIORITY = 100;\n\n/* Types now in extension-types.ts - re-exported via `export * from \"./extension-types.js\"` above */\n\nfunction normalizeNames(values: string[]): string[] {\n return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))].sort((a, b) =>\n a.localeCompare(b),\n );\n}\n\nfunction isKnownExtensionCapability(value: string): value is ExtensionCapability {\n return (KNOWN_EXTENSION_CAPABILITIES as readonly string[]).includes(value);\n}\n\nfunction collectUnknownExtensionCapabilities(capabilities: readonly string[]): string[] {\n return capabilities.filter((capability) => !isKnownExtensionCapability(capability));\n}\n\nfunction resolveLegacyExtensionCapabilityAlias(capability: string): ExtensionCapability | null {\n const normalized = capability.trim().toLowerCase();\n if (normalized.length === 0) {\n return null;\n }\n return EXTENSION_CAPABILITY_LEGACY_ALIASES[normalized] ?? null;\n}\n\nfunction normalizeManifestCapabilities(rawCapabilities: readonly string[]): {\n capabilities: string[];\n legacy_aliases: LegacyExtensionCapabilityAliasMapping[];\n} {\n const normalizedCapabilities = normalizeNames([...rawCapabilities].map((value) => value.toLowerCase()));\n const remappedCapabilities: string[] = [];\n const legacyAliases: LegacyExtensionCapabilityAliasMapping[] = [];\n for (const capability of normalizedCapabilities) {\n const legacyAliasTarget = resolveLegacyExtensionCapabilityAlias(capability);\n if (legacyAliasTarget) {\n remappedCapabilities.push(legacyAliasTarget);\n legacyAliases.push({\n alias: capability,\n target: legacyAliasTarget,\n });\n continue;\n }\n remappedCapabilities.push(capability);\n }\n const dedupedLegacyAliases = [...new Map(legacyAliases.map((entry) => [`${entry.alias}>${entry.target}`, entry])).values()].sort(\n (left, right) => left.alias.localeCompare(right.alias),\n );\n return {\n capabilities: normalizeNames(remappedCapabilities),\n legacy_aliases: dedupedLegacyAliases,\n };\n}\n\nfunction levenshteinDistance(left: string, right: string): number {\n if (left === right) {\n return 0;\n }\n if (left.length === 0) {\n return right.length;\n }\n if (right.length === 0) {\n return left.length;\n }\n const previous = new Array<number>(right.length + 1);\n const current = new Array<number>(right.length + 1);\n for (let j = 0; j <= right.length; j += 1) {\n previous[j] = j;\n }\n for (let i = 1; i <= left.length; i += 1) {\n current[0] = i;\n for (let j = 1; j <= right.length; j += 1) {\n const substitutionCost = left[i - 1] === right[j - 1] ? 0 : 1;\n current[j] = Math.min(\n previous[j] + 1,\n current[j - 1] + 1,\n previous[j - 1] + substitutionCost,\n );\n }\n for (let j = 0; j <= right.length; j += 1) {\n previous[j] = current[j];\n }\n }\n return previous[right.length] ?? left.length;\n}\n\nfunction suggestKnownExtensionCapability(capability: string): string | null {\n const normalized = capability.trim().toLowerCase();\n if (normalized.length === 0) {\n return null;\n }\n const legacyAlias = resolveLegacyExtensionCapabilityAlias(normalized);\n if (legacyAlias) {\n return legacyAlias;\n }\n let bestMatch: string | null = null;\n let bestDistance = Number.POSITIVE_INFINITY;\n for (const candidate of KNOWN_EXTENSION_CAPABILITIES) {\n const distance = levenshteinDistance(normalized, candidate);\n if (distance < bestDistance) {\n bestDistance = distance;\n bestMatch = candidate;\n }\n }\n const maxDistance = Math.max(1, Math.floor(normalized.length * 0.34));\n return bestMatch !== null && bestDistance <= maxDistance ? bestMatch : null;\n}\n\nfunction formatUnknownExtensionCapabilityWarning(layer: ExtensionLayer, name: string, capability: string): string {\n const allowed = KNOWN_EXTENSION_CAPABILITIES.join(\",\");\n const suggested = suggestKnownExtensionCapability(capability) ?? \"none\";\n return `extension_capability_unknown:${layer}:${name}:${capability}:allowed=${allowed}:suggested=${suggested}`;\n}\n\nfunction formatLegacyExtensionCapabilityAliasWarning(\n layer: ExtensionLayer,\n name: string,\n aliases: readonly LegacyExtensionCapabilityAliasMapping[],\n): string {\n const aliasesToken = aliases.map((entry) => `${entry.alias}>${entry.target}`).join(\",\");\n return `extension_capability_legacy_alias:${layer}:${name}:aliases=${aliasesToken}`;\n}\n\n\nexport function parseUnknownExtensionCapabilityWarning(\n warning: string,\n): UnknownExtensionCapabilityWarningDetails | null {\n const match = /^extension_capability_unknown:(global|project):([^:]+):([^:]+):allowed=([^:]+):suggested=([^:]+)$/.exec(\n warning.trim(),\n );\n if (!match) {\n return null;\n }\n const [, layerRaw, name, capability, allowedRaw, suggestedRaw] = match;\n const layer = layerRaw as ExtensionLayer;\n const allowed_capabilities = allowedRaw\n .split(\",\")\n .map((value) => value.trim())\n .filter((value) => value.length > 0);\n const legacyAlias = resolveLegacyExtensionCapabilityAlias(capability);\n const suggestedFromWarning = suggestedRaw === \"none\" ? undefined : suggestedRaw;\n const suggested_capability = suggestedFromWarning ?? legacyAlias ?? undefined;\n const suggestion_source = suggested_capability\n ? legacyAlias === suggested_capability\n ? \"legacy_alias\"\n : \"nearest_match\"\n : undefined;\n return {\n layer,\n name,\n capability,\n allowed_capabilities,\n capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,\n suggested_capability,\n suggestion_source,\n legacy_alias_target: legacyAlias ?? undefined,\n };\n}\n\nexport function parseLegacyExtensionCapabilityAliasWarning(warning: string): UnknownExtensionCapabilityWarningDetails[] {\n const match = /^extension_capability_legacy_alias:(global|project):([^:]+):aliases=(.+)$/.exec(warning.trim());\n if (!match) {\n return [];\n }\n const [, layerRaw, name, aliasesRaw] = match;\n const layer = layerRaw as ExtensionLayer;\n const allowedCapabilities = [...KNOWN_EXTENSION_CAPABILITIES];\n const parsed: UnknownExtensionCapabilityWarningDetails[] = [];\n for (const token of aliasesRaw.split(\",\")) {\n const [rawAlias, rawTarget] = token.split(\">\");\n const alias = rawAlias?.trim();\n const target = rawTarget?.trim().toLowerCase();\n if (!alias || !target || !isKnownExtensionCapability(target)) {\n continue;\n }\n parsed.push({\n layer,\n name,\n capability: alias,\n allowed_capabilities: allowedCapabilities,\n capability_contract_version: EXTENSION_CAPABILITY_CONTRACT_VERSION,\n suggested_capability: target,\n suggestion_source: \"legacy_alias\",\n legacy_alias_target: target,\n });\n }\n return parsed;\n}\n\nfunction parseManifest(raw: unknown): ExtensionManifest | null {\n if (typeof raw !== \"object\" || raw === null) {\n return null;\n }\n\n const candidate = raw as Record<string, unknown>;\n if (typeof candidate.name !== \"string\" || candidate.name.trim().length === 0) {\n return null;\n }\n if (typeof candidate.version !== \"string\" || candidate.version.trim().length === 0) {\n return null;\n }\n if (typeof candidate.entry !== \"string\" || candidate.entry.trim().length === 0) {\n return null;\n }\n\n let priority = DEFAULT_EXTENSION_PRIORITY;\n if (\"priority\" in candidate && candidate.priority !== undefined && candidate.priority !== null) {\n if (typeof candidate.priority !== \"number\" || !Number.isInteger(candidate.priority)) {\n return null;\n }\n priority = candidate.priority;\n }\n\n let capabilities: string[] = [];\n let legacyCapabilityAliases: LegacyExtensionCapabilityAliasMapping[] = [];\n if (\"capabilities\" in candidate && candidate.capabilities !== undefined && candidate.capabilities !== null) {\n if (!Array.isArray(candidate.capabilities) || candidate.capabilities.some((value) => typeof value !== \"string\")) {\n return null;\n }\n const normalizedCapabilities = normalizeManifestCapabilities(candidate.capabilities as string[]);\n capabilities = normalizedCapabilities.capabilities;\n legacyCapabilityAliases = normalizedCapabilities.legacy_aliases;\n }\n\n return {\n name: candidate.name.trim(),\n version: candidate.version.trim(),\n entry: candidate.entry.trim(),\n priority,\n capabilities,\n legacy_capability_aliases: legacyCapabilityAliases.length > 0 ? legacyCapabilityAliases : undefined,\n };\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n if (typeof value !== \"object\" || value === null) {\n return null;\n }\n return value as Record<string, unknown>;\n}\n\nfunction shouldEnable(name: string, enabled: Set<string>, disabled: Set<string>): boolean {\n if (disabled.has(name)) {\n return false;\n }\n if (enabled.size === 0) {\n return true;\n }\n return enabled.has(name);\n}\n\nfunction isPathWithinDirectory(directory: string, targetPath: string): boolean {\n const relative = path.relative(directory, targetPath);\n if (relative.length === 0) {\n return true;\n }\n return !relative.startsWith(\"..\") && !path.isAbsolute(relative);\n}\n\nasync function isCanonicalPathWithinDirectory(directory: string, targetPath: string): Promise<boolean> {\n const [resolvedDirectory, resolvedTargetPath] = await Promise.all([fs.realpath(directory), fs.realpath(targetPath)]);\n return isPathWithinDirectory(resolvedDirectory, resolvedTargetPath);\n}\n\nexport function resolveExtensionRoots(pmRoot: string, cwd = process.cwd()): { global: string; project: string } {\n return {\n global: path.join(resolveGlobalPmRoot(cwd), \"extensions\"),\n project: path.join(pmRoot, \"extensions\"),\n };\n}\n\nexport function createEmptyExtensionHookRegistry(): ExtensionHookRegistry {\n return {\n beforeCommand: [],\n afterCommand: [],\n onWrite: [],\n onRead: [],\n onIndex: [],\n };\n}\n\nexport function createEmptyExtensionCommandRegistry(): ExtensionCommandRegistry {\n return {\n overrides: [],\n handlers: [],\n };\n}\n\nexport function createEmptyExtensionParserRegistry(): ExtensionParserRegistry {\n return {\n overrides: [],\n };\n}\n\nexport function createEmptyExtensionPreflightRegistry(): ExtensionPreflightRegistry {\n return {\n overrides: [],\n };\n}\n\nexport function createEmptyExtensionServiceRegistry(): ExtensionServiceRegistry {\n return {\n overrides: [],\n };\n}\n\nexport function createEmptyExtensionRendererRegistry(): ExtensionRendererRegistry {\n return {\n overrides: [],\n };\n}\n\nexport function createEmptyExtensionRegistrationRegistry(): ExtensionRegistrationRegistry {\n return {\n commands: [],\n flags: [],\n item_fields: [],\n item_types: [],\n migrations: [],\n importers: [],\n exporters: [],\n search_providers: [],\n vector_store_adapters: [],\n };\n}\n\nasync function listExtensionDirectories(extensionsRoot: string): Promise<string[]> {\n try {\n const entries = await fs.readdir(extensionsRoot, { withFileTypes: true });\n return entries\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort((a, b) => a.localeCompare(b));\n } catch {\n return [];\n }\n}\n\nfunction summarizeCandidate(candidate: ExtensionCandidate): EffectiveExtension {\n return {\n layer: candidate.layer,\n directory: candidate.directory,\n manifest_path: candidate.manifest_path,\n name: candidate.manifest.name,\n version: candidate.manifest.version,\n entry: candidate.manifest.entry,\n priority: candidate.manifest.priority,\n entry_path: candidate.entry_path,\n capabilities: [...candidate.manifest.capabilities],\n };\n}\n\nfunction sortCandidates(candidates: ExtensionCandidate[]): ExtensionCandidate[] {\n return [...candidates].sort((left, right) => {\n if (left.manifest.priority !== right.manifest.priority) {\n return left.manifest.priority - right.manifest.priority;\n }\n const byName = left.manifest.name.localeCompare(right.manifest.name);\n if (byName !== 0) {\n return byName;\n }\n return left.directory.localeCompare(right.directory);\n });\n}\n\nfunction buildEffectiveExtensions(\n globalCandidates: ExtensionCandidate[],\n projectCandidates: ExtensionCandidate[],\n): ExtensionCandidate[] {\n const ordered = [...sortCandidates(globalCandidates), ...sortCandidates(projectCandidates)];\n const effective: ExtensionCandidate[] = [];\n for (const candidate of ordered) {\n const existingIndex = effective.findIndex((entry) => entry.manifest.name === candidate.manifest.name);\n if (existingIndex >= 0) {\n effective.splice(existingIndex, 1);\n }\n effective.push(candidate);\n }\n return effective;\n}\n\nasync function scanExtensionLayer(\n layer: ExtensionLayer,\n extensionsRoot: string,\n enabled: Set<string>,\n disabled: Set<string>,\n): Promise<ExtensionLayerScanResult> {\n const diagnostics: ExtensionDiagnostic[] = [];\n const warnings: string[] = [];\n const candidates: ExtensionCandidate[] = [];\n const directories = await listExtensionDirectories(extensionsRoot);\n\n for (const directory of directories) {\n const scanned = await scanExtensionDirectory(layer, extensionsRoot, directory, enabled, disabled);\n diagnostics.push(scanned.diagnostic);\n warnings.push(...scanned.warnings);\n if (scanned.candidate) {\n candidates.push(scanned.candidate);\n }\n }\n\n return { diagnostics, warnings, candidates };\n}\n\nasync function scanExtensionDirectory(\n layer: ExtensionLayer,\n extensionsRoot: string,\n directory: string,\n enabled: Set<string>,\n disabled: Set<string>,\n): Promise<ScannedExtensionDirectory> {\n const extensionDir = path.join(extensionsRoot, directory);\n const manifestPath = path.join(extensionDir, \"manifest.json\");\n if (!(await pathExists(manifestPath))) {\n return {\n diagnostic: {\n layer,\n directory,\n manifest_path: manifestPath,\n name: null,\n version: null,\n entry: null,\n priority: null,\n entry_path: null,\n enabled: null,\n status: \"warn\",\n },\n warnings: [`extension_manifest_missing:${layer}:${directory}`],\n candidate: null,\n };\n }\n\n let manifest: ExtensionManifest | null = null;\n try {\n const parsed = JSON.parse(await fs.readFile(manifestPath, \"utf8\")) as unknown;\n manifest = parseManifest(parsed);\n } catch {\n manifest = null;\n }\n\n if (!manifest) {\n return {\n diagnostic: {\n layer,\n directory,\n manifest_path: manifestPath,\n name: null,\n version: null,\n entry: null,\n priority: null,\n entry_path: null,\n enabled: null,\n status: \"warn\",\n },\n warnings: [`extension_manifest_invalid:${layer}:${directory}`],\n candidate: null,\n };\n }\n\n const entryPath = path.resolve(extensionDir, manifest.entry);\n const entryWithinDirectoryByPath = isPathWithinDirectory(extensionDir, entryPath);\n const entryExists = entryWithinDirectoryByPath ? await pathExists(entryPath) : false;\n const entryWithinDirectory =\n entryWithinDirectoryByPath && entryExists\n ? await isCanonicalPathWithinDirectory(extensionDir, entryPath)\n : entryWithinDirectoryByPath;\n const enabledForLoad = shouldEnable(manifest.name, enabled, disabled);\n const extensionWarnings: string[] = [];\n if (Array.isArray(manifest.legacy_capability_aliases) && manifest.legacy_capability_aliases.length > 0) {\n extensionWarnings.push(\n formatLegacyExtensionCapabilityAliasWarning(layer, manifest.name, manifest.legacy_capability_aliases),\n );\n }\n for (const capability of collectUnknownExtensionCapabilities(manifest.capabilities)) {\n extensionWarnings.push(formatUnknownExtensionCapabilityWarning(layer, manifest.name, capability));\n }\n if (!entryWithinDirectory) {\n extensionWarnings.push(`extension_entry_outside_extension:${layer}:${manifest.name}`);\n } else if (!entryExists) {\n extensionWarnings.push(`extension_entry_missing:${layer}:${manifest.name}`);\n }\n\n return {\n diagnostic: {\n layer,\n directory,\n manifest_path: manifestPath,\n name: manifest.name,\n version: manifest.version,\n entry: manifest.entry,\n priority: manifest.priority,\n entry_path: entryPath,\n enabled: enabledForLoad,\n status: entryWithinDirectory && entryExists ? \"ok\" : \"warn\",\n },\n warnings: extensionWarnings,\n candidate:\n entryWithinDirectory && entryExists && enabledForLoad\n ? {\n layer,\n directory,\n manifest_path: manifestPath,\n entry_path: entryPath,\n manifest,\n }\n : null,\n };\n}\n\n\nexport async function discoverExtensions(options: DiscoverExtensionsOptions): Promise<ExtensionDiscoveryResult> {\n const roots = resolveExtensionRoots(options.pmRoot, options.cwd ?? process.cwd());\n const configured_enabled = normalizeNames(options.settings.extensions.enabled);\n const configured_disabled = normalizeNames(options.settings.extensions.disabled);\n\n if (options.noExtensions) {\n return {\n disabled_by_flag: true,\n roots,\n configured_enabled,\n configured_disabled,\n discovered: [],\n effective: [],\n warnings: [],\n };\n }\n\n const enabled = new Set(configured_enabled);\n const disabled = new Set(configured_disabled);\n const globalScan = await scanExtensionLayer(\"global\", roots.global, enabled, disabled);\n const projectScan = await scanExtensionLayer(\"project\", roots.project, enabled, disabled);\n const effective = buildEffectiveExtensions(globalScan.candidates, projectScan.candidates).map(summarizeCandidate);\n\n return {\n disabled_by_flag: false,\n roots,\n configured_enabled,\n configured_disabled,\n discovered: [...globalScan.diagnostics, ...projectScan.diagnostics],\n effective,\n warnings: [...globalScan.warnings, ...projectScan.warnings],\n };\n}\n\nfunction formatUnknownError(error: unknown): string {\n if (error instanceof Error && error.message.trim().length > 0) {\n return error.message;\n }\n return String(error);\n}\n\nexport async function loadExtensions(options: DiscoverExtensionsOptions): Promise<ExtensionLoadResult> {\n const discovery = await discoverExtensions(options);\n const loaded: LoadedExtension[] = [];\n const failed: FailedExtensionLoad[] = [];\n const warnings = [...discovery.warnings];\n\n if (discovery.disabled_by_flag) {\n return {\n ...discovery,\n warnings,\n loaded,\n failed,\n };\n }\n\n for (const extension of discovery.effective) {\n try {\n const module = await import(pathToFileURL(extension.entry_path).href);\n loaded.push({\n ...extension,\n module,\n });\n } catch (error: unknown) {\n warnings.push(`extension_load_failed:${extension.layer}:${extension.name}`);\n failed.push({\n layer: extension.layer,\n name: extension.name,\n entry_path: extension.entry_path,\n error: formatUnknownError(error),\n });\n }\n }\n\n return {\n ...discovery,\n warnings,\n loaded,\n failed,\n };\n}\n\ntype HookName = keyof ExtensionHookRegistry;\n\nfunction resolveActivatableExtension(module: unknown): ActivatableExtension | null {\n const moduleRecord = asRecord(module);\n if (!moduleRecord) {\n return null;\n }\n\n if (typeof moduleRecord.activate === \"function\") {\n return {\n activate: moduleRecord.activate as ActivatableExtension[\"activate\"],\n };\n }\n\n const defaultExport = asRecord(moduleRecord.default);\n if (defaultExport && typeof defaultExport.activate === \"function\") {\n return {\n activate: defaultExport.activate as ActivatableExtension[\"activate\"],\n };\n }\n\n return null;\n}\n\nfunction normalizeCommandName(command: string): string {\n return command\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((part) => part.length > 0)\n .join(\" \");\n}\n\nfunction defaultGlobalOptions(): GlobalOptions {\n return {\n json: false,\n quiet: false,\n noExtensions: false,\n profile: false,\n };\n}\n\nfunction cloneCommandOptionsSnapshot(options: Record<string, unknown> | undefined): Record<string, unknown> {\n return options ? cloneContextSnapshot(options) : {};\n}\n\nfunction cloneGlobalOptionsSnapshot(options: GlobalOptions | undefined): GlobalOptions {\n return options ? cloneContextSnapshot(options) : defaultGlobalOptions();\n}\n\nfunction cloneContextSnapshot<T>(value: T): T {\n return structuredClone(value);\n}\n\nfunction isOutputRendererFormat(value: string): value is OutputRendererFormat {\n return value === \"toon\" || value === \"json\";\n}\n\nconst EXTENSION_SERVICE_NAMES: readonly ExtensionServiceName[] = [\n \"output_format\",\n \"error_format\",\n \"help_format\",\n \"lock_acquire\",\n \"lock_release\",\n \"history_append\",\n \"item_store_write\",\n \"item_store_delete\",\n];\n\nfunction isExtensionServiceName(value: string): value is ExtensionServiceName {\n return EXTENSION_SERVICE_NAMES.includes(value as ExtensionServiceName);\n}\n\nfunction assertHookHandler(hookName: string, hook: unknown): void {\n if (typeof hook !== \"function\") {\n throw new TypeError(`api.hooks.${hookName} requires a function handler`);\n }\n}\n\nfunction assertNonEmptyString(name: string, value: unknown): string {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`${name} requires a non-empty string`);\n }\n return value.trim();\n}\n\nfunction assertFunctionHandler(name: string, value: unknown): void {\n if (typeof value !== \"function\") {\n throw new TypeError(`${name} requires a function handler`);\n }\n}\n\nfunction normalizeRegistrationName(name: string): string {\n return name\n .trim()\n .toLowerCase()\n .split(/\\s+/)\n .filter((part) => part.length > 0)\n .join(\" \");\n}\n\nfunction toRegistrationCommandPath(name: string, action: \"import\" | \"export\"): string {\n return normalizeCommandName(`${name} ${action}`);\n}\n\nfunction sanitizeRegistrationValue(value: unknown): unknown {\n if (value === null) {\n return null;\n }\n if (Array.isArray(value)) {\n return value.map((entry) => sanitizeRegistrationValue(entry));\n }\n if (typeof value === \"function\") {\n return \"[Function]\";\n }\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n if (typeof value === \"symbol\") {\n return value.toString();\n }\n if (typeof value === \"object\") {\n const record = value as Record<string, unknown>;\n const normalized: Record<string, unknown> = {};\n const keys = Object.keys(record).sort((left, right) => left.localeCompare(right));\n for (const key of keys) {\n normalized[key] = sanitizeRegistrationValue(record[key]);\n }\n return normalized;\n }\n return value;\n}\n\nfunction cloneRuntimeRegistrationValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map((entry) => cloneRuntimeRegistrationValue(entry));\n }\n if (typeof value === \"object\" && value !== null) {\n const record = value as Record<string, unknown>;\n const cloned: Record<string, unknown> = {};\n for (const key of Object.keys(record).sort((left, right) => left.localeCompare(right))) {\n cloned[key] = cloneRuntimeRegistrationValue(record[key]);\n }\n return cloned;\n }\n return value;\n}\n\nconst EXTENSION_REGISTRATION_TRACE_SYMBOL = Symbol(\"extension_registration_trace\");\n\ntype RegistrationTraceCarrier = Error & {\n [EXTENSION_REGISTRATION_TRACE_SYMBOL]?: ExtensionActivationFailureTrace;\n};\n\nfunction createRegistrationValidationError(message: string, trace: ExtensionActivationFailureTrace): TypeError {\n const error = new TypeError(message) as RegistrationTraceCarrier;\n Object.defineProperty(error, EXTENSION_REGISTRATION_TRACE_SYMBOL, {\n value: trace,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n return error;\n}\n\nfunction extractRegistrationValidationTrace(error: unknown): ExtensionActivationFailureTrace | undefined {\n if (!(error instanceof Error)) {\n return undefined;\n }\n return (error as RegistrationTraceCarrier)[EXTENSION_REGISTRATION_TRACE_SYMBOL];\n}\n\nfunction normalizeRegistrationRecord(name: string, value: unknown): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(`${name} requires an object definition`);\n }\n return sanitizeRegistrationValue(value) as Record<string, unknown>;\n}\n\nfunction normalizeRuntimeRegistrationRecord(name: string, value: unknown): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(`${name} requires an object definition`);\n }\n return cloneRuntimeRegistrationValue(value) as Record<string, unknown>;\n}\n\nfunction normalizeRegistrationRecordList(name: string, value: unknown): Array<Record<string, unknown>> {\n if (!Array.isArray(value)) {\n throw new TypeError(`${name} requires an array of object definitions`);\n }\n return value.map((entry) => normalizeRegistrationRecord(name, entry));\n}\n\nfunction asRegistrationRecord(name: string, value: unknown): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(`${name} requires an object definition`);\n }\n return value as Record<string, unknown>;\n}\n\nfunction assertOptionalBooleanField(name: string, value: unknown): void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new TypeError(`${name} must be a boolean when provided`);\n }\n}\n\nfunction assertOptionalStringField(name: string, value: unknown): void {\n if (value === undefined) {\n return;\n }\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`${name} must be a non-empty string when provided`);\n }\n}\n\nfunction assertOptionalStringArrayField(name: string, value: unknown): void {\n if (value === undefined) {\n return;\n }\n if (!Array.isArray(value)) {\n throw new TypeError(`${name} must be an array of non-empty strings when provided`);\n }\n for (const [index, entry] of value.entries()) {\n if (typeof entry !== \"string\" || entry.trim().length === 0) {\n throw new TypeError(`${name}[${index}] must be a non-empty string`);\n }\n }\n}\n\nfunction normalizeOptionalStringArrayField(name: string, value: unknown): string[] {\n assertOptionalStringArrayField(name, value);\n if (!Array.isArray(value)) {\n return [];\n }\n const normalized: string[] = [];\n const seen = new Set<string>();\n for (const entry of value) {\n const trimmed = entry.trim();\n if (trimmed.length === 0 || seen.has(trimmed)) {\n continue;\n }\n seen.add(trimmed);\n normalized.push(trimmed);\n }\n return normalized;\n}\n\nfunction normalizeCommandActionName(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[\\s_]+/g, \"-\")\n .replace(/[^a-z0-9-]/g, \"-\")\n .replace(/-+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\n\nfunction resolveCommandDefinitionAction(commandPath: string, action: unknown): string {\n if (action === undefined) {\n return commandPath.replace(/\\s+/g, \"-\");\n }\n if (typeof action !== \"string\" || action.trim().length === 0) {\n throw new TypeError(\"registerCommand definition.action must be a non-empty string when provided\");\n }\n const normalized = normalizeCommandActionName(action);\n if (normalized.length === 0) {\n throw new TypeError(\"registerCommand definition.action must contain alphanumeric characters\");\n }\n return normalized;\n}\n\nfunction normalizeCommandDefinitionArguments(value: unknown): ExtensionCommandArgumentDefinition[] {\n if (value === undefined) {\n return [];\n }\n if (!Array.isArray(value)) {\n throw new TypeError(\"registerCommand definition.arguments must be an array when provided\");\n }\n const normalized: ExtensionCommandArgumentDefinition[] = [];\n for (const [index, entry] of value.entries()) {\n const record = asRegistrationRecord(`registerCommand definition.arguments[${index}]`, entry);\n const name = assertNonEmptyString(`registerCommand definition.arguments[${index}].name`, record.name);\n assertOptionalBooleanField(`registerCommand definition.arguments[${index}].required`, record.required);\n assertOptionalBooleanField(`registerCommand definition.arguments[${index}].variadic`, record.variadic);\n assertOptionalStringField(`registerCommand definition.arguments[${index}].description`, record.description);\n if (name.includes(\" \")) {\n throw new TypeError(`registerCommand definition.arguments[${index}].name must not contain spaces`);\n }\n const definition: ExtensionCommandArgumentDefinition = {\n name,\n };\n if (record.required === true) {\n definition.required = true;\n }\n if (record.variadic === true) {\n definition.variadic = true;\n }\n if (typeof record.description === \"string\") {\n const trimmedDescription = record.description.trim();\n if (trimmedDescription.length > 0) {\n definition.description = trimmedDescription;\n }\n }\n normalized.push(definition);\n }\n\n let variadicCount = 0;\n for (const [index, argument] of normalized.entries()) {\n if (!argument.variadic) {\n continue;\n }\n variadicCount += 1;\n if (variadicCount > 1) {\n throw new TypeError(\"registerCommand definition.arguments supports at most one variadic argument\");\n }\n if (index !== normalized.length - 1) {\n throw new TypeError(\"registerCommand definition.arguments variadic argument must be the final argument\");\n }\n }\n\n return normalized;\n}\n\nfunction validateFlagDefinitions(flags: unknown): void {\n if (!Array.isArray(flags)) {\n throw new TypeError(\"registerFlags flags requires an array of object definitions\");\n }\n for (const [index, raw] of flags.entries()) {\n const record = asRegistrationRecord(`registerFlags flags[${index}]`, raw);\n const long = record.long;\n const short = record.short;\n if (long === undefined && short === undefined) {\n throw new TypeError(`registerFlags flags[${index}] requires at least one of long or short`);\n }\n assertOptionalStringField(`registerFlags flags[${index}].long`, long);\n assertOptionalStringField(`registerFlags flags[${index}].short`, short);\n assertOptionalStringField(`registerFlags flags[${index}].value_name`, record.value_name);\n assertOptionalStringField(`registerFlags flags[${index}].description`, record.description);\n assertOptionalBooleanField(`registerFlags flags[${index}].required`, record.required);\n assertOptionalBooleanField(`registerFlags flags[${index}].enabled`, record.enabled);\n assertOptionalBooleanField(`registerFlags flags[${index}].visible`, record.visible);\n }\n}\n\nfunction validateItemFieldDefinitions(fields: unknown): void {\n if (!Array.isArray(fields)) {\n throw new TypeError(\"registerItemFields fields requires an array of object definitions\");\n }\n for (const [index, raw] of fields.entries()) {\n const record = asRegistrationRecord(`registerItemFields fields[${index}]`, raw);\n assertNonEmptyString(`registerItemFields fields[${index}].name`, record.name);\n assertNonEmptyString(`registerItemFields fields[${index}].type`, record.type);\n assertOptionalBooleanField(`registerItemFields fields[${index}].optional`, record.optional);\n }\n}\n\nfunction validateItemTypeDefinitions(types: unknown): void {\n if (!Array.isArray(types)) {\n throw new TypeError(\"registerItemTypes types requires an array of object definitions\");\n }\n for (const [typeIndex, raw] of types.entries()) {\n const record = asRegistrationRecord(`registerItemTypes types[${typeIndex}]`, raw);\n assertNonEmptyString(`registerItemTypes types[${typeIndex}].name`, record.name);\n assertOptionalStringField(`registerItemTypes types[${typeIndex}].folder`, record.folder);\n assertOptionalStringArrayField(`registerItemTypes types[${typeIndex}].aliases`, record.aliases);\n assertOptionalStringArrayField(\n `registerItemTypes types[${typeIndex}].required_create_fields`,\n record.required_create_fields,\n );\n assertOptionalStringArrayField(\n `registerItemTypes types[${typeIndex}].required_create_repeatables`,\n record.required_create_repeatables,\n );\n\n if (record.command_option_policies !== undefined) {\n if (!Array.isArray(record.command_option_policies)) {\n throw new TypeError(\n `registerItemTypes types[${typeIndex}].command_option_policies must be an array when provided`,\n );\n }\n for (const [policyIndex, rawPolicy] of record.command_option_policies.entries()) {\n const policy = asRegistrationRecord(\n `registerItemTypes types[${typeIndex}].command_option_policies[${policyIndex}]`,\n rawPolicy,\n );\n assertNonEmptyString(\n `registerItemTypes types[${typeIndex}].command_option_policies[${policyIndex}].command`,\n policy.command,\n );\n assertNonEmptyString(\n `registerItemTypes types[${typeIndex}].command_option_policies[${policyIndex}].option`,\n policy.option,\n );\n assertOptionalBooleanField(\n `registerItemTypes types[${typeIndex}].command_option_policies[${policyIndex}].enabled`,\n policy.enabled,\n );\n assertOptionalBooleanField(\n `registerItemTypes types[${typeIndex}].command_option_policies[${policyIndex}].required`,\n policy.required,\n );\n assertOptionalBooleanField(\n `registerItemTypes types[${typeIndex}].command_option_policies[${policyIndex}].visible`,\n policy.visible,\n );\n }\n }\n\n if (record.options !== undefined) {\n if (!Array.isArray(record.options)) {\n throw new TypeError(`registerItemTypes types[${typeIndex}].options must be an array when provided`);\n }\n for (const [optionIndex, rawOption] of record.options.entries()) {\n const option = asRegistrationRecord(`registerItemTypes types[${typeIndex}].options[${optionIndex}]`, rawOption);\n assertNonEmptyString(`registerItemTypes types[${typeIndex}].options[${optionIndex}].key`, option.key);\n assertOptionalStringArrayField(`registerItemTypes types[${typeIndex}].options[${optionIndex}].values`, option.values);\n assertOptionalBooleanField(`registerItemTypes types[${typeIndex}].options[${optionIndex}].required`, option.required);\n assertOptionalStringArrayField(\n `registerItemTypes types[${typeIndex}].options[${optionIndex}].aliases`,\n option.aliases,\n );\n }\n }\n }\n}\n\nfunction validateMigrationDefinition(definition: unknown): void {\n const record = asRegistrationRecord(\"registerMigration definition\", definition);\n if (record.id !== undefined && typeof record.id !== \"string\") {\n throw new TypeError(\"registerMigration definition.id must be a string when provided\");\n }\n if (record.description !== undefined && typeof record.description !== \"string\") {\n throw new TypeError(\"registerMigration definition.description must be a string when provided\");\n }\n if (record.status !== undefined && typeof record.status !== \"string\") {\n throw new TypeError(\"registerMigration definition.status must be a string when provided\");\n }\n assertOptionalBooleanField(\"registerMigration definition.mandatory\", record.mandatory);\n if (record.run !== undefined && typeof record.run !== \"function\") {\n throw new TypeError(\"registerMigration definition.run must be a function when provided\");\n }\n}\n\nfunction attachRuntimeDefinition<TEntry extends { definition: Record<string, unknown> }>(\n entry: TEntry,\n runtimeDefinition: Record<string, unknown>,\n): TEntry {\n Object.defineProperty(entry, \"runtime_definition\", {\n value: runtimeDefinition,\n enumerable: false,\n writable: false,\n configurable: false,\n });\n return entry;\n}\n\nfunction getDeclaredExtensionCapabilities(extension: LoadedExtension): Set<ExtensionCapability> | null {\n if (!Array.isArray(extension.capabilities)) {\n return null;\n }\n const declared = new Set<ExtensionCapability>();\n for (const capability of extension.capabilities) {\n const normalized = capability.trim().toLowerCase();\n if (isKnownExtensionCapability(normalized)) {\n declared.add(normalized);\n }\n }\n return declared;\n}\n\nfunction assertExtensionCapability(extension: LoadedExtension, capability: ExtensionCapability, method: string): void {\n const declared = getDeclaredExtensionCapabilities(extension);\n // Keep direct unit tests that construct LoadedExtension fixtures without\n // capability metadata backwards-compatible while enforcing manifest-declared\n // capabilities for runtime-loaded extensions.\n if (declared === null) {\n return;\n }\n if (!declared.has(capability)) {\n throw new TypeError(\n `${method} requires capability '${capability}' in extension manifest capabilities`,\n );\n }\n}\n\nfunction createExtensionApi(\n extension: LoadedExtension,\n hooks: ExtensionHookRegistry,\n commands: ExtensionCommandRegistry,\n parsers: ExtensionParserRegistry,\n preflight: ExtensionPreflightRegistry,\n services: ExtensionServiceRegistry,\n renderers: ExtensionRendererRegistry,\n registrations: ExtensionRegistrationRegistry,\n activationWarnings: string[],\n): ExtensionApi {\n const registerCommandTrace = (\n mode: \"override\" | \"definition\",\n command: string | undefined,\n expectedSchema: string,\n received: unknown,\n hint?: string,\n ): ExtensionActivationFailureTrace => ({\n method: \"registerCommand\",\n registration_index: mode === \"override\" ? commands.overrides.length : commands.handlers.length,\n command,\n expected_schema: expectedSchema,\n received: sanitizeRegistrationValue(received),\n hint,\n });\n\n const registerCommand = (commandOrDefinition: string | CommandDefinition, override?: CommandOverride): void => {\n assertExtensionCapability(extension, \"commands\", \"registerCommand\");\n if (typeof commandOrDefinition === \"string\") {\n const normalizedCommand = normalizeCommandName(commandOrDefinition);\n if (normalizedCommand.length === 0) {\n throw createRegistrationValidationError(\n \"registerCommand requires a non-empty command name\",\n registerCommandTrace(\n \"override\",\n commandOrDefinition,\n 'registerCommand(\"<command>\", (context) => unknown)',\n commandOrDefinition,\n \"Provide a non-empty command path as the first argument.\",\n ),\n );\n }\n if (typeof override !== \"function\") {\n const trace = registerCommandTrace(\n \"override\",\n normalizedCommand,\n 'registerCommand(\"<command>\", (context) => unknown)',\n { command: commandOrDefinition, override },\n \"Provide a function as the second registerCommand argument.\",\n );\n throw createRegistrationValidationError(\n `registerCommand requires an override function when command name is provided (command=\"${normalizedCommand}\", registration_index=${trace.registration_index})`,\n trace,\n );\n }\n commands.overrides.push({\n layer: extension.layer,\n name: extension.name,\n command: normalizedCommand,\n run: override,\n });\n return;\n }\n\n if (typeof commandOrDefinition !== \"object\" || commandOrDefinition === null) {\n throw createRegistrationValidationError(\n \"registerCommand requires a command definition object\",\n registerCommandTrace(\n \"definition\",\n undefined,\n \"{ name: string; run: (context) => unknown; }\",\n commandOrDefinition,\n \"Use registerCommand({ name: \\\"command path\\\", run: (context) => ... }).\",\n ),\n );\n }\n if (typeof commandOrDefinition.name !== \"string\") {\n throw createRegistrationValidationError(\n \"registerCommand requires a command definition name\",\n registerCommandTrace(\n \"definition\",\n undefined,\n \"{ name: string; run: (context) => unknown; }\",\n commandOrDefinition,\n \"Set command definition.name to a non-empty string command path.\",\n ),\n );\n }\n\n const normalizedCommand = normalizeCommandName(commandOrDefinition.name);\n if (normalizedCommand.length === 0) {\n throw createRegistrationValidationError(\n \"registerCommand requires a non-empty command definition name\",\n registerCommandTrace(\n \"definition\",\n commandOrDefinition.name,\n \"{ name: string; run: (context) => unknown; }\",\n commandOrDefinition,\n \"Ensure command definition.name contains a non-empty command path.\",\n ),\n );\n }\n const runHandler = typeof commandOrDefinition.run === \"function\" ? commandOrDefinition.run : undefined;\n const legacyHandler = typeof commandOrDefinition.handler === \"function\" ? commandOrDefinition.handler : undefined;\n if (!runHandler && legacyHandler) {\n activationWarnings.push(\n `extension_command_definition_legacy_handler_alias:${extension.layer}:${extension.name}:${normalizedCommand}`,\n );\n }\n const resolvedHandler = runHandler ?? legacyHandler;\n if (typeof resolvedHandler !== \"function\") {\n const trace = registerCommandTrace(\n \"definition\",\n normalizedCommand,\n \"{ name: string; run: (context) => unknown; }\",\n commandOrDefinition,\n \"Define command definition.run as a function.\",\n );\n throw createRegistrationValidationError(\n `registerCommand requires a command definition run handler (command=\"${normalizedCommand}\", registration_index=${trace.registration_index})`,\n trace,\n );\n }\n try {\n assertOptionalStringField(\"registerCommand definition.action\", commandOrDefinition.action);\n assertOptionalStringField(\"registerCommand definition.description\", commandOrDefinition.description);\n assertOptionalStringField(\"registerCommand definition.intent\", commandOrDefinition.intent);\n const action = resolveCommandDefinitionAction(normalizedCommand, commandOrDefinition.action);\n const description = commandOrDefinition.description?.trim();\n const intent = commandOrDefinition.intent?.trim();\n const examples = normalizeOptionalStringArrayField(\"registerCommand definition.examples\", commandOrDefinition.examples);\n const failureHints = normalizeOptionalStringArrayField(\n \"registerCommand definition.failure_hints\",\n commandOrDefinition.failure_hints,\n );\n const argumentsDefinition = normalizeCommandDefinitionArguments(commandOrDefinition.arguments);\n\n if (commandOrDefinition.flags !== undefined) {\n assertExtensionCapability(extension, \"schema\", \"registerCommand flags\");\n validateFlagDefinitions(commandOrDefinition.flags);\n registrations.flags.push({\n layer: extension.layer,\n name: extension.name,\n target_command: normalizedCommand,\n flags: normalizeRegistrationRecordList(\"registerCommand definition.flags\", commandOrDefinition.flags),\n });\n }\n\n const registration: RegisteredExtensionCommandDefinition = {\n layer: extension.layer,\n name: extension.name,\n command: normalizedCommand,\n action,\n examples,\n failure_hints: failureHints,\n arguments: argumentsDefinition,\n };\n if (description) {\n registration.description = description;\n }\n if (intent) {\n registration.intent = intent;\n }\n registrations.commands.push(registration);\n } catch (error: unknown) {\n const reason = error instanceof Error ? error.message : \"registerCommand definition validation failed\";\n const trace = registerCommandTrace(\n \"definition\",\n normalizedCommand,\n \"{ name: string; run: (context) => unknown; action?: string; arguments?: object[]; flags?: object[]; }\",\n commandOrDefinition,\n \"Use schema-style metadata (action/arguments/flags/examples/intent) with valid values.\",\n );\n throw createRegistrationValidationError(\n `registerCommand definition metadata invalid (command=\"${normalizedCommand}\", registration_index=${trace.registration_index}): ${reason}`,\n trace,\n );\n }\n commands.handlers.push({\n layer: extension.layer,\n name: extension.name,\n command: normalizedCommand,\n run: resolvedHandler,\n });\n };\n const registerParser = (command: string, override: ParserOverride): void => {\n assertExtensionCapability(extension, \"parser\", \"registerParser\");\n const normalizedCommand = normalizeCommandName(assertNonEmptyString(\"registerParser command\", command));\n assertFunctionHandler(\"registerParser override\", override);\n parsers.overrides.push({\n layer: extension.layer,\n name: extension.name,\n command: normalizedCommand,\n run: override,\n });\n };\n const registerPreflight = (override: PreflightOverride): void => {\n assertExtensionCapability(extension, \"preflight\", \"registerPreflight\");\n assertFunctionHandler(\"registerPreflight override\", override);\n preflight.overrides.push({\n layer: extension.layer,\n name: extension.name,\n run: override,\n });\n };\n const registerService = (service: ExtensionServiceName, override: ServiceOverride): void => {\n assertExtensionCapability(extension, \"services\", \"registerService\");\n const normalizedService = String(service).trim().toLowerCase();\n if (!isExtensionServiceName(normalizedService)) {\n throw new TypeError(`registerService service must be one of: ${EXTENSION_SERVICE_NAMES.join(\", \")}`);\n }\n assertFunctionHandler(\"registerService override\", override);\n services.overrides.push({\n layer: extension.layer,\n name: extension.name,\n service: normalizedService as ExtensionServiceName,\n run: override,\n });\n };\n const registerRenderer = (format: OutputRendererFormat, renderer: RendererOverride): void => {\n assertExtensionCapability(extension, \"renderers\", \"registerRenderer\");\n if (typeof renderer !== \"function\") {\n throw new TypeError(\"registerRenderer requires a renderer function\");\n }\n const normalizedFormat = String(format).trim().toLowerCase();\n if (!isOutputRendererFormat(normalizedFormat)) {\n throw new Error(`registerRenderer format must be toon|json, received: ${String(format)}`);\n }\n renderers.overrides.push({\n layer: extension.layer,\n name: extension.name,\n format: normalizedFormat,\n run: renderer,\n });\n };\n const registerFlags = (targetCommand: string, flags: FlagDefinition[]): void => {\n assertExtensionCapability(extension, \"schema\", \"registerFlags\");\n const normalizedTargetCommand = normalizeCommandName(assertNonEmptyString(\"registerFlags targetCommand\", targetCommand));\n validateFlagDefinitions(flags);\n const normalizedFlags = normalizeRegistrationRecordList(\"registerFlags flags\", flags);\n if (normalizedFlags.length === 0) {\n throw new TypeError(\"registerFlags requires at least one flag definition\");\n }\n registrations.flags.push({\n layer: extension.layer,\n name: extension.name,\n target_command: normalizedTargetCommand,\n flags: normalizedFlags,\n });\n };\n const registerItemFields = (fields: SchemaFieldDefinition[]): void => {\n assertExtensionCapability(extension, \"schema\", \"registerItemFields\");\n validateItemFieldDefinitions(fields);\n const normalizedFields = normalizeRegistrationRecordList(\n \"registerItemFields fields\",\n fields,\n ) as SchemaFieldDefinition[];\n if (normalizedFields.length === 0) {\n throw new TypeError(\"registerItemFields requires at least one field definition\");\n }\n registrations.item_fields.push({\n layer: extension.layer,\n name: extension.name,\n fields: normalizedFields,\n });\n };\n const registerItemTypes = (types: SchemaItemTypeDefinition[]): void => {\n assertExtensionCapability(extension, \"schema\", \"registerItemTypes\");\n validateItemTypeDefinitions(types);\n const normalizedTypes = normalizeRegistrationRecordList(\n \"registerItemTypes types\",\n types,\n ) as SchemaItemTypeDefinition[];\n if (normalizedTypes.length === 0) {\n throw new TypeError(\"registerItemTypes requires at least one type definition\");\n }\n registrations.item_types.push({\n layer: extension.layer,\n name: extension.name,\n types: normalizedTypes,\n });\n };\n const registerMigration = (definition: SchemaMigrationDefinition): void => {\n assertExtensionCapability(extension, \"schema\", \"registerMigration\");\n validateMigrationDefinition(definition);\n const runtimeDefinition = normalizeRuntimeRegistrationRecord(\"registerMigration definition\", definition);\n registrations.migrations.push(\n attachRuntimeDefinition(\n {\n layer: extension.layer,\n name: extension.name,\n definition: normalizeRegistrationRecord(\"registerMigration definition\", definition),\n },\n runtimeDefinition,\n ) as RegisteredExtensionSchemaMigrationDefinition,\n );\n };\n const registerImporter = (name: string, importer: Importer): void => {\n assertExtensionCapability(extension, \"importers\", \"registerImporter\");\n const normalizedName = normalizeRegistrationName(assertNonEmptyString(\"registerImporter name\", name));\n assertFunctionHandler(\"registerImporter importer\", importer);\n const commandPath = toRegistrationCommandPath(normalizedName, \"import\");\n registrations.importers.push({\n layer: extension.layer,\n name: extension.name,\n importer: normalizedName,\n });\n commands.handlers.push({\n layer: extension.layer,\n name: extension.name,\n command: commandPath,\n run: async (context) =>\n importer({\n registration: normalizedName,\n action: \"import\",\n command: context.command,\n args: cloneContextSnapshot(context.args),\n options: cloneContextSnapshot(context.options),\n global: cloneContextSnapshot(context.global),\n pm_root: context.pm_root,\n }),\n });\n };\n const registerExporter = (name: string, exporter: Exporter): void => {\n assertExtensionCapability(extension, \"importers\", \"registerExporter\");\n const normalizedName = normalizeRegistrationName(assertNonEmptyString(\"registerExporter name\", name));\n assertFunctionHandler(\"registerExporter exporter\", exporter);\n const commandPath = toRegistrationCommandPath(normalizedName, \"export\");\n registrations.exporters.push({\n layer: extension.layer,\n name: extension.name,\n exporter: normalizedName,\n });\n commands.handlers.push({\n layer: extension.layer,\n name: extension.name,\n command: commandPath,\n run: async (context) =>\n exporter({\n registration: normalizedName,\n action: \"export\",\n command: context.command,\n args: cloneContextSnapshot(context.args),\n options: cloneContextSnapshot(context.options),\n global: cloneContextSnapshot(context.global),\n pm_root: context.pm_root,\n }),\n });\n };\n const registerSearchProvider = (provider: SearchProviderDefinition): void => {\n assertExtensionCapability(extension, \"search\", \"registerSearchProvider\");\n const runtimeDefinition = normalizeRuntimeRegistrationRecord(\"registerSearchProvider provider\", provider);\n registrations.search_providers.push(\n attachRuntimeDefinition(\n {\n layer: extension.layer,\n name: extension.name,\n definition: normalizeRegistrationRecord(\"registerSearchProvider provider\", provider),\n },\n runtimeDefinition,\n ) as RegisteredExtensionSearchProvider,\n );\n };\n const registerVectorStoreAdapter = (adapter: VectorStoreAdapterDefinition): void => {\n assertExtensionCapability(extension, \"search\", \"registerVectorStoreAdapter\");\n const runtimeDefinition = normalizeRuntimeRegistrationRecord(\"registerVectorStoreAdapter adapter\", adapter);\n registrations.vector_store_adapters.push(\n attachRuntimeDefinition(\n {\n layer: extension.layer,\n name: extension.name,\n definition: normalizeRegistrationRecord(\"registerVectorStoreAdapter adapter\", adapter),\n },\n runtimeDefinition,\n ) as RegisteredExtensionVectorStoreAdapter,\n );\n };\n const registerBeforeCommand = (hook: BeforeCommandHook): void => {\n assertExtensionCapability(extension, \"hooks\", \"api.hooks.beforeCommand\");\n assertHookHandler(\"beforeCommand\", hook);\n hooks.beforeCommand.push({\n layer: extension.layer,\n name: extension.name,\n run: hook,\n });\n };\n const registerAfterCommand = (hook: AfterCommandHook): void => {\n assertExtensionCapability(extension, \"hooks\", \"api.hooks.afterCommand\");\n assertHookHandler(\"afterCommand\", hook);\n hooks.afterCommand.push({\n layer: extension.layer,\n name: extension.name,\n run: hook,\n });\n };\n const registerOnWrite = (hook: OnWriteHook): void => {\n assertExtensionCapability(extension, \"hooks\", \"api.hooks.onWrite\");\n assertHookHandler(\"onWrite\", hook);\n hooks.onWrite.push({\n layer: extension.layer,\n name: extension.name,\n run: hook,\n });\n };\n const registerOnRead = (hook: OnReadHook): void => {\n assertExtensionCapability(extension, \"hooks\", \"api.hooks.onRead\");\n assertHookHandler(\"onRead\", hook);\n hooks.onRead.push({\n layer: extension.layer,\n name: extension.name,\n run: hook,\n });\n };\n const registerOnIndex = (hook: OnIndexHook): void => {\n assertExtensionCapability(extension, \"hooks\", \"api.hooks.onIndex\");\n assertHookHandler(\"onIndex\", hook);\n hooks.onIndex.push({\n layer: extension.layer,\n name: extension.name,\n run: hook,\n });\n };\n\n return {\n registerCommand,\n registerParser,\n registerPreflight,\n registerService,\n registerFlags,\n registerItemFields,\n registerItemTypes,\n registerMigration,\n registerRenderer,\n registerImporter,\n registerExporter,\n registerSearchProvider,\n registerVectorStoreAdapter,\n hooks: {\n beforeCommand: registerBeforeCommand,\n afterCommand: registerAfterCommand,\n onWrite: registerOnWrite,\n onRead: registerOnRead,\n onIndex: registerOnIndex,\n },\n };\n}\n\nasync function executeRegisteredHooks<TContext>(\n entries: Array<RegisteredExtensionHook<(context: TContext) => Promise<void> | void>>,\n hookName: HookName,\n context: TContext,\n): Promise<string[]> {\n const warnings: string[] = [];\n for (const entry of entries) {\n try {\n await entry.run(cloneContextSnapshot(context));\n } catch {\n warnings.push(`extension_hook_failed:${entry.layer}:${entry.name}:${hookName}`);\n }\n }\n return warnings;\n}\n\nfunction getRegistrationCounts(registrations: ExtensionRegistrationRegistry): ExtensionRegistrationCounts {\n const commandCount = registrations.commands.length;\n const flagCount = registrations.flags.reduce((total, entry) => total + entry.flags.length, 0);\n const itemFieldCount = registrations.item_fields.reduce((total, entry) => total + entry.fields.length, 0);\n const itemTypeCount = registrations.item_types.reduce((total, entry) => total + entry.types.length, 0);\n return {\n commands: commandCount,\n flags: flagCount,\n item_fields: itemFieldCount,\n item_types: itemTypeCount,\n migrations: registrations.migrations.length,\n importers: registrations.importers.length,\n exporters: registrations.exporters.length,\n search_providers: registrations.search_providers.length,\n vector_store_adapters: registrations.vector_store_adapters.length,\n };\n}\n\nfunction collectCommandCollisionWarnings(commands: ExtensionCommandRegistry): string[] {\n const warnings: string[] = [];\n const collectByCommand = <TEntry extends { layer: ExtensionLayer; name: string; command: string }>(\n entries: TEntry[],\n codePrefix: string,\n ): void => {\n const grouped = new Map<string, TEntry[]>();\n for (const entry of entries) {\n const bucket = grouped.get(entry.command) ?? [];\n bucket.push(entry);\n grouped.set(entry.command, bucket);\n }\n for (const command of [...grouped.keys()].sort((left, right) => left.localeCompare(right))) {\n const bucket = grouped.get(command) ?? [];\n if (bucket.length <= 1) {\n continue;\n }\n const winner = bucket[bucket.length - 1];\n for (const displaced of bucket.slice(0, -1)) {\n warnings.push(\n `${codePrefix}:${command}:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`,\n );\n }\n }\n };\n\n collectByCommand(commands.handlers, \"extension_command_handler_collision\");\n collectByCommand(commands.overrides, \"extension_command_override_collision\");\n\n const handlerCommands = new Set(commands.handlers.map((entry) => entry.command));\n const overlapCommands = [...new Set(commands.overrides.map((entry) => entry.command))]\n .filter((command) => handlerCommands.has(command))\n .sort((left, right) => left.localeCompare(right));\n for (const command of overlapCommands) {\n warnings.push(`extension_command_override_handler_overlap:${command}`);\n }\n\n return warnings;\n}\n\nfunction collectRendererCollisionWarnings(renderers: ExtensionRendererRegistry): string[] {\n const grouped = new Map<OutputRendererFormat, RegisteredExtensionRendererOverride[]>();\n for (const entry of renderers.overrides) {\n const bucket = grouped.get(entry.format) ?? [];\n bucket.push(entry);\n grouped.set(entry.format, bucket);\n }\n const warnings: string[] = [];\n for (const format of [...grouped.keys()].sort((left, right) => left.localeCompare(right))) {\n const bucket = grouped.get(format) ?? [];\n if (bucket.length <= 1) {\n continue;\n }\n const winner = bucket[bucket.length - 1];\n for (const displaced of bucket.slice(0, -1)) {\n warnings.push(\n `extension_renderer_collision:${format}:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`,\n );\n }\n }\n return warnings;\n}\n\nfunction collectParserCollisionWarnings(parsers: ExtensionParserRegistry): string[] {\n const warnings: string[] = [];\n const grouped = new Map<string, RegisteredExtensionParserOverride[]>();\n for (const entry of parsers.overrides) {\n const bucket = grouped.get(entry.command) ?? [];\n bucket.push(entry);\n grouped.set(entry.command, bucket);\n }\n for (const command of [...grouped.keys()].sort((left, right) => left.localeCompare(right))) {\n const bucket = grouped.get(command) ?? [];\n if (bucket.length <= 1) {\n continue;\n }\n const winner = bucket[bucket.length - 1];\n for (const displaced of bucket.slice(0, -1)) {\n warnings.push(\n `extension_parser_override_collision:${command}:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`,\n );\n }\n }\n return warnings;\n}\n\nfunction collectPreflightCollisionWarnings(preflight: ExtensionPreflightRegistry): string[] {\n if (preflight.overrides.length <= 1) {\n return [];\n }\n const winner = preflight.overrides[preflight.overrides.length - 1];\n return preflight.overrides.slice(0, -1).map(\n (displaced) =>\n `extension_preflight_override_collision:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`,\n );\n}\n\nfunction collectServiceCollisionWarnings(services: ExtensionServiceRegistry): string[] {\n const warnings: string[] = [];\n const grouped = new Map<ExtensionServiceName, RegisteredExtensionServiceOverride[]>();\n for (const entry of services.overrides) {\n const bucket = grouped.get(entry.service) ?? [];\n bucket.push(entry);\n grouped.set(entry.service, bucket);\n }\n for (const service of [...grouped.keys()].sort((left, right) => left.localeCompare(right))) {\n const bucket = grouped.get(service) ?? [];\n if (bucket.length <= 1) {\n continue;\n }\n const winner = bucket[bucket.length - 1];\n for (const displaced of bucket.slice(0, -1)) {\n warnings.push(\n `extension_service_override_collision:${service}:${winner.layer}:${winner.name}:${displaced.layer}:${displaced.name}`,\n );\n }\n }\n return warnings;\n}\n\nexport async function activateExtensions(loadResult: ExtensionLoadResult): Promise<ExtensionActivationResult> {\n const hooks = createEmptyExtensionHookRegistry();\n const commands = createEmptyExtensionCommandRegistry();\n const parsers = createEmptyExtensionParserRegistry();\n const preflight = createEmptyExtensionPreflightRegistry();\n const services = createEmptyExtensionServiceRegistry();\n const renderers = createEmptyExtensionRendererRegistry();\n const registrations = createEmptyExtensionRegistrationRegistry();\n const failed: FailedExtensionActivation[] = [];\n const warnings: string[] = [];\n\n for (const extension of loadResult.loaded) {\n const activatable = resolveActivatableExtension(extension.module);\n if (!activatable) {\n continue;\n }\n\n try {\n await activatable.activate(\n createExtensionApi(extension, hooks, commands, parsers, preflight, services, renderers, registrations, warnings),\n );\n } catch (error: unknown) {\n warnings.push(`extension_activate_failed:${extension.layer}:${extension.name}`);\n const trace = extractRegistrationValidationTrace(error);\n failed.push({\n layer: extension.layer,\n name: extension.name,\n entry_path: extension.entry_path,\n error: formatUnknownError(error),\n trace,\n });\n }\n }\n\n const collisionWarnings = [\n ...collectCommandCollisionWarnings(commands),\n ...collectParserCollisionWarnings(parsers),\n ...collectPreflightCollisionWarnings(preflight),\n ...collectServiceCollisionWarnings(services),\n ...collectRendererCollisionWarnings(renderers),\n ];\n const mergedWarnings = [...new Set([...warnings, ...collisionWarnings])];\n\n return {\n hooks,\n commands,\n parsers,\n preflight,\n services,\n renderers,\n registrations,\n failed,\n warnings: mergedWarnings,\n hook_counts: {\n before_command: hooks.beforeCommand.length,\n after_command: hooks.afterCommand.length,\n on_write: hooks.onWrite.length,\n on_read: hooks.onRead.length,\n on_index: hooks.onIndex.length,\n },\n command_override_count: commands.overrides.length,\n command_handler_count: commands.handlers.length,\n parser_override_count: parsers.overrides.length,\n preflight_override_count: preflight.overrides.length,\n service_override_count: services.overrides.length,\n renderer_override_count: renderers.overrides.length,\n registration_counts: getRegistrationCounts(registrations),\n };\n}\n\nexport async function runBeforeCommandHooks(\n hooks: ExtensionHookRegistry,\n context: BeforeCommandHookContext,\n): Promise<string[]> {\n return executeRegisteredHooks(hooks.beforeCommand, \"beforeCommand\", context);\n}\n\nexport async function runAfterCommandHooks(\n hooks: ExtensionHookRegistry,\n context: AfterCommandHookContext,\n): Promise<string[]> {\n return executeRegisteredHooks(hooks.afterCommand, \"afterCommand\", context);\n}\n\nexport async function runOnWriteHooks(hooks: ExtensionHookRegistry, context: OnWriteHookContext): Promise<string[]> {\n return executeRegisteredHooks(hooks.onWrite, \"onWrite\", context);\n}\n\nexport async function runOnReadHooks(hooks: ExtensionHookRegistry, context: OnReadHookContext): Promise<string[]> {\n return executeRegisteredHooks(hooks.onRead, \"onRead\", context);\n}\n\nexport async function runOnIndexHooks(hooks: ExtensionHookRegistry, context: OnIndexHookContext): Promise<string[]> {\n return executeRegisteredHooks(hooks.onIndex, \"onIndex\", context);\n}\n\n\n\nexport async function runCommandHandler(\n commands: ExtensionCommandRegistry,\n context: CommandHandlerContext,\n): Promise<CommandHandlerResult> {\n const command = normalizeCommandName(context.command);\n if (command.length === 0) {\n return {\n handled: false,\n result: null,\n warnings: [],\n };\n }\n\n const matched = [...commands.handlers].reverse().find((entry) => entry.command === command);\n if (!matched) {\n return {\n handled: false,\n result: null,\n warnings: [],\n };\n }\n\n try {\n const result = await matched.run({\n command,\n args: cloneContextSnapshot(context.args),\n options: cloneContextSnapshot(context.options),\n global: cloneContextSnapshot(context.global),\n pm_root: context.pm_root,\n });\n return {\n handled: true,\n result,\n warnings: [],\n };\n } catch {\n return {\n handled: false,\n result: null,\n warnings: [`extension_command_handler_failed:${matched.layer}:${matched.name}:${matched.command}`],\n };\n }\n}\n\n\nexport async function runParserOverride(\n parsers: ExtensionParserRegistry,\n context: ParserOverrideContext,\n): Promise<ParserOverrideResult> {\n const command = normalizeCommandName(context.command);\n if (command.length === 0) {\n return {\n overridden: false,\n context: {\n command,\n args: cloneContextSnapshot(context.args),\n options: cloneCommandOptionsSnapshot(context.options),\n global: cloneGlobalOptionsSnapshot(context.global),\n pm_root: context.pm_root,\n },\n warnings: [],\n };\n }\n\n const matched = [...parsers.overrides].reverse().find((entry) => entry.command === command);\n if (!matched) {\n return {\n overridden: false,\n context: {\n command,\n args: cloneContextSnapshot(context.args),\n options: cloneCommandOptionsSnapshot(context.options),\n global: cloneGlobalOptionsSnapshot(context.global),\n pm_root: context.pm_root,\n },\n warnings: [],\n };\n }\n\n try {\n const delta = (await Promise.resolve(\n matched.run({\n command,\n args: cloneContextSnapshot(context.args),\n options: cloneCommandOptionsSnapshot(context.options),\n global: cloneGlobalOptionsSnapshot(context.global),\n pm_root: context.pm_root,\n }),\n )) ?? {};\n const nextArgs = Array.isArray(delta.args) ? cloneContextSnapshot(delta.args) : cloneContextSnapshot(context.args);\n const nextOptions = delta.options ? cloneCommandOptionsSnapshot(delta.options) : cloneCommandOptionsSnapshot(context.options);\n const nextGlobal = delta.global ? cloneGlobalOptionsSnapshot(delta.global) : cloneGlobalOptionsSnapshot(context.global);\n return {\n overridden: true,\n context: {\n command,\n args: nextArgs,\n options: nextOptions,\n global: nextGlobal,\n pm_root: context.pm_root,\n },\n warnings: [],\n };\n } catch {\n return {\n overridden: false,\n context: {\n command,\n args: cloneContextSnapshot(context.args),\n options: cloneCommandOptionsSnapshot(context.options),\n global: cloneGlobalOptionsSnapshot(context.global),\n pm_root: context.pm_root,\n },\n warnings: [`extension_parser_override_failed:${matched.layer}:${matched.name}:${matched.command}`],\n };\n }\n}\n\n\nexport async function runPreflightOverride(\n preflight: ExtensionPreflightRegistry,\n context: PreflightOverrideContext,\n): Promise<PreflightOverrideResult> {\n const matched = [...preflight.overrides].reverse()[0];\n const baseContext: CommandHandlerContext = {\n command: normalizeCommandName(context.command),\n args: cloneContextSnapshot(context.args),\n options: cloneCommandOptionsSnapshot(context.options),\n global: cloneGlobalOptionsSnapshot(context.global),\n pm_root: context.pm_root,\n };\n const baseDecision: PreflightRuntimeDecision = cloneContextSnapshot(context.decision);\n if (!matched) {\n return {\n overridden: false,\n context: baseContext,\n decision: baseDecision,\n warnings: [],\n };\n }\n\n try {\n const delta = (await Promise.resolve(\n matched.run({\n command: baseContext.command,\n args: cloneContextSnapshot(baseContext.args),\n options: cloneCommandOptionsSnapshot(baseContext.options),\n global: cloneGlobalOptionsSnapshot(baseContext.global),\n pm_root: baseContext.pm_root,\n decision: cloneContextSnapshot(baseDecision),\n }),\n )) ?? {};\n const nextContext: CommandHandlerContext = {\n command: baseContext.command,\n args: Array.isArray(delta.args) ? cloneContextSnapshot(delta.args) : baseContext.args,\n options: delta.options ? cloneCommandOptionsSnapshot(delta.options) : baseContext.options,\n global: delta.global ? cloneGlobalOptionsSnapshot(delta.global) : baseContext.global,\n pm_root: baseContext.pm_root,\n };\n const nextDecision: PreflightRuntimeDecision = {\n enforce_item_format_gate:\n typeof delta.enforce_item_format_gate === \"boolean\"\n ? delta.enforce_item_format_gate\n : baseDecision.enforce_item_format_gate,\n run_preflight_item_format_sync:\n typeof delta.run_preflight_item_format_sync === \"boolean\"\n ? delta.run_preflight_item_format_sync\n : baseDecision.run_preflight_item_format_sync,\n run_extension_migrations:\n typeof delta.run_extension_migrations === \"boolean\"\n ? delta.run_extension_migrations\n : baseDecision.run_extension_migrations,\n enforce_mandatory_migration_gate:\n typeof delta.enforce_mandatory_migration_gate === \"boolean\"\n ? delta.enforce_mandatory_migration_gate\n : baseDecision.enforce_mandatory_migration_gate,\n };\n return {\n overridden: true,\n context: nextContext,\n decision: nextDecision,\n warnings: [],\n };\n } catch {\n return {\n overridden: false,\n context: baseContext,\n decision: baseDecision,\n warnings: [`extension_preflight_override_failed:${matched.layer}:${matched.name}`],\n };\n }\n}\n\n\nfunction resolveDefaultServiceResult(context: ServiceOverrideContext): ServiceOverrideResult {\n return {\n handled: false,\n result: context.payload,\n warnings: [],\n };\n}\n\nexport function runServiceOverrideSync(\n services: ExtensionServiceRegistry,\n context: ServiceOverrideContext,\n): ServiceOverrideResult {\n const matched = [...services.overrides].reverse().find((entry) => entry.service === context.service);\n if (!matched) {\n return resolveDefaultServiceResult(context);\n }\n\n try {\n const result = matched.run({\n service: context.service,\n command: context.command ? normalizeCommandName(context.command) : undefined,\n args: context.args ? cloneContextSnapshot(context.args) : undefined,\n options: context.options ? cloneCommandOptionsSnapshot(context.options) : undefined,\n global: context.global ? cloneGlobalOptionsSnapshot(context.global) : undefined,\n pm_root: context.pm_root,\n payload: cloneContextSnapshot(context.payload),\n });\n if (result instanceof Promise) {\n return {\n handled: false,\n result: context.payload,\n warnings: [`extension_service_override_async_unsupported:${matched.layer}:${matched.name}:${matched.service}`],\n };\n }\n return {\n handled: true,\n result,\n warnings: [],\n };\n } catch {\n return {\n handled: false,\n result: context.payload,\n warnings: [`extension_service_override_failed:${matched.layer}:${matched.name}:${matched.service}`],\n };\n }\n}\n\nexport async function runServiceOverride(\n services: ExtensionServiceRegistry,\n context: ServiceOverrideContext,\n): Promise<ServiceOverrideResult> {\n const matched = [...services.overrides].reverse().find((entry) => entry.service === context.service);\n if (!matched) {\n return resolveDefaultServiceResult(context);\n }\n\n try {\n const result = await Promise.resolve(\n matched.run({\n service: context.service,\n command: context.command ? normalizeCommandName(context.command) : undefined,\n args: context.args ? cloneContextSnapshot(context.args) : undefined,\n options: context.options ? cloneCommandOptionsSnapshot(context.options) : undefined,\n global: context.global ? cloneGlobalOptionsSnapshot(context.global) : undefined,\n pm_root: context.pm_root,\n payload: cloneContextSnapshot(context.payload),\n }),\n );\n return {\n handled: true,\n result,\n warnings: [],\n };\n } catch {\n return {\n handled: false,\n result: context.payload,\n warnings: [`extension_service_override_failed:${matched.layer}:${matched.name}:${matched.service}`],\n };\n }\n}\n\nexport function runCommandOverride(\n commands: ExtensionCommandRegistry,\n context: CommandOverrideContext,\n): CommandOverrideResult {\n const command = normalizeCommandName(context.command);\n if (command.length === 0) {\n return {\n overridden: false,\n result: context.result,\n warnings: [],\n };\n }\n\n const matched = [...commands.overrides].reverse().find((entry) => entry.command === command);\n if (!matched) {\n return {\n overridden: false,\n result: context.result,\n warnings: [],\n };\n }\n\n try {\n const overrideOptions = cloneCommandOptionsSnapshot(context.options);\n const overrideGlobal = cloneGlobalOptionsSnapshot(context.global);\n const overrideResult = matched.run({\n command,\n args: cloneContextSnapshot(context.args),\n options: overrideOptions,\n global: overrideGlobal,\n pm_root: context.pm_root,\n result: cloneContextSnapshot(context.result),\n });\n if (overrideResult instanceof Promise) {\n return {\n overridden: false,\n result: context.result,\n warnings: [`extension_command_override_async_unsupported:${matched.layer}:${matched.name}:${matched.command}`],\n };\n }\n return {\n overridden: true,\n result: overrideResult,\n warnings: [],\n };\n } catch {\n return {\n overridden: false,\n result: context.result,\n warnings: [`extension_command_override_failed:${matched.layer}:${matched.name}:${matched.command}`],\n };\n }\n}\n\n\nexport function runRendererOverride(\n renderers: ExtensionRendererRegistry,\n context: RendererOverrideContext,\n): RendererOverrideResult {\n const matched = [...renderers.overrides].reverse().find((entry) => entry.format === context.format);\n if (!matched) {\n return {\n overridden: false,\n rendered: null,\n warnings: [],\n };\n }\n\n try {\n const rendererCommand = typeof context.command === \"string\" ? normalizeCommandName(context.command) : \"\";\n const rendererArgs = Array.isArray(context.args) ? cloneContextSnapshot(context.args) : [];\n const rendererOptions = cloneCommandOptionsSnapshot(context.options);\n const rendererGlobal = cloneGlobalOptionsSnapshot(context.global);\n const rendererPmRoot = typeof context.pm_root === \"string\" ? context.pm_root : \"\";\n const rendered = matched.run({\n format: context.format,\n command: rendererCommand,\n args: rendererArgs,\n options: rendererOptions,\n global: rendererGlobal,\n pm_root: rendererPmRoot,\n result: cloneContextSnapshot(context.result),\n });\n if (typeof rendered !== \"string\") {\n return {\n overridden: false,\n rendered: null,\n warnings: [`extension_renderer_invalid_result:${matched.layer}:${matched.name}:${matched.format}`],\n };\n }\n return {\n overridden: true,\n rendered,\n warnings: [],\n };\n } catch {\n return {\n overridden: false,\n rendered: null,\n warnings: [`extension_renderer_failed:${matched.layer}:${matched.name}:${matched.format}`],\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-registrations.js","sourceRoot":"","sources":["../../../src/core/extensions/runtime-registrations.ts"],"names":[],"mappings":"AAOA,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,aAAmD;IAC7F,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,aAAmD,EACnD,kBAAsC;IAEtC,MAAM,YAAY,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IACnE,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC;SAChD,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACrB,MAAM,cAAc,GAClB,yBAAyB,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAChE,yBAAyB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,cAAc,KAAK,YAAY,CAAC;IACzC,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,aAAmD,EACnD,iBAAqC;IAErC,MAAM,WAAW,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACjE,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,qBAAqB,CAAC;SACrD,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACrB,MAAM,cAAc,GAClB,yBAAyB,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAChE,yBAAyB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,cAAc,KAAK,WAAW,CAAC;IACxC,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,SAAuD;IAEvD,OAAO,SAAS,CAAC,kBAAkB,IAAI,SAAS,CAAC,UAAU,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"runtime-registrations.js","sourceRoot":"/","sources":["core/extensions/runtime-registrations.ts"],"names":[],"mappings":"AAOA,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,aAAmD;IAC7F,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,KAAK,MAAM,YAAY,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,aAAmD,EACnD,kBAAsC;IAEtC,MAAM,YAAY,GAAG,yBAAyB,CAAC,kBAAkB,CAAC,CAAC;IACnE,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC;SAChD,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACrB,MAAM,cAAc,GAClB,yBAAyB,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAChE,yBAAyB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,cAAc,KAAK,YAAY,CAAC;IACzC,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,aAAmD,EACnD,iBAAqC;IAErC,MAAM,WAAW,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACjE,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,qBAAqB,CAAC;SACrD,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACrB,MAAM,cAAc,GAClB,yBAAyB,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAChE,yBAAyB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,cAAc,KAAK,WAAW,CAAC;IACxC,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,SAAuD;IAEvD,OAAO,SAAS,CAAC,kBAAkB,IAAI,SAAS,CAAC,UAAU,CAAC;AAC9D,CAAC","sourcesContent":["import type {\n ExtensionRegistrationRegistry,\n RegisteredExtensionSchemaMigrationDefinition,\n RegisteredExtensionSearchProvider,\n RegisteredExtensionVectorStoreAdapter,\n} from \"./loader.js\";\n\nfunction normalizeRegistrationName(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const normalized = value.trim().toLowerCase();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function collectRegisteredItemFields(registrations: ExtensionRegistrationRegistry | null): Array<Record<string, unknown>> {\n if (!registrations) {\n return [];\n }\n const fields: Array<Record<string, unknown>> = [];\n for (const registration of registrations.item_fields) {\n for (const field of registration.fields) {\n fields.push(field);\n }\n }\n return fields;\n}\n\nexport function resolveRegisteredSearchProvider(\n registrations: ExtensionRegistrationRegistry | null,\n configuredProvider: string | undefined,\n): RegisteredExtensionSearchProvider | null {\n const providerName = normalizeRegistrationName(configuredProvider);\n if (!registrations || !providerName) {\n return null;\n }\n const matched = [...registrations.search_providers]\n .reverse()\n .find((registration) => {\n const definitionName =\n normalizeRegistrationName(registration.runtime_definition?.name) ??\n normalizeRegistrationName(registration.definition?.name);\n return definitionName === providerName;\n });\n return matched ?? null;\n}\n\nexport function resolveRegisteredVectorStoreAdapter(\n registrations: ExtensionRegistrationRegistry | null,\n configuredAdapter: string | undefined,\n): RegisteredExtensionVectorStoreAdapter | null {\n const adapterName = normalizeRegistrationName(configuredAdapter);\n if (!registrations || !adapterName) {\n return null;\n }\n const matched = [...registrations.vector_store_adapters]\n .reverse()\n .find((registration) => {\n const definitionName =\n normalizeRegistrationName(registration.runtime_definition?.name) ??\n normalizeRegistrationName(registration.definition?.name);\n return definitionName === adapterName;\n });\n return matched ?? null;\n}\n\nexport function getMigrationRuntimeDefinition(\n migration: RegisteredExtensionSchemaMigrationDefinition,\n): Record<string, unknown> {\n return migration.runtime_definition ?? migration.definition;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fs-utils.js","sourceRoot":"","sources":["../../../src/core/fs/fs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,QAAgB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,EACP,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC1G,CAAC;IACF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,IAAY;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,IAAY;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAK,KAA2B,CAAC,IAAI,KAAK,IAAI,CAAC;AACtH,CAAC"}
1
+ {"version":3,"file":"fs-utils.js","sourceRoot":"/","sources":["core/fs/fs-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAe;IAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,QAAgB;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,EACP,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC1G,CAAC;IACF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,IAAY;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IACzD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,IAAY;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAK,KAA2B,CAAC,IAAI,KAAK,IAAI,CAAC;AACtH,CAAC","sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport crypto from \"node:crypto\";\n\nexport async function ensureDir(dirPath: string): Promise<void> {\n await fs.mkdir(dirPath, { recursive: true });\n}\n\nexport async function pathExists(targetPath: string): Promise<boolean> {\n try {\n await fs.access(targetPath);\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function readFileIfExists(targetPath: string): Promise<string | null> {\n try {\n return await fs.readFile(targetPath, \"utf8\");\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return null;\n }\n throw error;\n }\n}\n\nexport async function writeFileAtomic(targetPath: string, contents: string): Promise<void> {\n const dirPath = path.dirname(targetPath);\n await ensureDir(dirPath);\n const tempPath = path.join(\n dirPath,\n `.${path.basename(targetPath)}.${process.pid}.${Date.now()}.${crypto.randomBytes(4).toString(\"hex\")}.tmp`,\n );\n await fs.writeFile(tempPath, contents, \"utf8\");\n await fs.rename(tempPath, targetPath);\n}\n\nexport async function appendLineAtomic(targetPath: string, line: string): Promise<void> {\n const dirPath = path.dirname(targetPath);\n await ensureDir(dirPath);\n const handle = await fs.open(targetPath, \"a\");\n try {\n await handle.writeFile(`${line}\\n`, \"utf8\");\n } finally {\n await handle.close();\n }\n}\n\nexport async function removeFileIfExists(targetPath: string): Promise<void> {\n try {\n await fs.unlink(targetPath);\n } catch (error: unknown) {\n if (!isErrno(error, \"ENOENT\")) {\n throw error;\n }\n }\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/fs/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["core/fs/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC","sourcesContent":["export * from \"./fs-utils.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"history-stream-policy.js","sourceRoot":"","sources":["../../../src/core/history/history-stream-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsBnD,SAAS,qBAAqB,CAAC,OAAiB;IAC9C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3H,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc,EAAE,YAAoB;IACpE,OAAO,IAAI,UAAU,CACnB,8BAA8B,MAAM,KAAK,YAAY,iFAAiF,EACtI,SAAS,CAAC,SAAS,CACpB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,YAAoB;IACnE,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,GAAG,YAAY,sBAAsB;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,MAAiC;IACvF,OAAO,kCAAkC,CAAC;QACxC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAqC;IAErC,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC9D,MAAM,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;QACvD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,WAAW;QAC7B,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"history-stream-policy.js","sourceRoot":"/","sources":["core/history/history-stream-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsBnD,SAAS,qBAAqB,CAAC,OAAiB;IAC9C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3H,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc,EAAE,YAAoB;IACpE,OAAO,IAAI,UAAU,CACnB,8BAA8B,MAAM,KAAK,YAAY,iFAAiF,EACtI,SAAS,CAAC,SAAS,CACpB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,YAAoB;IACnE,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,GAAG,YAAY,sBAAsB;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,MAAiC;IACvF,OAAO,kCAAkC,CAAC;QACxC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAqC;IAErC,MAAM,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC9D,MAAM,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;QACvD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,WAAW;QAC7B,QAAQ;KACT,CAAC;AACJ,CAAC","sourcesContent":["import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { runActiveOnWriteHooks } from \"../extensions/index.js\";\nimport { ensureDir, pathExists } from \"../fs/fs-utils.js\";\nimport { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\nimport { getHistoryPath } from \"../store/paths.js\";\nimport type { PmSettings } from \"../../types/index.js\";\n\ninterface HistoryStreamPolicyParams {\n pmRoot: string;\n settings: PmSettings;\n itemId: string;\n commandLabel: string;\n}\n\ninterface HistoryStreamPolicyManyParams {\n pmRoot: string;\n settings: PmSettings;\n itemIds: string[];\n commandLabel: string;\n}\n\nexport interface HistoryStreamPolicyResult {\n auto_created_ids: string[];\n warnings: string[];\n}\n\nfunction toSortedUniqueItemIds(itemIds: string[]): string[] {\n return [...new Set(itemIds.filter((value) => value.trim().length > 0))].sort((left, right) => left.localeCompare(right));\n}\n\nfunction strictMissingStreamError(itemId: string, commandLabel: string): PmCliError {\n return new PmCliError(\n `Missing history stream for ${itemId}. ${commandLabel} requires history streams when settings.history.missing_stream is strict_error.`,\n EXIT_CODE.NOT_FOUND,\n );\n}\n\nasync function createStream(historyPath: string, commandLabel: string): Promise<string[]> {\n await ensureDir(path.dirname(historyPath));\n const handle = await fs.open(historyPath, \"a\");\n await handle.close();\n return runActiveOnWriteHooks({\n path: historyPath,\n scope: \"project\",\n op: `${commandLabel}:history:auto_create`,\n });\n}\n\nexport async function enforceHistoryStreamPolicyForItem(params: HistoryStreamPolicyParams): Promise<HistoryStreamPolicyResult> {\n return enforceHistoryStreamPolicyForItems({\n pmRoot: params.pmRoot,\n settings: params.settings,\n itemIds: [params.itemId],\n commandLabel: params.commandLabel,\n });\n}\n\nexport async function enforceHistoryStreamPolicyForItems(\n params: HistoryStreamPolicyManyParams,\n): Promise<HistoryStreamPolicyResult> {\n const ids = toSortedUniqueItemIds(params.itemIds);\n const autoCreated: string[] = [];\n const warnings: string[] = [];\n\n for (const itemId of ids) {\n const historyPath = getHistoryPath(params.pmRoot, itemId);\n if (await pathExists(historyPath)) {\n continue;\n }\n if (params.settings.history.missing_stream === \"strict_error\") {\n throw strictMissingStreamError(itemId, params.commandLabel);\n }\n warnings.push(...(await createStream(historyPath, params.commandLabel)));\n warnings.push(`history_stream_auto_created:${itemId}`);\n autoCreated.push(itemId);\n }\n\n return {\n auto_created_ids: autoCreated,\n warnings,\n };\n}\n"]}