@ashx-j/lunr 0.2.11 → 0.2.13

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 (342) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +211 -236
  3. package/dist/builtin-extensions/ashxj-tui.d.ts +3 -0
  4. package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
  5. package/dist/builtin-extensions/ashxj-tui.js +28 -11
  6. package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
  7. package/dist/builtin-extensions/index.d.ts.map +1 -1
  8. package/dist/builtin-extensions/index.js +0 -2
  9. package/dist/builtin-extensions/index.js.map +1 -1
  10. package/dist/builtin-extensions/lunr-cron.d.ts +1 -1
  11. package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
  12. package/dist/builtin-extensions/lunr-cron.js +1 -1
  13. package/dist/builtin-extensions/lunr-cron.js.map +1 -1
  14. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.d.ts.map +1 -1
  15. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js +3 -3
  16. package/dist/builtin-extensions/pi-subagents/src/extension/chain-validation.js.map +1 -1
  17. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts +0 -2
  18. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.d.ts.map +1 -1
  19. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js +1 -23
  20. package/dist/builtin-extensions/pi-subagents/src/extension/doctor.js.map +1 -1
  21. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
  22. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js +6 -7
  23. package/dist/builtin-extensions/pi-subagents/src/extension/fanout-child.js.map +1 -1
  24. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts +1 -1
  25. package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
  26. package/dist/builtin-extensions/pi-subagents/src/extension/index.js +7 -14
  27. package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
  28. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts +12 -9
  29. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  30. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js +38 -34
  31. package/dist/builtin-extensions/pi-subagents/src/extension/schemas.js.map +1 -1
  32. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts +3 -3
  33. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  34. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js +32 -47
  35. package/dist/builtin-extensions/pi-subagents/src/extension/tool-description.js.map +1 -1
  36. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts +2 -2
  37. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.d.ts.map +1 -1
  38. package/dist/builtin-extensions/pi-subagents/src/intercom/intercom-bridge.js.map +1 -1
  39. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts +7 -10
  40. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  41. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js +90 -109
  42. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  43. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts +3 -2
  44. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
  45. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js +37 -50
  46. package/dist/builtin-extensions/pi-subagents/src/runs/background/async-resume.js.map +1 -1
  47. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.d.ts.map +1 -1
  48. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js +1 -1
  49. package/dist/builtin-extensions/pi-subagents/src/runs/background/run-status.js.map +1 -1
  50. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts +4 -0
  51. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -1
  52. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js +5 -5
  53. package/dist/builtin-extensions/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -1
  54. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  55. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +31 -13
  56. package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  57. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts +2 -2
  58. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.d.ts.map +1 -1
  59. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-clarify.js.map +1 -1
  60. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts +4 -3
  61. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
  62. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +48 -20
  63. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
  64. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +2 -2
  65. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  66. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +90 -64
  67. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  68. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts +6 -8
  69. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  70. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +262 -161
  71. package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  72. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts +2 -1
  73. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.d.ts.map +1 -1
  74. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js +24 -33
  75. package/dist/builtin-extensions/pi-subagents/src/runs/shared/acceptance.js.map +1 -1
  76. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts +25 -0
  77. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.d.ts.map +1 -0
  78. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js +51 -0
  79. package/dist/builtin-extensions/pi-subagents/src/runs/shared/child-tools.js.map +1 -0
  80. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.d.ts.map +1 -1
  81. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js +20 -3
  82. package/dist/builtin-extensions/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -1
  83. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +4 -1
  84. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  85. package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  86. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts +5 -0
  87. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.d.ts.map +1 -1
  88. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js +9 -3
  89. package/dist/builtin-extensions/pi-subagents/src/runs/shared/pi-args.js.map +1 -1
  90. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  91. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +2 -2
  92. package/dist/builtin-extensions/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  93. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts +2 -2
  94. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.d.ts.map +1 -1
  95. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js +20 -17
  96. package/dist/builtin-extensions/pi-subagents/src/runs/shared/task-intent.js.map +1 -1
  97. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts +70 -0
  98. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.d.ts.map +1 -0
  99. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js +153 -0
  100. package/dist/builtin-extensions/pi-subagents/src/shared/child-spec.js.map +1 -0
  101. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts +13 -8
  102. package/dist/builtin-extensions/pi-subagents/src/shared/settings.d.ts.map +1 -1
  103. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js +20 -51
  104. package/dist/builtin-extensions/pi-subagents/src/shared/settings.js.map +1 -1
  105. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +80 -20
  106. package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
  107. package/dist/builtin-extensions/pi-subagents/src/shared/types.js +10 -2
  108. package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
  109. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts +2 -2
  110. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
  111. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +20 -32
  112. package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
  113. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts +2 -1
  114. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  115. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +23 -449
  116. package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
  117. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +2 -1
  118. package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
  119. package/dist/builtin-extensions/pi-subagents/src/tui/render.js +13 -11
  120. package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
  121. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts +2 -1
  122. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.d.ts.map +1 -1
  123. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js +18 -17
  124. package/dist/builtin-extensions/pi-subagents/src/watchdog/runtime.js.map +1 -1
  125. package/dist/builtin-extensions/simple-pi-memory.d.ts +2 -2
  126. package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
  127. package/dist/builtin-extensions/simple-pi-memory.js +41 -17
  128. package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
  129. package/dist/catalog/models.json +1 -1
  130. package/dist/catalog/providers/amazon-bedrock.json +1 -1
  131. package/dist/catalog/providers/azure-openai-responses.json +1 -1
  132. package/dist/catalog/providers/cloudflare-ai-gateway.json +1 -1
  133. package/dist/catalog/providers/cloudflare-workers-ai.json +1 -1
  134. package/dist/catalog/providers/fireworks.json +1 -1
  135. package/dist/catalog/providers/github-copilot.json +1 -1
  136. package/dist/catalog/providers/huggingface.json +1 -1
  137. package/dist/catalog/providers/minimax-cn.json +1 -1
  138. package/dist/catalog/providers/minimax.json +1 -1
  139. package/dist/catalog/providers/mistral.json +1 -1
  140. package/dist/catalog/providers/nvidia.json +1 -1
  141. package/dist/catalog/providers/openai.json +1 -1
  142. package/dist/catalog/providers/opencode-go.json +1 -1
  143. package/dist/catalog/providers/opencode.json +1 -1
  144. package/dist/catalog/providers/openrouter.json +1 -1
  145. package/dist/catalog/providers/qwen-cloud-cn.json +1 -1
  146. package/dist/catalog/providers/qwen-cloud.json +1 -1
  147. package/dist/catalog/providers/qwen-token-plan-cn.json +1 -1
  148. package/dist/catalog/providers/qwen-token-plan.json +1 -1
  149. package/dist/catalog/providers/together.json +1 -1
  150. package/dist/catalog/providers/vercel-ai-gateway.json +1 -1
  151. package/dist/catalog/providers/zai-coding-cn.json +1 -1
  152. package/dist/catalog/providers/zai.json +1 -1
  153. package/dist/catalog/publication.json +3 -3
  154. package/dist/core/agent-session.d.ts +7 -1
  155. package/dist/core/agent-session.d.ts.map +1 -1
  156. package/dist/core/agent-session.js +34 -4
  157. package/dist/core/agent-session.js.map +1 -1
  158. package/dist/core/context-breakdown.d.ts +3 -1
  159. package/dist/core/context-breakdown.d.ts.map +1 -1
  160. package/dist/core/context-breakdown.js +5 -2
  161. package/dist/core/context-breakdown.js.map +1 -1
  162. package/dist/core/customize.d.ts +2 -0
  163. package/dist/core/customize.d.ts.map +1 -1
  164. package/dist/core/customize.js +6 -0
  165. package/dist/core/customize.js.map +1 -1
  166. package/dist/core/memory-cap.d.ts +4 -8
  167. package/dist/core/memory-cap.d.ts.map +1 -1
  168. package/dist/core/memory-cap.js +8 -8
  169. package/dist/core/memory-cap.js.map +1 -1
  170. package/dist/core/permissions.d.ts +2 -0
  171. package/dist/core/permissions.d.ts.map +1 -1
  172. package/dist/core/permissions.js +30 -14
  173. package/dist/core/permissions.js.map +1 -1
  174. package/dist/core/plan-mode.d.ts.map +1 -1
  175. package/dist/core/plan-mode.js +1 -9
  176. package/dist/core/plan-mode.js.map +1 -1
  177. package/dist/core/rollback.d.ts.map +1 -1
  178. package/dist/core/rollback.js +1 -1
  179. package/dist/core/rollback.js.map +1 -1
  180. package/dist/core/settings-manager.d.ts +16 -5
  181. package/dist/core/settings-manager.d.ts.map +1 -1
  182. package/dist/core/settings-manager.js +37 -10
  183. package/dist/core/settings-manager.js.map +1 -1
  184. package/dist/core/slash-commands.d.ts.map +1 -1
  185. package/dist/core/slash-commands.js +1 -5
  186. package/dist/core/slash-commands.js.map +1 -1
  187. package/dist/core/subagent-permission-inherit.d.ts +34 -22
  188. package/dist/core/subagent-permission-inherit.d.ts.map +1 -1
  189. package/dist/core/subagent-permission-inherit.js +37 -80
  190. package/dist/core/subagent-permission-inherit.js.map +1 -1
  191. package/dist/core/swarm.d.ts.map +1 -1
  192. package/dist/core/swarm.js +13 -7
  193. package/dist/core/swarm.js.map +1 -1
  194. package/dist/core/system-prompt.d.ts +6 -4
  195. package/dist/core/system-prompt.d.ts.map +1 -1
  196. package/dist/core/system-prompt.js +38 -48
  197. package/dist/core/system-prompt.js.map +1 -1
  198. package/dist/core/usage-adapters/openai-codex.d.ts +1 -1
  199. package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
  200. package/dist/core/usage-adapters/openai-codex.js +22 -17
  201. package/dist/core/usage-adapters/openai-codex.js.map +1 -1
  202. package/dist/core/usage-service.d.ts +10 -1
  203. package/dist/core/usage-service.d.ts.map +1 -1
  204. package/dist/core/usage-service.js +17 -6
  205. package/dist/core/usage-service.js.map +1 -1
  206. package/dist/gateway/agent-bridge.d.ts.map +1 -1
  207. package/dist/gateway/agent-bridge.js +1 -4
  208. package/dist/gateway/agent-bridge.js.map +1 -1
  209. package/dist/gateway/cron.d.ts.map +1 -1
  210. package/dist/gateway/cron.js +1 -4
  211. package/dist/gateway/cron.js.map +1 -1
  212. package/dist/index.d.ts +1 -1
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js.map +1 -1
  215. package/dist/main.d.ts.map +1 -1
  216. package/dist/main.js +0 -5
  217. package/dist/main.js.map +1 -1
  218. package/dist/migrations.d.ts +2 -0
  219. package/dist/migrations.d.ts.map +1 -1
  220. package/dist/migrations.js +21 -0
  221. package/dist/migrations.js.map +1 -1
  222. package/dist/modes/interactive/components/settings-selector.d.ts +7 -4
  223. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  224. package/dist/modes/interactive/components/settings-selector.js +122 -162
  225. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  226. package/dist/modes/interactive/components/usage-view.d.ts +1 -1
  227. package/dist/modes/interactive/components/usage-view.d.ts.map +1 -1
  228. package/dist/modes/interactive/components/usage-view.js +7 -4
  229. package/dist/modes/interactive/components/usage-view.js.map +1 -1
  230. package/dist/modes/interactive/interactive-mode.d.ts +1 -2
  231. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  232. package/dist/modes/interactive/interactive-mode.js +55 -96
  233. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  234. package/dist/modes/interactive/skill-tag-autocomplete.d.ts +13 -0
  235. package/dist/modes/interactive/skill-tag-autocomplete.d.ts.map +1 -0
  236. package/dist/modes/interactive/skill-tag-autocomplete.js +72 -0
  237. package/dist/modes/interactive/skill-tag-autocomplete.js.map +1 -0
  238. package/docs/compaction.md +23 -23
  239. package/docs/containerization.md +24 -24
  240. package/docs/custom-provider.md +18 -18
  241. package/docs/development.md +16 -15
  242. package/docs/docs.json +6 -2
  243. package/docs/extensions.md +82 -80
  244. package/docs/features.md +102 -0
  245. package/docs/index.md +25 -19
  246. package/docs/json.md +7 -7
  247. package/docs/keybindings.md +4 -4
  248. package/docs/models.md +2 -2
  249. package/docs/packages.md +38 -42
  250. package/docs/prompt-templates.md +4 -4
  251. package/docs/providers.md +22 -10
  252. package/docs/quickstart.md +81 -46
  253. package/docs/rpc.md +7 -13
  254. package/docs/sdk.md +43 -41
  255. package/docs/security.md +18 -18
  256. package/docs/session-format.md +9 -9
  257. package/docs/sessions.md +13 -12
  258. package/docs/settings.md +63 -24
  259. package/docs/shell-aliases.md +2 -2
  260. package/docs/skills.md +21 -11
  261. package/docs/terminal-setup.md +5 -5
  262. package/docs/termux.md +7 -7
  263. package/docs/themes.md +12 -14
  264. package/docs/tmux.md +4 -4
  265. package/docs/tui.md +23 -23
  266. package/docs/usage.md +112 -87
  267. package/docs/windows.md +10 -2
  268. package/examples/README.md +3 -1
  269. package/examples/extensions/README.md +6 -6
  270. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  271. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  272. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  273. package/examples/extensions/doom-overlay/README.md +2 -2
  274. package/examples/extensions/gondolin/package-lock.json +2 -2
  275. package/examples/extensions/gondolin/package.json +1 -1
  276. package/examples/extensions/plan-mode/README.md +3 -1
  277. package/examples/extensions/sandbox/package-lock.json +2 -2
  278. package/examples/extensions/sandbox/package.json +1 -1
  279. package/examples/extensions/subagent/README.md +13 -11
  280. package/examples/extensions/todo.ts +2 -1
  281. package/examples/extensions/with-deps/package-lock.json +2 -2
  282. package/examples/extensions/with-deps/package.json +1 -1
  283. package/examples/sdk/README.md +9 -5
  284. package/package.json +6 -7
  285. package/dist/builtin-extensions/lunr-behavior.d.ts +0 -44
  286. package/dist/builtin-extensions/lunr-behavior.d.ts.map +0 -1
  287. package/dist/builtin-extensions/lunr-behavior.js +0 -213
  288. package/dist/builtin-extensions/lunr-behavior.js.map +0 -1
  289. package/dist/builtin-extensions/pi-subagents/agents/context-builder.md +0 -46
  290. package/dist/builtin-extensions/pi-subagents/agents/deep-researcher.md +0 -36
  291. package/dist/builtin-extensions/pi-subagents/agents/delegate.md +0 -12
  292. package/dist/builtin-extensions/pi-subagents/agents/oracle.md +0 -73
  293. package/dist/builtin-extensions/pi-subagents/agents/planner.md +0 -55
  294. package/dist/builtin-extensions/pi-subagents/agents/research-writer.md +0 -37
  295. package/dist/builtin-extensions/pi-subagents/agents/researcher.md +0 -52
  296. package/dist/builtin-extensions/pi-subagents/agents/reviewer.md +0 -79
  297. package/dist/builtin-extensions/pi-subagents/agents/scout.md +0 -50
  298. package/dist/builtin-extensions/pi-subagents/agents/worker.md +0 -55
  299. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts +0 -20
  300. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.d.ts.map +0 -1
  301. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js +0 -1273
  302. package/dist/builtin-extensions/pi-subagents/src/agents/agent-management.js.map +0 -1
  303. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts +0 -49
  304. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.d.ts.map +0 -1
  305. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js +0 -252
  306. package/dist/builtin-extensions/pi-subagents/src/agents/agent-memory.js.map +0 -1
  307. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts +0 -3
  308. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.d.ts.map +0 -1
  309. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js +0 -6
  310. package/dist/builtin-extensions/pi-subagents/src/agents/agent-scope.js.map +0 -1
  311. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts +0 -3
  312. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.d.ts.map +0 -1
  313. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js +0 -23
  314. package/dist/builtin-extensions/pi-subagents/src/agents/agent-selection.js.map +0 -1
  315. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts +0 -8
  316. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.d.ts.map +0 -1
  317. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js +0 -143
  318. package/dist/builtin-extensions/pi-subagents/src/agents/agent-serializer.js.map +0 -1
  319. package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts +0 -176
  320. package/dist/builtin-extensions/pi-subagents/src/agents/agents.d.ts.map +0 -1
  321. package/dist/builtin-extensions/pi-subagents/src/agents/agents.js +0 -1326
  322. package/dist/builtin-extensions/pi-subagents/src/agents/agents.js.map +0 -1
  323. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts +0 -7
  324. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.d.ts.map +0 -1
  325. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js +0 -307
  326. package/dist/builtin-extensions/pi-subagents/src/agents/chain-serializer.js.map +0 -1
  327. package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts +0 -8
  328. package/dist/builtin-extensions/pi-subagents/src/agents/identity.d.ts.map +0 -1
  329. package/dist/builtin-extensions/pi-subagents/src/agents/identity.js +0 -30
  330. package/dist/builtin-extensions/pi-subagents/src/agents/identity.js.map +0 -1
  331. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts +0 -35
  332. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.d.ts.map +0 -1
  333. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js +0 -151
  334. package/dist/builtin-extensions/pi-subagents/src/agents/proactive-skills.js.map +0 -1
  335. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts +0 -131
  336. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.d.ts.map +0 -1
  337. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js +0 -491
  338. package/dist/builtin-extensions/pi-subagents/src/profiles/profiles.js.map +0 -1
  339. package/dist/core/behavior-preset.d.ts +0 -60
  340. package/dist/core/behavior-preset.d.ts.map +0 -1
  341. package/dist/core/behavior-preset.js +0 -257
  342. package/dist/core/behavior-preset.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/agents/agents.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAyB,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAevE,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAClC,iBAAiB;IACjB,UAAU;IACV,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,UAAU;IACV,OAAO;IACP,QAAQ;CACC,CAAC;AAEX,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAoB;IACvE,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CAClD;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY,EAAW;IACnE,OAAO,IAAI,KAAK,UAAU,CAAC;AAAA,CAC3B;AAED,MAAM,UAAU,oBAAoB,GAAY;IAC/C,OAAO,KAAK,CAAC;AAAA,CACb;AAqGD,MAAM,uBAAuB,GAAqB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AACpE,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAA4B,CAAC;AAgDvE,SAAS,eAAe,GAAW;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;AAAA,CAC1C;AAOD,IAAI,mBAAmB,GAAkB,IAAI,CAAC;AAE9C,SAAS,sBAAsB,CAAC,QAAgB,EAAW;IAC1D,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACR,uEAAuE;QACvE,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IACb,CAAC;AAAA,CACD;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAW;IACxD,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;YAC1E,CAAC,CAAE,KAA4B,CAAC,IAAI;YACpC,CAAC,CAAC,SAAS,CAAC;QACb,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,KAAK,CAAC;IACb,CAAC;AAAA,CACD;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAW;IAClD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;WACnB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;WACvB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC;AAAA,CAC3F;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAsB;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvC,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CAChE;AAED,SAAS,WAAW,CAAC,QAAgB,EAAU;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,CACvE;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAkD;IAC5F,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxB,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;YACpB,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,SAAS,CAAC;QAClB,CAAC;IACF,CAAC;SAAM,CAAC;QACP,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACrC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACjC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvF,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzH,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAAA,CAC1C;AAED,SAAS,0BAA0B,CAAC,MAAc,EAAE,OAAe,EAAsB;IACxF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5E,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACnD,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9G,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AAAA,CACjB;AAED,SAAS,gBAAgB,GAAkB;IAC1C,IAAI,mBAAmB,KAAK,IAAI;QAAE,OAAO,mBAAmB,CAAC;IAC7D,IAAI,CAAC;QACJ,mBAAmB,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5G,OAAO,mBAAmB,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,mBAAmB,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACb,CAAC;AAAA,CACD;AAED,SAAS,WAAW,CAAC,KAAc,EAAY;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAAA,CACtG;AAED,SAAS,mCAAmC,CAAC,WAAmB,EAAwB;IACvF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE7F,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAI,GAAoC,CAAC,cAAc,CAAC,CAAC;IAC1E,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,WAAsC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,GAAI,GAAwB,CAAC,EAAE,CAAC;IACxC,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAI,EAA8B,CAAC,SAAS,CAAC;QAC5D,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7E,KAAK,CAAC,IAAI,CAAC,SAAoC,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5F,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAAA,CAC1B;AAED,SAAS,kCAAkC,CAAC,cAAsB,EAAY;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACJ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAAE,SAAS;QAE9D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,YAAyB,CAAC;YAC9B,IAAI,CAAC;gBACJ,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACR,SAAS;YACV,CAAC;YACD,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;gBACvC,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;oBAAE,SAAS;gBACxE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,CAAC;YACD,SAAS;QACV,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AAAA,CACb;AAED,SAAS,2BAA2B,CAAC,YAAoB,EAAE,OAAe,EAAY;IACrF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAI,QAAmC,CAAC,QAAQ,CAAC;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,QAAQ;YAC9C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA8B,CAAC,MAAM,KAAK,QAAQ;gBAC1G,CAAC,CAAE,KAA4B,CAAC,MAAM;gBACtC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,aAAa;YAAE,SAAS;QAC7B,MAAM,WAAW,GAAG,0BAA0B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AAAA,CACb;AAED,SAAS,2BAA2B,CAAC,GAAW,EAAE,OAAO,GAAsD,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAwB;IACjL,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACvD,MAAM,YAAY,GAAG;QACpB,WAAW;KACX,CAAC;IAEF,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC1D,YAAY,CAAC,IAAI,CAChB,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,EACzF,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAC9F,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,YAAY,CAAC,IAAI,CAChB,GAAG,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,EACjF,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAC9E,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACtC,IAAI,UAAU;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,kCAAkC,CAAC,UAAU,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;YAAE,SAAS;QAC1C,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,mCAAmC,CAAC,YAAY,CAAC,CAAC;QAChE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACvC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACvC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAAA,CAC1B;AAED,SAAS,aAAa,CAAC,QAA8B,EAAmD;IACvG,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO;QACN,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;AAAA,CACF;AAED,SAAS,YAAY,CAAC,MAAqD,EAAwB;IAClG,MAAM,MAAM,GAAG;QACd,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;KAC7D,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CAC9C;AAED,SAAS,WAAW,CAAC,CAAuB,EAAE,CAAuB,EAAW;IAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACZ;AAED,SAAS,iBAAiB,CAAC,KAAkB,EAA4B;IACxE,OAAO;QACN,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACpD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACjD,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,sBAAsB,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;QACpG,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU;KAC5B,CAAC;AAAA,CACF;AAED,SAAS,kBAAkB,CAAC,QAAoC,EAA8B;IAC7F,OAAO;QACN,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE;YAC9F,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,QAAQ,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,GAAG,CAAC,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9G,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,QAAQ,CAAC,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9K,GAAG,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChO,CAAC;AAAA,CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAiB;IAClE,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,OAAO,IAAI,EAAE,CAAC;QACb,IAAI,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YACnG,OAAO,UAAU,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC1C,UAAU,GAAG,SAAS,CAAC;IACxB,CAAC;AAAA,CACD;AAED,SAAS,wBAAwB,GAAW;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;AAAA,CACjD;AAED,SAAS,2BAA2B,CAAC,GAAW,EAAiB;IAChE,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAAA,CACzF;AAED,SAAS,sBAAsB,CAAC,QAAgB,EAA2B;IAC1E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACJ,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,MAAM,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,MAAM,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,+BAA+B,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAiC,CAAC;AAAA,CACzC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,QAAiC,EAAQ;IACrF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAAA,CAC9E;AAED,SAAS,+BAA+B,CACvC,KAAc,EACd,IAAuD,EACxB;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,QAAQ,kBAAkB,IAAI,CAAC,KAAK,2CAA2C,CAAC,CAAC;IAC9I,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,QAAQ,kBAAkB,IAAI,CAAC,KAAK,2CAA2C,CAAC,CAAC;QAC9I,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AAAA,CACb;AAED,SAAS,yBAAyB,CACjC,IAAY,EACZ,KAAc,EACd,QAAgB,EACyB;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,sBAAsB,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAEhD,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;YAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;;YACtF,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,oDAAoD,CAAC,CAAC;IACtH,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK;YAAE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;;YAClG,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,uDAAuD,CAAC,CAAC;IACzH,CAAC;IAED,IAAI,kBAAkB,IAAI,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,gBAAgB,KAAK,QAAQ,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjF,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,mEAAmE,CAAC,CAAC;QAChI,CAAC;IACF,CAAC;IAED,IAAI,uBAAuB,IAAI,KAAK,EAAE,CAAC;QACtC,IAAI,OAAO,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACtD,QAAQ,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,4DAA4D,CAAC,CAAC;QACzH,CAAC;IACF,CAAC;IAED,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAC9C,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,oDAAoD,CAAC,CAAC;QACjH,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,cAAc,KAAK,OAAO,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAC3G,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,qEAAqE,CAAC,CAAC;QAClI,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,cAAc,KAAK,WAAW,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YACjH,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAChD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,2EAA2E,CAAC,CAAC;QACxI,CAAC;IACF,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpC,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,+CAA+C,CAAC,CAAC;QAC5G,CAAC;IACF,CAAC;IAED,IAAI,iBAAiB,IAAI,KAAK,EAAE,CAAC;QAChC,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAChD,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAClD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,sDAAsD,CAAC,CAAC;QACnH,CAAC;IACF,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;QAC7B,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACzG,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAA8B,CAAC;QAC5D,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,0DAA0D,CAAC,CAAC;QACvH,CAAC;IACF,CAAC;IAED,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;YAAE,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;;YAClF,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,SAAS,QAAQ,kDAAkD,CAAC,CAAC;IACpH,CAAC;IAED,MAAM,cAAc,GAAG,+BAA+B,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC1H,IAAI,cAAc,KAAK,SAAS;QAAE,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;IAE3E,MAAM,MAAM,GAAG,+BAA+B,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClG,IAAI,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAEnD,MAAM,KAAK,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/F,IAAI,KAAK,KAAK,SAAS;QAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAEhD,MAAM,sBAAsB,GAAG,+BAA+B,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAClJ,IAAI,sBAAsB,KAAK,SAAS;QAAE,QAAQ,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IAEnG,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CAC/D;AAED,SAAS,oBAAoB,CAAC,QAAuB,EAAoB;IACxE,IAAI,CAAC,QAAQ;QAAE,OAAO,uBAAuB,CAAC;IAC9C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAE5G,MAAM,eAAe,GAAG,SAAoC,CAAC;IAC7D,IAAI,eAAoC,CAAC;IACzC,IAAI,iBAAiB,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,OAAO,eAAe,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1D,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACnD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,uDAAuD,CAAC,CAAC;QAC3G,CAAC;IACF,CAAC;IACD,IAAI,eAAoC,CAAC;IACzC,IAAI,iBAAiB,IAAI,eAAe,EAAE,CAAC;QAC1C,IAAI,OAAO,eAAe,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1D,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACnD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,uDAAuD,CAAC,CAAC;QAC3G,CAAC;IACF,CAAC;IACD,IAAI,YAAgC,CAAC;IACrC,IAAI,cAAc,IAAI,eAAe,EAAE,CAAC;QACvC,IAAI,OAAO,eAAe,CAAC,YAAY,KAAK,QAAQ,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7F,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,6DAA6D,CAAC,CAAC;QACjH,CAAC;IACF,CAAC;IACD,MAAM,UAAU,GAAG,qBAAqB,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnF,MAAM,MAAM,GAA+C,EAAE,CAAC;IAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;IACtD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;IAC1F,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AAAA,CACzF;AAED,SAAS,2BAA2B,CACnC,YAA8B,EAC9B,eAAiC,EACjC,gBAAwB,EACxB,mBAAkC,EACC;IACnC,IAAI,mBAAmB,IAAI,eAAe,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC;IAC7H,CAAC;IACD,OAAO,YAAY,CAAC,YAAY,KAAK,SAAS;QAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,EAAE;QAC7G,CAAC,CAAC,SAAS,CAAC;AAAA,CACb;AAED,SAAS,yBAAyB,CAAC,MAAqB,EAAE,YAA8C,EAAiB;IACxH,IAAI,CAAC,YAAY;QAAE,OAAO,MAAM,CAAC;IACjC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5C,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;QAChF,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,iBAAiB;YAAE,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IAAA,CACZ,CAAC,CAAC;AAAA,CACH;AAED,SAAS,oBAAoB,CAC5B,KAAkB,EAClB,QAAoC,EACpC,IAAiD,EACnC;IACd,MAAM,IAAI,GAAgB;QACzB,GAAG,KAAK;QACR,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE;KACrD,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;IACrG,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACjH,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS;QAAE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IAC/F,IAAI,QAAQ,CAAC,qBAAqB,KAAK,SAAS;QAAE,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IAC9G,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtF,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACzI,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACzI,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACvE,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IACnF,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9G,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACnD,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC5H,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;QAAE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;IAC5F,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAEzH,OAAO,IAAI,CAAC;AAAA,CACZ;AAED,SAAS,oBAAoB,CAAC,KAAkB,EAAE,IAAiD,EAAe;IACjH,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO;QACN,GAAG,KAAK;QACR,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE;KACvE,CAAC;AAAA,CACF;AAED,SAAS,qBAAqB,CAC7B,aAA4B,EAC5B,YAA8B,EAC9B,eAAiC,EACjC,gBAAwB,EACxB,mBAAkC,EAClB;IAChB,MAAM,mBAAmB,GAAG,eAAe,CAAC,eAAe,KAAK,IAAI,IAAI,mBAAmB,KAAK,IAAI,CAAC;IACrG,MAAM,gBAAgB,GAAG,eAAe,CAAC,eAAe,KAAK,SAAS,IAAI,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC;IAChH,MAAM,yBAAyB,GAAG,eAAe,CAAC,eAAe,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI,CAAC;IAChH,MAAM,eAAe,GAAG,yBAAyB,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,KAAK,IAAI,CAAC;IACrI,MAAM,mBAAmB,GAAG,yBAAyB;QACpD,CAAC,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,IAAI,EAAE,mBAAoB,EAAE;QAC3D,CAAC,CAAC,EAAE,KAAK,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IAEtD,MAAM,mBAAmB,GAAG,CAAC,KAAkB,EAAE,2BAAoC,EAAe,EAAE,CAAC;QACtG,IAAI,CAAC,eAAe,IAAI,2BAA2B;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IAAA,CACxD,CAAC;IAEF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;YAC5C,OAAO,mBAAmB,CACzB,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAC7F,eAAe,CAAC,QAAQ,KAAK,SAAS,CACtC,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;YAChD,OAAO,mBAAmB,CACzB,oBAAoB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAChG,KAAK,CACL,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,mBAAmB,CACzB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EACpF,CAAC,yBAAyB,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,CACjE,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACtB,OAAO,mBAAmB,CACzB,oBAAoB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAC1F,KAAK,CACL,CAAC;QACH,CAAC;QAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAAA,CACzC,CAAC,CAAC;AAAA,CACH;AAED,SAAS,8BAA8B,CAAC,KAAkB,EAAE,GAAG,MAAgB,EAAW;IACzF,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAAA,CACxF;AAED,SAAS,wBAAwB,CAChC,KAAkB,EAClB,QAAoC,EACpC,IAAiD,EACnC;IACd,IAAI,IAA6B,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,OAAO,GAAG,GAAgB,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IAAA,CACZ,CAAC;IAEF,MAAM,IAAI,GAAG,CACZ,KAAQ,EACR,iBAA2B,EAC3B,KAAqB,EACd,EAAE,CAAC;QACV,IAAI,8BAA8B,CAAC,KAAK,EAAE,GAAG,iBAAiB,CAAC;YAAE,OAAO;QACxE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACzB,SAAS,GAAG,IAAI,CAAC;IAAA,CACjB,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CACH,gBAAgB,EAChB,CAAC,gBAAgB,CAAC,EAClB,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAC5E,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC7C,IAAI,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,QAAQ,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,uBAAuB,EAAE,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrE,OAAO,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACvC,SAAS,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACrF,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,SAAS,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,IAAI,QAAQ,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACnD,IAAI,CACH,wBAAwB,EACxB,CAAC,wBAAwB,CAAC,EAC1B,QAAQ,CAAC,sBAAsB,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAC5F,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI,CAAC;AAAA,CACZ;AAED,SAAS,yBAAyB,CACjC,MAAqB,EACrB,YAA8B,EAC9B,eAAiC,EACjC,gBAAwB,EACxB,mBAAkC,EAClB;IAChB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;YAC5C,OAAO,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC1G,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,OAAO,KAAK,CAAC;IAAA,CACb,CAAC,CAAC;AAAA,CACH;AAED,MAAM,UAAU,0BAA0B,CACzC,IAA8B,EAC9B,KAA4S,EACnQ;IACzC,MAAM,QAAQ,GAA+B,EAAE,CAAC;IAEhD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC;IACtE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;QAAE,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChJ,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;IAClF,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;QAAE,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACzG,IAAI,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC,qBAAqB;QAAE,QAAQ,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB,CAAC;IAC7H,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;QAAE,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC7F,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc;QAAE,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC;IAC1G,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc;QAAE,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC;IAC1G,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC;IAClF,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;QAAE,QAAQ,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACzF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAExG,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC;QAAE,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/F,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC7E,QAAQ,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5G,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5E,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC;IAC5D,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;IAE1H,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAAA,CAC/D;AAED,MAAM,UAAU,wBAAwB,CACvC,GAAW,EACX,IAAY,EACZ,KAAyB,EACzB,QAAoC,EAC3B;IACT,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACrG,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAE5G,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnH,CAAC,CAAC,EAAE,GAAI,QAAQ,CAAC,SAAqC,EAAE;QACxD,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,OAAO,SAAS,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;QAC1I,CAAC,CAAC,EAAE,GAAI,SAAS,CAAC,cAA0C,EAAE;QAC9D,CAAC,CAAC,EAAE,CAAC;IAEN,cAAc,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpD,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;IAC1C,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;AAAA,CAChB;AAED,MAAM,UAAU,0BAA0B,CAAC,GAAW,EAAE,IAAY,EAAE,KAAyB,EAAsC;IACpI,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACrG,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC5G,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAExE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvH,MAAM,aAAa,GAAG,EAAE,GAAI,SAAqC,EAAE,CAAC;IACpE,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IACpD,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAEtI,MAAM,aAAa,GAAG,EAAE,GAAI,cAA0C,EAAE,CAAC;IACzE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1G,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC;;QACnF,OAAO,aAAa,CAAC,cAAc,CAAC;IAEzC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;;QACzE,OAAO,QAAQ,CAAC,SAAS,CAAC;IAE/B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAA,CACzC;AAED,MAAM,UAAU,yBAAyB,CACxC,GAAW,EACX,IAAY,EACZ,KAAyB,EACzB,MAAkC,EACzB;IACT,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACrG,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAE5G,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QACnH,CAAC,CAAC,EAAE,GAAI,QAAQ,CAAC,SAAqC,EAAE;QACxD,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,OAAO,SAAS,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;QAC1I,CAAC,CAAC,EAAE,GAAI,SAAS,CAAC,cAA0C,EAAE;QAC9D,CAAC,CAAC,EAAE,CAAC;IAEN,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChF,CAAC,CAAC,QAAmC;QACrC,CAAC,CAAC,EAAE,CAAC;IACN,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;IAClE,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;IAC1C,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC;AAAA,CAChB;AAED,MAAM,UAAU,gCAAgC,CAC/C,GAAW,EACX,IAAY,EACZ,KAAyB,EACzB,MAAgB,EACqB;IACrC,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACrG,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC5G,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAExE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvH,MAAM,cAAc,GAAI,SAAqC,CAAC,cAAc,CAAC;IAC7E,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAEtI,MAAM,KAAK,GAAI,cAA0C,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE3G,MAAM,SAAS,GAA4B,EAAE,GAAI,KAAiC,EAAE,CAAC;IACrF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;IACF,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAExD,MAAM,aAAa,GAAG,EAAE,GAAI,SAAqC,EAAE,CAAC;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,aAAa,CAAC,cAA0C,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7E,CAAC;SAAM,CAAC;QACP,MAAM,aAAa,GAAG,EAAE,GAAI,cAA0C,EAAE,CAAC;QACzE,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC;;YACnF,OAAO,aAAa,CAAC,cAAc,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,SAAS,GAAG,aAAa,CAAC;;QACzE,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC/B,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAAA,CACzC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,SAAwC,EAAY;IAC5F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACJ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrG,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;YACvD,SAAS;QACV,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAAE,SAAS;QACzD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AAAA,CACb;AAED,SAAS,sBAAsB,CAAC,OAAe,EAAE,QAAgB,EAAW;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;QACxD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;AAAA,CACxF;AAED,SAAS,+BAA+B,CAAC,GAAuB,EAAE,SAAiB,EAA+B;IACjH,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzJ,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,SAAS,0BAA0B,CAAC,CAAC;IAC9F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,OAAO,MAAyB,CAAC;AAAA,CACjC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,MAAmB,EAAiB;IAC3E,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC3H,IAAI,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC3C,SAAS;QACV,CAAC;QAED,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACR,SAAS;QACV,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACnD,SAAS;QACV,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,SAAS,WAAW,CAAC,CAAC;QAC5F,IAAI,aAAa,CAAC,KAAK;YAAE,SAAS;QAClC,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;QAC9C,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK;YACjC,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY;YAC5C,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC;QACzD,MAAM,MAAM,GAAG,QAAQ;YACtB,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS;YACtC,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc;YAChD,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,KAAK,SAAS;YAClE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,CAAC,gBAAgB,KAAK,QAAQ;gBAC1C,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,qBAAqB,GAAG,WAAW,CAAC,qBAAqB,KAAK,MAAM;YACzE,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,WAAW,CAAC,qBAAqB,KAAK,OAAO;gBAC9C,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,KAAK,MAAM;YACzD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,WAAW,CAAC,aAAa,KAAK,OAAO;gBACtC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,KAAK,MAAM;YAC3D,CAAC,CAAC,MAAe;YACjB,CAAC,CAAC,WAAW,CAAC,cAAc,KAAK,OAAO;gBACvC,CAAC,CAAC,OAAgB;gBAClB,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,YAAiC,CAAC;QACtC,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM;gBAAE,YAAY,GAAG,IAAI,CAAC;iBACjD,IAAI,WAAW,CAAC,KAAK,KAAK,OAAO;gBAAE,YAAY,GAAG,KAAK,CAAC;;gBACxD,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,0DAA0D,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,gBAAoC,CAAC;QACzC,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,mEAAmE,CAAC,CAAC;YACzG,CAAC;YACD,gBAAgB,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,IAAI,iBAA+C,CAAC;QACpD,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAY,CAAC;YAC7D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,SAAS,0BAA0B,CAAC,CAAC;YAChG,IAAI,QAAQ,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7F,IAAI,cAA0C,CAAC;QAC/C,IAAI,WAAW,CAAC,cAAc,KAAK,SAAS,IAAI,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;YACnF,IAAI,WAAW,CAAC,cAAc,KAAK,WAAW,IAAI,WAAW,CAAC,cAAc,KAAK,QAAQ;gBAAE,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;;gBAClI,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,6EAA6E,CAAC,CAAC;QACxH,CAAC;QAED,IAAI,UAAgC,CAAC;QACrC,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC1C,UAAU,GAAG,WAAW,CAAC,UAAU;iBACjC,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,sBAA4C,CAAC;QACjD,IAAI,WAAW,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACtD,sBAAsB,GAAG,WAAW,CAAC,sBAAsB;iBACzD,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtD,CAAC;QAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,UAAwC,CAAC;QAC7C,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAY,CAAC;YAC7D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,+DAA+D,CAAC,CAAC;YACrG,CAAC;YACD,UAAU,GAAG,MAA0B,CAAC;QACzC,CAAC;QACD,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,KAAK,OAAO;YAC9D,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,WAAW,CAAC,eAAe,KAAK,MAAM;gBACvC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,KAAK,GAAgB;YAC1B,IAAI,EAAE,WAAW;YACjB,SAAS;YACT,WAAW;YACX,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC3C,cAAc,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACtE,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,cAAc,EAAE,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACxF,QAAQ,EAAE,WAAW,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ;YACzE,gBAAgB;YAChB,qBAAqB;YACrB,aAAa;YACb,cAAc;YACd,YAAY;YACZ,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,cAAc;YACd,YAAY,EAAE,IAAI;YAClB,MAAM;YACN,QAAQ;YACR,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACxD,SAAS,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACpE,UAAU;YACV,sBAAsB;YACtB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,YAAY,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;YAChF,eAAe,EAAE,WAAW,CAAC,eAAe,KAAK,MAAM;YACvD,WAAW,EAAE,WAAW,CAAC,WAAW,KAAK,MAAM;YAC/C,gBAAgB,EACf,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,sBAAsB,IAAI,CAAC;gBACtE,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,SAAS;YACb,eAAe;YACf,UAAU;YACV,MAAM,EAAE,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC;YAClD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC1E,CAAC;QACF,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAAA,CACd;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,MAAmB,EAAsE;IAChI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,MAAM,WAAW,GAA+B,EAAE,CAAC;IAEnD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAClI,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACR,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnI,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,SAAS;YACtG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtG,SAAS;QACV,CAAC;IACF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;AAAA,CAC5D;AAED,SAAS,WAAW,CAAC,CAAS,EAAW;IACxC,IAAI,CAAC;QACJ,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AAAA,CACD;AAED,SAAS,8BAA8B,CAAC,GAAW,EAAuD;IACzG,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE9D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,WAAW,CAAC,SAAS,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,WAAW,CAAC,YAAY,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE3D,OAAO;QACN,QAAQ;QACR,YAAY;KACZ,CAAC;AAAA,CACF;AAED,SAAS,8BAA8B,CAAC,GAAW,EAAuD;IACzG,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3E,OAAO;QACN,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;QACzD,YAAY;KACZ,CAAC;AAAA,CACF;AACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE5G,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AAEnE,kFAAkF;AAClF,sFAAsF;AACtF,mFAAmF;AACnF,mFAAmF;AACnF,0EAA0E;AAC1E,SAAS,kBAAkB,GAAa;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG;SACR,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SACrB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAAA,CAClC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,KAAiB,EAAwB;IACpF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAC3G,MAAM,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;IACpD,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAC5G,MAAM,eAAe,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAC/G,MAAM,YAAY,GAAG,2BAA2B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACvH,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC;IACzE,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,GAAG,EAAE;QAC7D,WAAW,EAAE,KAAK,KAAK,SAAS;QAChC,cAAc,EAAE,KAAK,KAAK,MAAM;KAChC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,qBAAqB,CAC1C,yBAAyB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EACzF,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACzH,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,aAAa,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,yBAAyB,CAC3C,yBAAyB,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,EAAE,YAAY,CAAC,EACjG,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IAEF,MAAM,aAAa,GAAG,yBAAyB,CAC9C,yBAAyB,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,EACrI,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IACF,MAAM,aAAa,GAAG,yBAAyB,CAC9C,yBAAyB,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,EACxH,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IACF,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;SAChG,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAE7C,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAAA,CAChD;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAa3C;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAChG,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IAC1G,MAAM,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;IACpD,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,2BAA2B,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACvH,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,qBAAqB,CACpC,yBAAyB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EACzF,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IACF,MAAM,IAAI,GAAG,yBAAyB,CACrC,yBAAyB,CAAC;QACzB,GAAG,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxE,GAAG,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC;QACxC,GAAG,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC;KACxC,EAAE,YAAY,CAAC,EAChB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC/C,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IACD,MAAM,aAAa,GAAG,yBAAyB,CAC9C,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,CAAC,EACxE,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;YACvD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IACD,MAAM,OAAO,GAAG,yBAAyB,CACxC,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,CAAC,EACxE,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,CACnB,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,uBAAuB,GAA+B,EAAE,CAAC;IAC/D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjD,uBAAuB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9E,CAAC;IACF,CAAC;IACD,MAAM,uBAAuB,GAA+B,EAAE,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACjD,uBAAuB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG;QACd,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;QACvC,GAAG,UAAU,CAAC,MAAM;QACpB,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;KAChC,CAAC;IACF,MAAM,gBAAgB,GAAG;QACxB,GAAG,uBAAuB;QAC1B,GAAG,UAAU,CAAC,WAAW;QACzB,GAAG,uBAAuB;KAC1B,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IAEnH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;AAAA,CAC/K","sourcesContent":["// @ts-nocheck\n/**\n * Agent discovery and configuration\n */\n\nimport { execSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport { parse as parseYaml } from \"yaml\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport type { AcceptanceInput, AcceptanceRole, OutputMode, ToolBudgetConfig, TurnBudgetConfig } from \"../shared/types.ts\";\nimport { getAgentDir, getProjectConfigDir } from \"../shared/utils.ts\";\nimport { KNOWN_FIELDS } from \"./agent-serializer.ts\";\nimport { parseChain, parseJsonChain } from \"./chain-serializer.ts\";\nimport { mergeAgentsForScope } from \"./agent-selection.ts\";\nimport { parseFrontmatter } from \"./frontmatter.ts\";\nimport { buildRuntimeName, parsePackageName } from \"./identity.ts\";\nimport { parseModelScopeConfig, type ModelScopeConfig } from \"../runs/shared/model-scope.ts\";\nexport { buildRuntimeName, frontmatterNameForConfig, parsePackageName } from \"./identity.ts\";\nimport { parseMemoryFrontmatter } from \"./agent-memory.ts\";\nimport { resolveTurnBudgetConfig } from \"../runs/shared/turn-budget.ts\";\nimport { validateAcceptanceInput } from \"../runs/shared/acceptance.ts\";\n\nexport type AgentScope = \"user\" | \"project\" | \"both\";\n\nexport type AgentSource = \"builtin\" | \"package\" | \"user\" | \"project\";\ntype SystemPromptMode = \"append\" | \"replace\";\nexport type AgentDefaultContext = \"fresh\" | \"fork\";\n\nexport type AgentMemoryScope = \"project\" | \"user\";\n\nexport interface AgentMemoryConfig {\n\tscope: AgentMemoryScope;\n\tpath: string;\n}\n\nexport const BUILTIN_AGENT_NAMES = [\n\t\"context-builder\",\n\t\"delegate\",\n\t\"oracle\",\n\t\"planner\",\n\t\"researcher\",\n\t\"reviewer\",\n\t\"scout\",\n\t\"worker\",\n] as const;\n\nexport function defaultSystemPromptMode(name: string): SystemPromptMode {\n\treturn name === \"delegate\" ? \"append\" : \"replace\";\n}\n\nexport function defaultInheritProjectContext(name: string): boolean {\n\treturn name === \"delegate\";\n}\n\nexport function defaultInheritSkills(): boolean {\n\treturn false;\n}\n\nexport interface BuiltinAgentOverrideBase {\n\tmodel?: string;\n\tfallbackModels?: string[];\n\tthinking?: string | false;\n\tsystemPromptMode: SystemPromptMode;\n\tinheritProjectContext: boolean;\n\tinheritSkills: boolean;\n\tdefaultContext?: AgentDefaultContext;\n\tacceptanceRole?: AcceptanceRole;\n\tdisabled?: boolean;\n\tsystemPrompt: string;\n\tskills?: string[];\n\tskillPath?: string[];\n\ttools?: string[];\n\tmcpDirectTools?: string[];\n\tsubagentOnlyExtensions?: string[];\n\tcompletionGuard?: boolean;\n\ttoolBudget?: ToolBudgetConfig;\n}\n\ninterface BuiltinAgentOverrideConfig {\n\tmodel?: string | false;\n\tfallbackModels?: string[] | false;\n\tthinking?: string | false;\n\tsystemPromptMode?: SystemPromptMode;\n\tinheritProjectContext?: boolean;\n\tinheritSkills?: boolean;\n\tdefaultContext?: AgentDefaultContext | false;\n\tacceptanceRole?: AcceptanceRole | false;\n\tdisabled?: boolean;\n\tsystemPrompt?: string;\n\tskills?: string[] | false;\n\ttools?: string[] | false;\n\tsubagentOnlyExtensions?: string[] | false;\n\tcompletionGuard?: boolean;\n\ttoolBudget?: ToolBudgetConfig | false;\n}\n\ninterface BuiltinAgentOverrideInfo {\n\tscope: \"user\" | \"project\";\n\tpath: string;\n\tbase: BuiltinAgentOverrideBase;\n}\n\nexport interface AgentModelSourceInfo {\n\ttype: \"subagents.defaultModel\";\n\tscope: \"user\" | \"project\";\n\tpath: string;\n\tmodel: string;\n}\n\nexport interface AgentConfig {\n\tname: string;\n\tlocalName?: string;\n\tpackageName?: string;\n\tdescription: string;\n\ttools?: string[];\n\tmcpDirectTools?: string[];\n\tmodel?: string;\n\tfallbackModels?: string[];\n\tthinking?: string | false;\n\tsystemPromptMode: SystemPromptMode;\n\tinheritProjectContext: boolean;\n\tinheritSkills: boolean;\n\tdefaultContext?: AgentDefaultContext;\n\tdefaultAsync?: boolean;\n\tdefaultTimeoutMs?: number;\n\tdefaultTurnBudget?: TurnBudgetConfig;\n\tdefaultAcceptance?: AcceptanceInput;\n\tacceptanceRole?: AcceptanceRole;\n\tsystemPrompt: string;\n\tsource: AgentSource;\n\tfilePath: string;\n\tskills?: string[];\n\tskillPath?: string[];\n\textensions?: string[];\n\tsubagentOnlyExtensions?: string[];\n\toutput?: string;\n\tdefaultReads?: string[];\n\tdefaultProgress?: boolean;\n\tinteractive?: boolean;\n\tmaxSubagentDepth?: number;\n\tcompletionGuard?: boolean;\n\ttoolBudget?: ToolBudgetConfig;\n\tmemory?: AgentMemoryConfig;\n\tdisabled?: boolean;\n\textraFields?: Record<string, string>;\n\toverride?: BuiltinAgentOverrideInfo;\n\tmodelSource?: AgentModelSourceInfo;\n}\n\ninterface SubagentSettings {\n\toverrides: Record<string, BuiltinAgentOverrideConfig>;\n\tdefaultModel?: string;\n\tdisableBuiltins?: boolean;\n\tdisableThinking?: boolean;\n\tmodelScope?: ModelScopeConfig;\n}\n\nconst EMPTY_SUBAGENT_SETTINGS: SubagentSettings = { overrides: {} };\nconst agentFrontmatterFields = new WeakMap<AgentConfig, Set<string>>();\n\nexport interface ChainStepConfig {\n\tagent?: string;\n\ttask?: string;\n\tphase?: string;\n\tlabel?: string;\n\tas?: string;\n\toutputSchema?: string | Record<string, unknown>;\n\toutput?: string | false;\n\toutputMode?: OutputMode;\n\treads?: string[] | false;\n\tmodel?: string;\n\tskills?: string[] | false;\n\tprogress?: boolean;\n\tparallel?: unknown;\n\texpand?: unknown;\n\tcollect?: unknown;\n\tconcurrency?: number;\n\tfailFast?: boolean;\n\tworktree?: boolean;\n\tacceptance?: AcceptanceInput;\n\ttoolBudget?: ToolBudgetConfig;\n}\n\nexport interface ChainConfig {\n\tname: string;\n\tlocalName?: string;\n\tpackageName?: string;\n\tdescription: string;\n\tsource: AgentSource;\n\tfilePath: string;\n\tsteps: ChainStepConfig[];\n\textraFields?: Record<string, string>;\n}\n\nexport interface ChainDiscoveryDiagnostic {\n\tsource: AgentSource;\n\tfilePath: string;\n\terror: string;\n}\n\ninterface AgentDiscoveryResult {\n\tagents: AgentConfig[];\n\tprojectAgentsDir: string | null;\n\tmodelScope?: ModelScopeConfig;\n}\n\nfunction getUserChainDir(): string {\n\treturn path.join(getAgentDir(), \"chains\");\n}\n\ninterface PackageSubagentPaths {\n\tagents: string[];\n\tchains: string[];\n}\n\nlet cachedGlobalNpmRoot: string | null = null;\n\nfunction readJsonFileBestEffort(filePath: string): unknown {\n\ttry {\n\t\treturn JSON.parse(fs.readFileSync(filePath, \"utf-8\"));\n\t} catch {\n\t\t// Installed package scans are opportunistic; bad third-party manifests\n\t\t// should not break local agent discovery.\n\t\treturn null;\n\t}\n}\n\nfunction readOptionalJsonFile(filePath: string): unknown {\n\ttry {\n\t\treturn JSON.parse(fs.readFileSync(filePath, \"utf-8\"));\n\t} catch (error) {\n\t\tconst code = typeof error === \"object\" && error !== null && \"code\" in error\n\t\t\t? (error as { code?: unknown }).code\n\t\t\t: undefined;\n\t\tif (code === \"ENOENT\") return null;\n\t\tthrow error;\n\t}\n}\n\nfunction isSafePackagePath(value: string): boolean {\n\treturn value.length > 0\n\t\t&& !path.isAbsolute(value)\n\t\t&& value.split(/[\\\\/]/).every((part) => part.length > 0 && part !== \".\" && part !== \"..\");\n}\n\nfunction parseNpmPackageName(source: string): string | undefined {\n\tconst spec = source.slice(4).trim();\n\tif (!spec) return undefined;\n\tconst match = spec.match(/^(@?[^@]+(?:\\/[^@]+)?)(?:@(.+))?$/);\n\tconst packageName = match?.[1] ?? spec;\n\treturn isSafePackagePath(packageName) ? packageName : undefined;\n}\n\nfunction stripGitRef(repoPath: string): string {\n\tconst atIndex = repoPath.indexOf(\"@\");\n\tconst hashIndex = repoPath.indexOf(\"#\");\n\tconst refIndex = [atIndex, hashIndex].filter((index) => index >= 0).sort((a, b) => a - b)[0];\n\treturn refIndex === undefined ? repoPath : repoPath.slice(0, refIndex);\n}\n\nfunction parseGitPackagePath(source: string): { host: string; repoPath: string } | undefined {\n\tconst spec = source.slice(4).trim();\n\tif (!spec) return undefined;\n\n\tlet host = \"\";\n\tlet repoPath = \"\";\n\tconst scpLike = spec.match(/^git@([^:]+):(.+)$/);\n\tif (scpLike) {\n\t\thost = scpLike[1] ?? \"\";\n\t\trepoPath = scpLike[2] ?? \"\";\n\t} else if (/^[a-z][a-z0-9+.-]*:\\/\\//i.test(spec)) {\n\t\ttry {\n\t\t\tconst url = new URL(spec);\n\t\t\thost = url.hostname;\n\t\t\trepoPath = url.pathname.replace(/^\\/+/, \"\");\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t} else {\n\t\tconst slashIndex = spec.indexOf(\"/\");\n\t\tif (slashIndex < 0) return undefined;\n\t\thost = spec.slice(0, slashIndex);\n\t\trepoPath = spec.slice(slashIndex + 1);\n\t}\n\n\tconst normalizedPath = stripGitRef(repoPath).replace(/\\.git$/, \"\").replace(/^\\/+/, \"\");\n\tif (!host || !isSafePackagePath(host) || !isSafePackagePath(normalizedPath) || normalizedPath.split(/[\\\\/]/).length < 2) {\n\t\treturn undefined;\n\t}\n\treturn { host, repoPath: normalizedPath };\n}\n\nfunction resolveSettingsPackageRoot(source: string, baseDir: string): string | undefined {\n\tconst trimmed = source.trim();\n\tif (!trimmed) return undefined;\n\tif (trimmed.startsWith(\"git:\")) {\n\t\tconst parsed = parseGitPackagePath(trimmed);\n\t\treturn parsed ? path.join(baseDir, \"git\", parsed.host, parsed.repoPath) : undefined;\n\t}\n\tif (trimmed.startsWith(\"npm:\")) {\n\t\tconst packageName = parseNpmPackageName(trimmed);\n\t\treturn packageName ? path.join(baseDir, \"npm\", \"node_modules\", packageName) : undefined;\n\t}\n\tconst normalized = trimmed.startsWith(\"file:\") ? trimmed.slice(5) : trimmed;\n\tif (normalized === \"~\") return os.homedir();\n\tif (normalized.startsWith(\"~/\")) return path.join(os.homedir(), normalized.slice(2));\n\tif (path.isAbsolute(normalized)) return normalized;\n\tif (normalized === \".\" || normalized === \"..\" || normalized.startsWith(\"./\") || normalized.startsWith(\"../\")) {\n\t\treturn path.resolve(baseDir, normalized);\n\t}\n\treturn undefined;\n}\n\nfunction getGlobalNpmRoot(): string | null {\n\tif (cachedGlobalNpmRoot !== null) return cachedGlobalNpmRoot;\n\ttry {\n\t\tcachedGlobalNpmRoot = fs.realpathSync(execSync(\"npm root -g\", { encoding: \"utf-8\", timeout: 5000 }).trim());\n\t\treturn cachedGlobalNpmRoot;\n\t} catch {\n\t\tcachedGlobalNpmRoot = \"\";\n\t\treturn null;\n\t}\n}\n\nfunction stringArray(value: unknown): string[] {\n\tif (!Array.isArray(value)) return [];\n\treturn value.filter((entry): entry is string => typeof entry === \"string\" && entry.trim().length > 0);\n}\n\nfunction extractSubagentPathsFromPackageRoot(packageRoot: string): PackageSubagentPaths {\n\tconst packageJsonPath = path.join(packageRoot, \"package.json\");\n\tconst pkg = readJsonFileBestEffort(packageJsonPath);\n\tif (!pkg || typeof pkg !== \"object\" || Array.isArray(pkg)) return { agents: [], chains: [] };\n\n\tconst roots: Record<string, unknown>[] = [];\n\tconst piSubagents = (pkg as { \"pi-subagents\"?: unknown })[\"pi-subagents\"];\n\tif (piSubagents && typeof piSubagents === \"object\" && !Array.isArray(piSubagents)) {\n\t\troots.push(piSubagents as Record<string, unknown>);\n\t}\n\n\tconst pi = (pkg as { pi?: unknown }).pi;\n\tif (pi && typeof pi === \"object\" && !Array.isArray(pi)) {\n\t\tconst subagents = (pi as { subagents?: unknown }).subagents;\n\t\tif (subagents && typeof subagents === \"object\" && !Array.isArray(subagents)) {\n\t\t\troots.push(subagents as Record<string, unknown>);\n\t\t}\n\t}\n\n\tconst agents: string[] = [];\n\tconst chains: string[] = [];\n\tfor (const root of roots) {\n\t\tfor (const entry of stringArray(root.agents)) agents.push(path.resolve(packageRoot, entry));\n\t\tfor (const entry of stringArray(root.chains)) chains.push(path.resolve(packageRoot, entry));\n\t}\n\treturn { agents, chains };\n}\n\nfunction collectPackageRootsFromNodeModules(nodeModulesDir: string): string[] {\n\tconst roots: string[] = [];\n\tif (!fs.existsSync(nodeModulesDir)) return roots;\n\n\tlet entries: fs.Dirent[];\n\ttry {\n\t\tentries = fs.readdirSync(nodeModulesDir, { withFileTypes: true });\n\t} catch {\n\t\treturn roots;\n\t}\n\n\tfor (const entry of entries) {\n\t\tif (entry.name.startsWith(\".\")) continue;\n\t\tif (!entry.isDirectory() && !entry.isSymbolicLink()) continue;\n\n\t\tif (entry.name.startsWith(\"@\")) {\n\t\t\tconst scopeDir = path.join(nodeModulesDir, entry.name);\n\t\t\tlet scopeEntries: fs.Dirent[];\n\t\t\ttry {\n\t\t\t\tscopeEntries = fs.readdirSync(scopeDir, { withFileTypes: true });\n\t\t\t} catch {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfor (const scopeEntry of scopeEntries) {\n\t\t\t\tif (scopeEntry.name.startsWith(\".\")) continue;\n\t\t\t\tif (!scopeEntry.isDirectory() && !scopeEntry.isSymbolicLink()) continue;\n\t\t\t\troots.push(path.join(scopeDir, scopeEntry.name));\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\troots.push(path.join(nodeModulesDir, entry.name));\n\t}\n\treturn roots;\n}\n\nfunction collectSettingsPackageRoots(settingsFile: string, baseDir: string): string[] {\n\tconst settings = readOptionalJsonFile(settingsFile);\n\tif (!settings || typeof settings !== \"object\" || Array.isArray(settings)) return [];\n\tconst packages = (settings as { packages?: unknown }).packages;\n\tif (!Array.isArray(packages)) return [];\n\n\tconst roots: string[] = [];\n\tfor (const entry of packages) {\n\t\tconst packageSource = typeof entry === \"string\"\n\t\t\t? entry\n\t\t\t: typeof entry === \"object\" && entry !== null && typeof (entry as { source?: unknown }).source === \"string\"\n\t\t\t\t? (entry as { source: string }).source\n\t\t\t\t: undefined;\n\t\tif (!packageSource) continue;\n\t\tconst packageRoot = resolveSettingsPackageRoot(packageSource, baseDir);\n\t\tif (packageRoot) roots.push(packageRoot);\n\t}\n\treturn roots;\n}\n\nfunction collectPackageSubagentPaths(cwd: string, options: { includeUser: boolean; includeProject: boolean } = { includeUser: true, includeProject: true }): PackageSubagentPaths {\n\tconst agentDir = getAgentDir();\n\tconst projectRoot = findNearestProjectRoot(cwd) ?? cwd;\n\tconst packageRoots = [\n\t\tprojectRoot,\n\t];\n\n\tif (options.includeProject) {\n\t\tconst projectConfigDir = getProjectConfigDir(projectRoot);\n\t\tpackageRoots.push(\n\t\t\t...collectPackageRootsFromNodeModules(path.join(projectConfigDir, \"npm\", \"node_modules\")),\n\t\t\t...collectSettingsPackageRoots(path.join(projectConfigDir, \"settings.json\"), projectConfigDir),\n\t\t);\n\t}\n\n\tif (options.includeUser) {\n\t\tpackageRoots.push(\n\t\t\t...collectPackageRootsFromNodeModules(path.join(agentDir, \"npm\", \"node_modules\")),\n\t\t\t...collectSettingsPackageRoots(path.join(agentDir, \"settings.json\"), agentDir),\n\t\t);\n\t}\n\n\tif (options.includeUser) {\n\t\tconst globalRoot = getGlobalNpmRoot();\n\t\tif (globalRoot) packageRoots.push(...collectPackageRootsFromNodeModules(globalRoot));\n\t}\n\n\tconst seenRoots = new Set<string>();\n\tconst seenAgents = new Set<string>();\n\tconst seenChains = new Set<string>();\n\tconst agents: string[] = [];\n\tconst chains: string[] = [];\n\tfor (const packageRoot of packageRoots) {\n\t\tconst resolvedRoot = path.resolve(packageRoot);\n\t\tif (seenRoots.has(resolvedRoot)) continue;\n\t\tseenRoots.add(resolvedRoot);\n\t\tconst paths = extractSubagentPathsFromPackageRoot(resolvedRoot);\n\t\tfor (const agentDir of paths.agents) {\n\t\t\tif (seenAgents.has(agentDir)) continue;\n\t\t\tseenAgents.add(agentDir);\n\t\t\tagents.push(agentDir);\n\t\t}\n\t\tfor (const chainDir of paths.chains) {\n\t\t\tif (seenChains.has(chainDir)) continue;\n\t\t\tseenChains.add(chainDir);\n\t\t\tchains.push(chainDir);\n\t\t}\n\t}\n\treturn { agents, chains };\n}\n\nfunction splitToolList(rawTools: string[] | undefined): { tools?: string[]; mcpDirectTools?: string[] } {\n\tconst mcpDirectTools: string[] = [];\n\tconst tools: string[] = [];\n\tfor (const tool of rawTools ?? []) {\n\t\tif (tool.startsWith(\"mcp:\")) {\n\t\t\tmcpDirectTools.push(tool.slice(4));\n\t\t} else {\n\t\t\ttools.push(tool);\n\t\t}\n\t}\n\treturn {\n\t\t...(tools.length > 0 ? { tools } : {}),\n\t\t...(mcpDirectTools.length > 0 ? { mcpDirectTools } : {}),\n\t};\n}\n\nfunction joinToolList(config: Pick<AgentConfig, \"tools\" | \"mcpDirectTools\">): string[] | undefined {\n\tconst joined = [\n\t\t...(config.tools ?? []),\n\t\t...(config.mcpDirectTools ?? []).map((tool) => `mcp:${tool}`),\n\t];\n\treturn joined.length > 0 ? joined : undefined;\n}\n\nfunction arraysEqual(a: string[] | undefined, b: string[] | undefined): boolean {\n\tif (!a && !b) return true;\n\tif (!a || !b) return false;\n\tif (a.length !== b.length) return false;\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) return false;\n\t}\n\treturn true;\n}\n\nfunction cloneOverrideBase(agent: AgentConfig): BuiltinAgentOverrideBase {\n\treturn {\n\t\tmodel: agent.model,\n\t\tfallbackModels: agent.fallbackModels ? [...agent.fallbackModels] : undefined,\n\t\tthinking: agent.thinking,\n\t\tsystemPromptMode: agent.systemPromptMode,\n\t\tinheritProjectContext: agent.inheritProjectContext,\n\t\tinheritSkills: agent.inheritSkills,\n\t\tdefaultContext: agent.defaultContext,\n\t\tacceptanceRole: agent.acceptanceRole,\n\t\tdisabled: agent.disabled,\n\t\tsystemPrompt: agent.systemPrompt,\n\t\tskills: agent.skills ? [...agent.skills] : undefined,\n\t\tskillPath: agent.skillPath ? [...agent.skillPath] : undefined,\n\t\ttools: agent.tools ? [...agent.tools] : undefined,\n\t\tmcpDirectTools: agent.mcpDirectTools ? [...agent.mcpDirectTools] : undefined,\n\t\tsubagentOnlyExtensions: agent.subagentOnlyExtensions ? [...agent.subagentOnlyExtensions] : undefined,\n\t\tcompletionGuard: agent.completionGuard,\n\t\ttoolBudget: agent.toolBudget,\n\t};\n}\n\nfunction cloneOverrideValue(override: BuiltinAgentOverrideConfig): BuiltinAgentOverrideConfig {\n\treturn {\n\t\t...(override.model !== undefined ? { model: override.model } : {}),\n\t\t...(override.fallbackModels !== undefined\n\t\t\t? { fallbackModels: override.fallbackModels === false ? false : [...override.fallbackModels] }\n\t\t\t: {}),\n\t\t...(override.thinking !== undefined ? { thinking: override.thinking } : {}),\n\t\t...(override.systemPromptMode !== undefined ? { systemPromptMode: override.systemPromptMode } : {}),\n\t\t...(override.inheritProjectContext !== undefined ? { inheritProjectContext: override.inheritProjectContext } : {}),\n\t\t...(override.inheritSkills !== undefined ? { inheritSkills: override.inheritSkills } : {}),\n\t\t...(override.defaultContext !== undefined ? { defaultContext: override.defaultContext } : {}),\n\t\t...(override.acceptanceRole !== undefined ? { acceptanceRole: override.acceptanceRole } : {}),\n\t\t...(override.disabled !== undefined ? { disabled: override.disabled } : {}),\n\t\t...(override.systemPrompt !== undefined ? { systemPrompt: override.systemPrompt } : {}),\n\t\t...(override.skills !== undefined ? { skills: override.skills === false ? false : [...override.skills] } : {}),\n\t\t...(override.tools !== undefined ? { tools: override.tools === false ? false : [...override.tools] } : {}),\n\t\t...(override.subagentOnlyExtensions !== undefined ? { subagentOnlyExtensions: override.subagentOnlyExtensions === false ? false : [...override.subagentOnlyExtensions] } : {}),\n\t\t...(override.completionGuard !== undefined ? { completionGuard: override.completionGuard } : {}),\n\t\t...(override.toolBudget !== undefined ? { toolBudget: override.toolBudget === false ? false : { ...override.toolBudget, ...(Array.isArray(override.toolBudget.block) ? { block: [...override.toolBudget.block] } : {}) } } : {}),\n\t};\n}\n\nexport function findNearestProjectRoot(cwd: string): string | null {\n\tlet currentDir = cwd;\n\twhile (true) {\n\t\tif (isDirectory(getProjectConfigDir(currentDir)) || isDirectory(path.join(currentDir, \".agents\"))) {\n\t\t\treturn currentDir;\n\t\t}\n\n\t\tconst parentDir = path.dirname(currentDir);\n\t\tif (parentDir === currentDir) return null;\n\t\tcurrentDir = parentDir;\n\t}\n}\n\nfunction getUserAgentSettingsPath(): string {\n\treturn path.join(getAgentDir(), \"settings.json\");\n}\n\nfunction getProjectAgentSettingsPath(cwd: string): string | null {\n\tconst projectRoot = findNearestProjectRoot(cwd);\n\treturn projectRoot ? path.join(getProjectConfigDir(projectRoot), \"settings.json\") : null;\n}\n\nfunction readSettingsFileStrict(filePath: string): Record<string, unknown> {\n\tif (!fs.existsSync(filePath)) return {};\n\tlet raw: string;\n\ttry {\n\t\traw = fs.readFileSync(filePath, \"utf-8\");\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthrow new Error(`Failed to read settings file '${filePath}': ${message}`, { cause: error });\n\t}\n\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(raw);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthrow new Error(`Failed to parse settings file '${filePath}': ${message}`, { cause: error });\n\t}\n\tif (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n\t\tthrow new Error(`Settings file '${filePath}' must contain a JSON object.`);\n\t}\n\treturn parsed as Record<string, unknown>;\n}\n\nfunction writeSettingsFile(filePath: string, settings: Record<string, unknown>): void {\n\tfs.mkdirSync(path.dirname(filePath), { recursive: true });\n\tfs.writeFileSync(filePath, JSON.stringify(settings, null, 2) + \"\\n\", \"utf-8\");\n}\n\nfunction parseOverrideStringArrayOrFalse(\n\tvalue: unknown,\n\tmeta: { filePath: string; name: string; field: string },\n): string[] | false | undefined {\n\tif (value === undefined) return undefined;\n\tif (value === false) return false;\n\tif (!Array.isArray(value)) {\n\t\tthrow new Error(`Builtin override '${meta.name}' in '${meta.filePath}' has invalid '${meta.field}'; expected an array of strings or false.`);\n\t}\n\n\tconst items: string[] = [];\n\tfor (const item of value) {\n\t\tif (typeof item !== \"string\") {\n\t\t\tthrow new Error(`Builtin override '${meta.name}' in '${meta.filePath}' has invalid '${meta.field}'; expected an array of strings or false.`);\n\t\t}\n\t\tconst trimmed = item.trim();\n\t\tif (trimmed) items.push(trimmed);\n\t}\n\treturn items;\n}\n\nfunction parseBuiltinOverrideEntry(\n\tname: string,\n\tvalue: unknown,\n\tfilePath: string,\n): BuiltinAgentOverrideConfig | undefined {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' must be an object.`);\n\t}\n\n\tconst input = value as Record<string, unknown>;\n\tconst override: BuiltinAgentOverrideConfig = {};\n\n\tif (\"model\" in input) {\n\t\tif (typeof input.model === \"string\" || input.model === false) override.model = input.model;\n\t\telse throw new Error(`Builtin override '${name}' in '${filePath}' has invalid 'model'; expected a string or false.`);\n\t}\n\n\tif (\"thinking\" in input) {\n\t\tif (typeof input.thinking === \"string\" || input.thinking === false) override.thinking = input.thinking;\n\t\telse throw new Error(`Builtin override '${name}' in '${filePath}' has invalid 'thinking'; expected a string or false.`);\n\t}\n\n\tif (\"systemPromptMode\" in input) {\n\t\tif (input.systemPromptMode === \"append\" || input.systemPromptMode === \"replace\") {\n\t\t\toverride.systemPromptMode = input.systemPromptMode;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'systemPromptMode'; expected 'append' or 'replace'.`);\n\t\t}\n\t}\n\n\tif (\"inheritProjectContext\" in input) {\n\t\tif (typeof input.inheritProjectContext === \"boolean\") {\n\t\t\toverride.inheritProjectContext = input.inheritProjectContext;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'inheritProjectContext'; expected a boolean.`);\n\t\t}\n\t}\n\n\tif (\"inheritSkills\" in input) {\n\t\tif (typeof input.inheritSkills === \"boolean\") {\n\t\t\toverride.inheritSkills = input.inheritSkills;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'inheritSkills'; expected a boolean.`);\n\t\t}\n\t}\n\n\tif (\"defaultContext\" in input) {\n\t\tif (input.defaultContext === \"fresh\" || input.defaultContext === \"fork\" || input.defaultContext === false) {\n\t\t\toverride.defaultContext = input.defaultContext;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'defaultContext'; expected 'fresh', 'fork', or false.`);\n\t\t}\n\t}\n\n\tif (\"acceptanceRole\" in input) {\n\t\tif (input.acceptanceRole === \"read-only\" || input.acceptanceRole === \"writer\" || input.acceptanceRole === false) {\n\t\t\toverride.acceptanceRole = input.acceptanceRole;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'acceptanceRole'; expected 'read-only', 'writer', or false.`);\n\t\t}\n\t}\n\n\tif (\"disabled\" in input) {\n\t\tif (typeof input.disabled === \"boolean\") {\n\t\t\toverride.disabled = input.disabled;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'disabled'; expected a boolean.`);\n\t\t}\n\t}\n\n\tif (\"completionGuard\" in input) {\n\t\tif (typeof input.completionGuard === \"boolean\") {\n\t\t\toverride.completionGuard = input.completionGuard;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'completionGuard'; expected a boolean.`);\n\t\t}\n\t}\n\n\tif (\"toolBudget\" in input) {\n\t\tif (input.toolBudget === false) {\n\t\t\toverride.toolBudget = false;\n\t\t} else if (input.toolBudget && typeof input.toolBudget === \"object\" && !Array.isArray(input.toolBudget)) {\n\t\t\toverride.toolBudget = input.toolBudget as ToolBudgetConfig;\n\t\t} else {\n\t\t\tthrow new Error(`Builtin override '${name}' in '${filePath}' has invalid 'toolBudget'; expected an object or false.`);\n\t\t}\n\t}\n\n\tif (\"systemPrompt\" in input) {\n\t\tif (typeof input.systemPrompt === \"string\") override.systemPrompt = input.systemPrompt;\n\t\telse throw new Error(`Builtin override '${name}' in '${filePath}' has invalid 'systemPrompt'; expected a string.`);\n\t}\n\n\tconst fallbackModels = parseOverrideStringArrayOrFalse(input.fallbackModels, { filePath, name, field: \"fallbackModels\" });\n\tif (fallbackModels !== undefined) override.fallbackModels = fallbackModels;\n\n\tconst skills = parseOverrideStringArrayOrFalse(input.skills, { filePath, name, field: \"skills\" });\n\tif (skills !== undefined) override.skills = skills;\n\n\tconst tools = parseOverrideStringArrayOrFalse(input.tools, { filePath, name, field: \"tools\" });\n\tif (tools !== undefined) override.tools = tools;\n\n\tconst subagentOnlyExtensions = parseOverrideStringArrayOrFalse(input.subagentOnlyExtensions, { filePath, name, field: \"subagentOnlyExtensions\" });\n\tif (subagentOnlyExtensions !== undefined) override.subagentOnlyExtensions = subagentOnlyExtensions;\n\n\treturn Object.keys(override).length > 0 ? override : undefined;\n}\n\nfunction readSubagentSettings(filePath: string | null): SubagentSettings {\n\tif (!filePath) return EMPTY_SUBAGENT_SETTINGS;\n\tconst settings = readSettingsFileStrict(filePath);\n\tconst subagents = settings.subagents;\n\tif (!subagents || typeof subagents !== \"object\" || Array.isArray(subagents)) return EMPTY_SUBAGENT_SETTINGS;\n\n\tconst subagentsObject = subagents as Record<string, unknown>;\n\tlet disableBuiltins: boolean | undefined;\n\tif (\"disableBuiltins\" in subagentsObject) {\n\t\tif (typeof subagentsObject.disableBuiltins === \"boolean\") {\n\t\t\tdisableBuiltins = subagentsObject.disableBuiltins;\n\t\t} else {\n\t\t\tthrow new Error(`Subagent settings in '${filePath}' have invalid 'disableBuiltins'; expected a boolean.`);\n\t\t}\n\t}\n\tlet disableThinking: boolean | undefined;\n\tif (\"disableThinking\" in subagentsObject) {\n\t\tif (typeof subagentsObject.disableThinking === \"boolean\") {\n\t\t\tdisableThinking = subagentsObject.disableThinking;\n\t\t} else {\n\t\t\tthrow new Error(`Subagent settings in '${filePath}' have invalid 'disableThinking'; expected a boolean.`);\n\t\t}\n\t}\n\tlet defaultModel: string | undefined;\n\tif (\"defaultModel\" in subagentsObject) {\n\t\tif (typeof subagentsObject.defaultModel === \"string\" && subagentsObject.defaultModel.trim()) {\n\t\t\tdefaultModel = subagentsObject.defaultModel.trim();\n\t\t} else {\n\t\t\tthrow new Error(`Subagent settings in '${filePath}' have invalid 'defaultModel'; expected a non-empty string.`);\n\t\t}\n\t}\n\tconst modelScope = parseModelScopeConfig(subagentsObject.modelScope, { filePath });\n\n\tconst parsed: Record<string, BuiltinAgentOverrideConfig> = {};\n\tconst agentOverrides = subagentsObject.agentOverrides;\n\tif (!agentOverrides || typeof agentOverrides !== \"object\" || Array.isArray(agentOverrides)) {\n\t\treturn { overrides: parsed, defaultModel, disableBuiltins, disableThinking, modelScope };\n\t}\n\tfor (const [name, value] of Object.entries(agentOverrides)) {\n\t\tconst override = parseBuiltinOverrideEntry(name, value, filePath);\n\t\tif (override) parsed[name] = override;\n\t}\n\treturn { overrides: parsed, defaultModel, disableBuiltins, disableThinking, modelScope };\n}\n\nfunction resolveSubagentDefaultModel(\n\tuserSettings: SubagentSettings,\n\tprojectSettings: SubagentSettings,\n\tuserSettingsPath: string,\n\tprojectSettingsPath: string | null,\n): AgentModelSourceInfo | undefined {\n\tif (projectSettingsPath && projectSettings.defaultModel !== undefined) {\n\t\treturn { type: \"subagents.defaultModel\", scope: \"project\", path: projectSettingsPath, model: projectSettings.defaultModel };\n\t}\n\treturn userSettings.defaultModel !== undefined\n\t\t? { type: \"subagents.defaultModel\", scope: \"user\", path: userSettingsPath, model: userSettings.defaultModel }\n\t\t: undefined;\n}\n\nfunction applySubagentDefaultModel(agents: AgentConfig[], defaultModel: AgentModelSourceInfo | undefined): AgentConfig[] {\n\tif (!defaultModel) return agents;\n\treturn agents.map((agent) => {\n\t\tif (agent.model !== undefined) return agent;\n\t\tconst next = { ...agent, model: defaultModel.model, modelSource: defaultModel };\n\t\tconst frontmatterFields = agentFrontmatterFields.get(agent);\n\t\tif (frontmatterFields) agentFrontmatterFields.set(next, frontmatterFields);\n\t\treturn next;\n\t});\n}\n\nfunction applyBuiltinOverride(\n\tagent: AgentConfig,\n\toverride: BuiltinAgentOverrideConfig,\n\tmeta: { scope: \"user\" | \"project\"; path: string },\n): AgentConfig {\n\tconst next: AgentConfig = {\n\t\t...agent,\n\t\toverride: { ...meta, base: cloneOverrideBase(agent) },\n\t};\n\n\tif (override.model !== undefined) next.model = override.model === false ? undefined : override.model;\n\tif (override.fallbackModels !== undefined) {\n\t\tnext.fallbackModels = override.fallbackModels === false ? undefined : [...override.fallbackModels];\n\t}\n\tif (override.thinking !== undefined) next.thinking = override.thinking === false ? undefined : override.thinking;\n\tif (override.systemPromptMode !== undefined) next.systemPromptMode = override.systemPromptMode;\n\tif (override.inheritProjectContext !== undefined) next.inheritProjectContext = override.inheritProjectContext;\n\tif (override.inheritSkills !== undefined) next.inheritSkills = override.inheritSkills;\n\tif (override.defaultContext !== undefined) next.defaultContext = override.defaultContext === false ? undefined : override.defaultContext;\n\tif (override.acceptanceRole !== undefined) next.acceptanceRole = override.acceptanceRole === false ? undefined : override.acceptanceRole;\n\tif (override.disabled !== undefined) next.disabled = override.disabled;\n\tif (override.systemPrompt !== undefined) next.systemPrompt = override.systemPrompt;\n\tif (override.skills !== undefined) next.skills = override.skills === false ? undefined : [...override.skills];\n\tif (override.tools !== undefined) {\n\t\tconst { tools, mcpDirectTools } = splitToolList(override.tools === false ? [] : override.tools);\n\t\tnext.tools = tools;\n\t\tnext.mcpDirectTools = mcpDirectTools;\n\t}\n\tif (override.subagentOnlyExtensions !== undefined) {\n\t\tnext.subagentOnlyExtensions = override.subagentOnlyExtensions === false ? undefined : [...override.subagentOnlyExtensions];\n\t}\n\tif (override.completionGuard !== undefined) next.completionGuard = override.completionGuard;\n\tif (override.toolBudget !== undefined) next.toolBudget = override.toolBudget === false ? undefined : override.toolBudget;\n\n\treturn next;\n}\n\nfunction clearBuiltinThinking(agent: AgentConfig, meta: { scope: \"user\" | \"project\"; path: string }): AgentConfig {\n\tif (agent.thinking === undefined) return agent;\n\treturn {\n\t\t...agent,\n\t\tthinking: undefined,\n\t\toverride: agent.override ?? { ...meta, base: cloneOverrideBase(agent) },\n\t};\n}\n\nfunction applyBuiltinOverrides(\n\tbuiltinAgents: AgentConfig[],\n\tuserSettings: SubagentSettings,\n\tprojectSettings: SubagentSettings,\n\tuserSettingsPath: string,\n\tprojectSettingsPath: string | null,\n): AgentConfig[] {\n\tconst projectBulkDisabled = projectSettings.disableBuiltins === true && projectSettingsPath !== null;\n\tconst userBulkDisabled = projectSettings.disableBuiltins === undefined && userSettings.disableBuiltins === true;\n\tconst projectThinkingConfigured = projectSettings.disableThinking !== undefined && projectSettingsPath !== null;\n\tconst disableThinking = projectThinkingConfigured ? projectSettings.disableThinking === true : userSettings.disableThinking === true;\n\tconst disableThinkingMeta = projectThinkingConfigured\n\t\t? { scope: \"project\" as const, path: projectSettingsPath! }\n\t\t: { scope: \"user\" as const, path: userSettingsPath };\n\n\tconst applyGlobalThinking = (agent: AgentConfig, hasExplicitThinkingOverride: boolean): AgentConfig => {\n\t\tif (!disableThinking || hasExplicitThinkingOverride) return agent;\n\t\treturn clearBuiltinThinking(agent, disableThinkingMeta);\n\t};\n\n\treturn builtinAgents.map((agent) => {\n\t\tconst projectOverride = projectSettings.overrides[agent.name];\n\t\tif (projectOverride && projectSettingsPath) {\n\t\t\treturn applyGlobalThinking(\n\t\t\t\tapplyBuiltinOverride(agent, projectOverride, { scope: \"project\", path: projectSettingsPath }),\n\t\t\t\tprojectOverride.thinking !== undefined,\n\t\t\t);\n\t\t}\n\n\t\tif (projectBulkDisabled && projectSettingsPath) {\n\t\t\treturn applyGlobalThinking(\n\t\t\t\tapplyBuiltinOverride(agent, { disabled: true }, { scope: \"project\", path: projectSettingsPath }),\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\n\t\tconst userOverride = userSettings.overrides[agent.name];\n\t\tif (userOverride) {\n\t\t\treturn applyGlobalThinking(\n\t\t\t\tapplyBuiltinOverride(agent, userOverride, { scope: \"user\", path: userSettingsPath }),\n\t\t\t\t!projectThinkingConfigured && userOverride.thinking !== undefined,\n\t\t\t);\n\t\t}\n\n\t\tif (userBulkDisabled) {\n\t\t\treturn applyGlobalThinking(\n\t\t\t\tapplyBuiltinOverride(agent, { disabled: true }, { scope: \"user\", path: userSettingsPath }),\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\n\t\treturn applyGlobalThinking(agent, false);\n\t});\n}\n\nfunction customAgentHasFrontmatterField(agent: AgentConfig, ...fields: string[]): boolean {\n\tconst frontmatterFields = agentFrontmatterFields.get(agent);\n\treturn frontmatterFields ? fields.some((field) => frontmatterFields.has(field)) : false;\n}\n\nfunction applyCustomAgentOverride(\n\tagent: AgentConfig,\n\toverride: BuiltinAgentOverrideConfig,\n\tmeta: { scope: \"user\" | \"project\"; path: string },\n): AgentConfig {\n\tlet next: AgentConfig | undefined;\n\tlet anyFilled = false;\n\n\tconst mutable = (): AgentConfig => {\n\t\tnext ??= { ...agent };\n\t\treturn next;\n\t};\n\n\tconst fill = <K extends keyof AgentConfig>(\n\t\tfield: K,\n\t\tfrontmatterFields: string[],\n\t\tvalue: AgentConfig[K],\n\t): void => {\n\t\tif (customAgentHasFrontmatterField(agent, ...frontmatterFields)) return;\n\t\tmutable()[field] = value;\n\t\tanyFilled = true;\n\t};\n\n\tif (override.model !== undefined) {\n\t\tfill(\"model\", [\"model\"], override.model === false ? undefined : override.model);\n\t}\n\tif (override.fallbackModels !== undefined) {\n\t\tfill(\n\t\t\t\"fallbackModels\",\n\t\t\t[\"fallbackModels\"],\n\t\t\toverride.fallbackModels === false ? undefined : [...override.fallbackModels],\n\t\t);\n\t}\n\tif (override.thinking !== undefined) {\n\t\tfill(\"thinking\", [\"thinking\"], override.thinking === false ? undefined : override.thinking);\n\t}\n\tif (override.systemPromptMode !== undefined) {\n\t\tfill(\"systemPromptMode\", [\"systemPromptMode\"], override.systemPromptMode);\n\t}\n\tif (override.inheritProjectContext !== undefined) {\n\t\tfill(\"inheritProjectContext\", [\"inheritProjectContext\"], override.inheritProjectContext);\n\t}\n\tif (override.inheritSkills !== undefined) {\n\t\tfill(\"inheritSkills\", [\"inheritSkills\"], override.inheritSkills);\n\t}\n\tif (override.defaultContext !== undefined) {\n\t\tfill(\"defaultContext\", [\"defaultContext\"], override.defaultContext === false ? undefined : override.defaultContext);\n\t}\n\tif (override.acceptanceRole !== undefined) {\n\t\tfill(\"acceptanceRole\", [\"acceptanceRole\"], override.acceptanceRole === false ? undefined : override.acceptanceRole);\n\t}\n\tif (override.disabled !== undefined && agent.disabled === undefined) {\n\t\tmutable().disabled = override.disabled;\n\t\tanyFilled = true;\n\t}\n\tif (override.skills !== undefined) {\n\t\tfill(\"skills\", [\"skill\", \"skills\"], override.skills === false ? undefined : [...override.skills]);\n\t}\n\tif (override.tools !== undefined && !customAgentHasFrontmatterField(agent, \"tools\")) {\n\t\tconst { tools, mcpDirectTools } = splitToolList(override.tools === false ? [] : override.tools);\n\t\tconst target = mutable();\n\t\ttarget.tools = tools;\n\t\ttarget.mcpDirectTools = mcpDirectTools;\n\t\tanyFilled = true;\n\t}\n\tif (override.subagentOnlyExtensions !== undefined) {\n\t\tfill(\n\t\t\t\"subagentOnlyExtensions\",\n\t\t\t[\"subagentOnlyExtensions\"],\n\t\t\toverride.subagentOnlyExtensions === false ? undefined : [...override.subagentOnlyExtensions],\n\t\t);\n\t}\n\tif (override.completionGuard !== undefined) {\n\t\tfill(\"completionGuard\", [\"completionGuard\"], override.completionGuard);\n\t}\n\tif (override.toolBudget !== undefined) {\n\t\tfill(\"toolBudget\", [\"toolBudget\"], override.toolBudget === false ? undefined : override.toolBudget);\n\t}\n\n\tif (!anyFilled || !next) return agent;\n\tnext.override = { ...meta, base: cloneOverrideBase(agent) };\n\treturn next;\n}\n\nfunction applyCustomAgentOverrides(\n\tagents: AgentConfig[],\n\tuserSettings: SubagentSettings,\n\tprojectSettings: SubagentSettings,\n\tuserSettingsPath: string,\n\tprojectSettingsPath: string | null,\n): AgentConfig[] {\n\treturn agents.map((agent) => {\n\t\tconst projectOverride = projectSettings.overrides[agent.name];\n\t\tif (projectOverride && projectSettingsPath) {\n\t\t\treturn applyCustomAgentOverride(agent, projectOverride, { scope: \"project\", path: projectSettingsPath });\n\t\t}\n\n\t\tconst userOverride = userSettings.overrides[agent.name];\n\t\tif (userOverride) {\n\t\t\treturn applyCustomAgentOverride(agent, userOverride, { scope: \"user\", path: userSettingsPath });\n\t\t}\n\n\t\treturn agent;\n\t});\n}\n\nexport function buildBuiltinOverrideConfig(\n\tbase: BuiltinAgentOverrideBase,\n\tdraft: Pick<AgentConfig, \"model\" | \"fallbackModels\" | \"thinking\" | \"systemPromptMode\" | \"inheritProjectContext\" | \"inheritSkills\" | \"defaultContext\" | \"acceptanceRole\" | \"disabled\" | \"systemPrompt\" | \"skills\" | \"tools\" | \"mcpDirectTools\" | \"subagentOnlyExtensions\" | \"completionGuard\" | \"toolBudget\">,\n): BuiltinAgentOverrideConfig | undefined {\n\tconst override: BuiltinAgentOverrideConfig = {};\n\n\tif (draft.model !== base.model) override.model = draft.model ?? false;\n\tif (!arraysEqual(draft.fallbackModels, base.fallbackModels)) override.fallbackModels = draft.fallbackModels ? [...draft.fallbackModels] : false;\n\tif (draft.thinking !== base.thinking) override.thinking = draft.thinking ?? false;\n\tif (draft.systemPromptMode !== base.systemPromptMode) override.systemPromptMode = draft.systemPromptMode;\n\tif (draft.inheritProjectContext !== base.inheritProjectContext) override.inheritProjectContext = draft.inheritProjectContext;\n\tif (draft.inheritSkills !== base.inheritSkills) override.inheritSkills = draft.inheritSkills;\n\tif (draft.defaultContext !== base.defaultContext) override.defaultContext = draft.defaultContext ?? false;\n\tif (draft.acceptanceRole !== base.acceptanceRole) override.acceptanceRole = draft.acceptanceRole ?? false;\n\tif (draft.disabled !== base.disabled) override.disabled = draft.disabled ?? false;\n\tif (draft.systemPrompt !== base.systemPrompt) override.systemPrompt = draft.systemPrompt;\n\tif (!arraysEqual(draft.skills, base.skills)) override.skills = draft.skills ? [...draft.skills] : false;\n\n\tconst baseTools = joinToolList(base);\n\tconst draftTools = joinToolList(draft);\n\tif (!arraysEqual(draftTools, baseTools)) override.tools = draftTools ? [...draftTools] : false;\n\tif (!arraysEqual(draft.subagentOnlyExtensions, base.subagentOnlyExtensions)) {\n\t\toverride.subagentOnlyExtensions = draft.subagentOnlyExtensions ? [...draft.subagentOnlyExtensions] : false;\n\t}\n\tif ((draft.completionGuard !== false) !== (base.completionGuard !== false)) {\n\t\toverride.completionGuard = draft.completionGuard !== false;\n\t}\n\tif (JSON.stringify(draft.toolBudget) !== JSON.stringify(base.toolBudget)) override.toolBudget = draft.toolBudget ?? false;\n\n\treturn Object.keys(override).length > 0 ? override : undefined;\n}\n\nexport function saveBuiltinAgentOverride(\n\tcwd: string,\n\tname: string,\n\tscope: \"user\" | \"project\",\n\toverride: BuiltinAgentOverrideConfig,\n): string {\n\tconst filePath = scope === \"project\" ? getProjectAgentSettingsPath(cwd) : getUserAgentSettingsPath();\n\tif (!filePath) throw new Error(\"Project override is not available here. No project config root was found.\");\n\n\tconst settings = readSettingsFileStrict(filePath);\n\tconst subagents = settings.subagents && typeof settings.subagents === \"object\" && !Array.isArray(settings.subagents)\n\t\t? { ...(settings.subagents as Record<string, unknown>) }\n\t\t: {};\n\tconst agentOverrides = subagents.agentOverrides && typeof subagents.agentOverrides === \"object\" && !Array.isArray(subagents.agentOverrides)\n\t\t? { ...(subagents.agentOverrides as Record<string, unknown>) }\n\t\t: {};\n\n\tagentOverrides[name] = cloneOverrideValue(override);\n\tsubagents.agentOverrides = agentOverrides;\n\tsettings.subagents = subagents;\n\twriteSettingsFile(filePath, settings);\n\treturn filePath;\n}\n\nexport function removeBuiltinAgentOverride(cwd: string, name: string, scope: \"user\" | \"project\"): { path: string; removed: boolean } {\n\tconst filePath = scope === \"project\" ? getProjectAgentSettingsPath(cwd) : getUserAgentSettingsPath();\n\tif (!filePath) throw new Error(\"Project override is not available here. No project config root was found.\");\n\tif (!fs.existsSync(filePath)) return { path: filePath, removed: false };\n\n\tconst settings = readSettingsFileStrict(filePath);\n\tconst subagents = settings.subagents;\n\tif (!subagents || typeof subagents !== \"object\" || Array.isArray(subagents)) return { path: filePath, removed: false };\n\tconst nextSubagents = { ...(subagents as Record<string, unknown>) };\n\tconst agentOverrides = nextSubagents.agentOverrides;\n\tif (!agentOverrides || typeof agentOverrides !== \"object\" || Array.isArray(agentOverrides)) return { path: filePath, removed: false };\n\n\tconst nextOverrides = { ...(agentOverrides as Record<string, unknown>) };\n\tif (!Object.prototype.hasOwnProperty.call(nextOverrides, name)) return { path: filePath, removed: false };\n\tdelete nextOverrides[name];\n\tif (Object.keys(nextOverrides).length > 0) nextSubagents.agentOverrides = nextOverrides;\n\telse delete nextSubagents.agentOverrides;\n\n\tif (Object.keys(nextSubagents).length > 0) settings.subagents = nextSubagents;\n\telse delete settings.subagents;\n\n\twriteSettingsFile(filePath, settings);\n\treturn { path: filePath, removed: true };\n}\n\nexport function mergeBuiltinAgentOverride(\n\tcwd: string,\n\tname: string,\n\tscope: \"user\" | \"project\",\n\tfields: BuiltinAgentOverrideConfig,\n): string {\n\tconst filePath = scope === \"project\" ? getProjectAgentSettingsPath(cwd) : getUserAgentSettingsPath();\n\tif (!filePath) throw new Error(\"Project override is not available here. No project config root was found.\");\n\n\tconst settings = readSettingsFileStrict(filePath);\n\tconst subagents = settings.subagents && typeof settings.subagents === \"object\" && !Array.isArray(settings.subagents)\n\t\t? { ...(settings.subagents as Record<string, unknown>) }\n\t\t: {};\n\tconst agentOverrides = subagents.agentOverrides && typeof subagents.agentOverrides === \"object\" && !Array.isArray(subagents.agentOverrides)\n\t\t? { ...(subagents.agentOverrides as Record<string, unknown>) }\n\t\t: {};\n\n\tconst existing = agentOverrides[name];\n\tconst base = existing && typeof existing === \"object\" && !Array.isArray(existing)\n\t\t? existing as Record<string, unknown>\n\t\t: {};\n\tagentOverrides[name] = { ...base, ...cloneOverrideValue(fields) };\n\tsubagents.agentOverrides = agentOverrides;\n\tsettings.subagents = subagents;\n\twriteSettingsFile(filePath, settings);\n\treturn filePath;\n}\n\nexport function removeBuiltinAgentOverrideFields(\n\tcwd: string,\n\tname: string,\n\tscope: \"user\" | \"project\",\n\tfields: string[],\n): { path: string; removed: boolean } {\n\tconst filePath = scope === \"project\" ? getProjectAgentSettingsPath(cwd) : getUserAgentSettingsPath();\n\tif (!filePath) throw new Error(\"Project override is not available here. No project config root was found.\");\n\tif (!fs.existsSync(filePath)) return { path: filePath, removed: false };\n\n\tconst settings = readSettingsFileStrict(filePath);\n\tconst subagents = settings.subagents;\n\tif (!subagents || typeof subagents !== \"object\" || Array.isArray(subagents)) return { path: filePath, removed: false };\n\tconst agentOverrides = (subagents as Record<string, unknown>).agentOverrides;\n\tif (!agentOverrides || typeof agentOverrides !== \"object\" || Array.isArray(agentOverrides)) return { path: filePath, removed: false };\n\n\tconst entry = (agentOverrides as Record<string, unknown>)[name];\n\tif (!entry || typeof entry !== \"object\" || Array.isArray(entry)) return { path: filePath, removed: false };\n\n\tconst nextEntry: Record<string, unknown> = { ...(entry as Record<string, unknown>) };\n\tlet removed = false;\n\tfor (const field of fields) {\n\t\tif (Object.prototype.hasOwnProperty.call(nextEntry, field)) {\n\t\t\tdelete nextEntry[field];\n\t\t\tremoved = true;\n\t\t}\n\t}\n\tif (!removed) return { path: filePath, removed: false };\n\n\tconst nextSubagents = { ...(subagents as Record<string, unknown>) };\n\tif (Object.keys(nextEntry).length > 0) {\n\t\t(nextSubagents.agentOverrides as Record<string, unknown>)[name] = nextEntry;\n\t} else {\n\t\tconst nextOverrides = { ...(agentOverrides as Record<string, unknown>) };\n\t\tdelete nextOverrides[name];\n\t\tif (Object.keys(nextOverrides).length > 0) nextSubagents.agentOverrides = nextOverrides;\n\t\telse delete nextSubagents.agentOverrides;\n\t}\n\tif (Object.keys(nextSubagents).length > 0) settings.subagents = nextSubagents;\n\telse delete settings.subagents;\n\twriteSettingsFile(filePath, settings);\n\treturn { path: filePath, removed: true };\n}\n\nfunction listFilesRecursive(dir: string, predicate: (fileName: string) => boolean): string[] {\n\tconst files: string[] = [];\n\tif (!fs.existsSync(dir)) return files;\n\n\tlet entries: fs.Dirent[];\n\ttry {\n\t\tentries = fs.readdirSync(dir, { withFileTypes: true }).sort((a, b) => a.name.localeCompare(b.name));\n\t} catch {\n\t\treturn files;\n\t}\n\n\tfor (const entry of entries) {\n\t\tconst filePath = path.join(dir, entry.name);\n\t\tif (entry.isDirectory()) {\n\t\t\tfiles.push(...listFilesRecursive(filePath, predicate));\n\t\t\tcontinue;\n\t\t}\n\t\tif (!entry.isFile() && !entry.isSymbolicLink()) continue;\n\t\tif (!predicate(entry.name)) continue;\n\t\tfiles.push(filePath);\n\t}\n\treturn files;\n}\n\nfunction isLegacyAgentSkillPath(rootDir: string, filePath: string): boolean {\n\tconst relative = path.relative(rootDir, filePath);\n\tconst parts = relative.split(path.sep).map((part) => part.toLowerCase());\n\tif (path.basename(rootDir).toLowerCase() === \".agents\") {\n\t\tparts.unshift(\".agents\");\n\t}\n\treturn parts.some((part, index) => part === \".agents\" && parts[index + 1] === \"skills\");\n}\n\nfunction parseAgentAcceptanceFrontmatter(raw: string | undefined, agentName: string): AcceptanceInput | undefined {\n\tif (raw === undefined || !raw.trim()) return undefined;\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = parseYaml(raw);\n\t} catch (error) {\n\t\tthrow new Error(`Agent '${agentName}' has invalid acceptance frontmatter: ${error instanceof Error ? error.message : String(error)}`, { cause: error });\n\t}\n\tconst errors = validateAcceptanceInput(parsed, `Agent '${agentName}' acceptance frontmatter`);\n\tif (errors.length > 0) throw new Error(errors.join(\" \"));\n\treturn parsed as AcceptanceInput;\n}\n\nfunction loadAgentsFromDir(dir: string, source: AgentSource): AgentConfig[] {\n\tconst agents: AgentConfig[] = [];\n\n\tfor (const filePath of listFilesRecursive(dir, (fileName) => fileName.endsWith(\".md\") && !fileName.endsWith(\".chain.md\"))) {\n\t\tif (isLegacyAgentSkillPath(dir, filePath)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet content: string;\n\t\ttry {\n\t\t\tcontent = fs.readFileSync(filePath, \"utf-8\");\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst { frontmatter, body } = parseFrontmatter(content);\n\n\t\tif (!frontmatter.name || !frontmatter.description) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst localName = frontmatter.name;\n\t\tconst parsedPackage = parsePackageName(frontmatter.package, `Agent '${localName}' package`);\n\t\tif (parsedPackage.error) continue;\n\t\tconst packageName = parsedPackage.packageName;\n\t\tconst runtimeName = buildRuntimeName(localName, packageName);\n\n\t\tconst rawTools = frontmatter.tools\n\t\t\t?.split(\",\")\n\t\t\t.map((t) => t.trim())\n\t\t\t.filter(Boolean);\n\n\t\tconst mcpDirectTools: string[] = [];\n\t\tconst tools: string[] = [];\n\t\tif (rawTools) {\n\t\t\tfor (const tool of rawTools) {\n\t\t\t\tif (tool.startsWith(\"mcp:\")) {\n\t\t\t\t\tmcpDirectTools.push(tool.slice(4));\n\t\t\t\t} else {\n\t\t\t\t\ttools.push(tool);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst defaultReads = frontmatter.defaultReads\n\t\t\t?.split(\",\")\n\t\t\t.map((f) => f.trim())\n\t\t\t.filter(Boolean);\n\n\t\tconst skillStr = frontmatter.skill || frontmatter.skills;\n\t\tconst skills = skillStr\n\t\t\t?.split(\",\")\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\t\tconst skillPath = frontmatter.skillPath\n\t\t\t?.split(\",\")\n\t\t\t.map((entry) => entry.trim())\n\t\t\t.filter(Boolean);\n\t\tconst fallbackModels = frontmatter.fallbackModels\n\t\t\t?.split(\",\")\n\t\t\t.map((model) => model.trim())\n\t\t\t.filter(Boolean);\n\t\tconst systemPromptMode = frontmatter.systemPromptMode === \"replace\"\n\t\t\t? \"replace\"\n\t\t\t: frontmatter.systemPromptMode === \"append\"\n\t\t\t\t? \"append\"\n\t\t\t\t: defaultSystemPromptMode(localName);\n\t\tconst inheritProjectContext = frontmatter.inheritProjectContext === \"true\"\n\t\t\t? true\n\t\t\t: frontmatter.inheritProjectContext === \"false\"\n\t\t\t\t? false\n\t\t\t\t: defaultInheritProjectContext(localName);\n\t\tconst inheritSkills = frontmatter.inheritSkills === \"true\"\n\t\t\t? true\n\t\t\t: frontmatter.inheritSkills === \"false\"\n\t\t\t\t? false\n\t\t\t\t: defaultInheritSkills();\n\t\tconst defaultContext = frontmatter.defaultContext === \"fork\"\n\t\t\t? \"fork\" as const\n\t\t\t: frontmatter.defaultContext === \"fresh\"\n\t\t\t\t? \"fresh\" as const\n\t\t\t\t: undefined;\n\t\tlet defaultAsync: boolean | undefined;\n\t\tif (frontmatter.async !== undefined) {\n\t\t\tif (frontmatter.async === \"true\") defaultAsync = true;\n\t\t\telse if (frontmatter.async === \"false\") defaultAsync = false;\n\t\t\telse throw new Error(`Agent '${localName}' has invalid async frontmatter; expected true or false.`);\n\t\t}\n\t\tlet defaultTimeoutMs: number | undefined;\n\t\tif (frontmatter.timeoutMs !== undefined) {\n\t\t\tconst parsed = Number(frontmatter.timeoutMs);\n\t\t\tif (!Number.isInteger(parsed) || parsed <= 0) {\n\t\t\t\tthrow new Error(`Agent '${localName}' has invalid timeoutMs frontmatter; expected a positive integer.`);\n\t\t\t}\n\t\t\tdefaultTimeoutMs = parsed;\n\t\t}\n\t\tlet defaultTurnBudget: TurnBudgetConfig | undefined;\n\t\tif (frontmatter.turnBudget !== undefined && frontmatter.turnBudget.trim()) {\n\t\t\tconst parsed = JSON.parse(frontmatter.turnBudget) as unknown;\n\t\t\tconst resolved = resolveTurnBudgetConfig(parsed, `Agent '${localName}' turnBudget frontmatter`);\n\t\t\tif (resolved.error) throw new Error(resolved.error);\n\t\t\tdefaultTurnBudget = resolved.turnBudget;\n\t\t}\n\t\tconst defaultAcceptance = parseAgentAcceptanceFrontmatter(frontmatter.acceptance, localName);\n\t\tlet acceptanceRole: AcceptanceRole | undefined;\n\t\tif (frontmatter.acceptanceRole !== undefined && frontmatter.acceptanceRole.trim()) {\n\t\t\tif (frontmatter.acceptanceRole === \"read-only\" || frontmatter.acceptanceRole === \"writer\") acceptanceRole = frontmatter.acceptanceRole;\n\t\t\telse throw new Error(`Agent '${localName}' has invalid acceptanceRole frontmatter; expected 'read-only' or 'writer'.`);\n\t\t}\n\n\t\tlet extensions: string[] | undefined;\n\t\tif (frontmatter.extensions !== undefined) {\n\t\t\textensions = frontmatter.extensions\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((e) => e.trim())\n\t\t\t\t.filter(Boolean);\n\t\t}\n\t\tlet subagentOnlyExtensions: string[] | undefined;\n\t\tif (frontmatter.subagentOnlyExtensions !== undefined) {\n\t\t\tsubagentOnlyExtensions = frontmatter.subagentOnlyExtensions\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((e) => e.trim())\n\t\t\t\t.filter(Boolean);\n\t\t}\n\n\t\tconst extraFields: Record<string, string> = {};\n\t\tfor (const [key, value] of Object.entries(frontmatter)) {\n\t\t\tif (!KNOWN_FIELDS.has(key)) extraFields[key] = value;\n\t\t}\n\n\t\tconst parsedMaxSubagentDepth = Number(frontmatter.maxSubagentDepth);\n\t\tlet toolBudget: ToolBudgetConfig | undefined;\n\t\tif (frontmatter.toolBudget !== undefined && frontmatter.toolBudget.trim()) {\n\t\t\tconst parsed = JSON.parse(frontmatter.toolBudget) as unknown;\n\t\t\tif (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n\t\t\t\tthrow new Error(`Agent '${localName}' has invalid toolBudget frontmatter; expected a JSON object.`);\n\t\t\t}\n\t\t\ttoolBudget = parsed as ToolBudgetConfig;\n\t\t}\n\t\tconst completionGuard = frontmatter.completionGuard === \"false\"\n\t\t\t? false\n\t\t\t: frontmatter.completionGuard === \"true\"\n\t\t\t\t? true\n\t\t\t\t: undefined;\n\n\t\tconst agent: AgentConfig = {\n\t\t\tname: runtimeName,\n\t\t\tlocalName,\n\t\t\tpackageName,\n\t\t\tdescription: frontmatter.description,\n\t\t\ttools: tools.length > 0 ? tools : undefined,\n\t\t\tmcpDirectTools: mcpDirectTools.length > 0 ? mcpDirectTools : undefined,\n\t\t\tmodel: frontmatter.model,\n\t\t\tfallbackModels: fallbackModels && fallbackModels.length > 0 ? fallbackModels : undefined,\n\t\t\tthinking: frontmatter.thinking === \"false\" ? false : frontmatter.thinking,\n\t\t\tsystemPromptMode,\n\t\t\tinheritProjectContext,\n\t\t\tinheritSkills,\n\t\t\tdefaultContext,\n\t\t\tdefaultAsync,\n\t\t\tdefaultTimeoutMs,\n\t\t\tdefaultTurnBudget,\n\t\t\tdefaultAcceptance,\n\t\t\tacceptanceRole,\n\t\t\tsystemPrompt: body,\n\t\t\tsource,\n\t\t\tfilePath,\n\t\t\tskills: skills && skills.length > 0 ? skills : undefined,\n\t\t\tskillPath: skillPath && skillPath.length > 0 ? skillPath : undefined,\n\t\t\textensions,\n\t\t\tsubagentOnlyExtensions,\n\t\t\toutput: frontmatter.output,\n\t\t\tdefaultReads: defaultReads && defaultReads.length > 0 ? defaultReads : undefined,\n\t\t\tdefaultProgress: frontmatter.defaultProgress === \"true\",\n\t\t\tinteractive: frontmatter.interactive === \"true\",\n\t\t\tmaxSubagentDepth:\n\t\t\t\tNumber.isInteger(parsedMaxSubagentDepth) && parsedMaxSubagentDepth >= 0\n\t\t\t\t\t? parsedMaxSubagentDepth\n\t\t\t\t\t: undefined,\n\t\t\tcompletionGuard,\n\t\t\ttoolBudget,\n\t\t\tmemory: parseMemoryFrontmatter(frontmatter.memory),\n\t\t\textraFields: Object.keys(extraFields).length > 0 ? extraFields : undefined,\n\t\t};\n\t\tagentFrontmatterFields.set(agent, new Set(Object.keys(frontmatter)));\n\t\tagents.push(agent);\n\t}\n\n\treturn agents;\n}\n\nfunction loadChainsFromDir(dir: string, source: AgentSource): { chains: ChainConfig[]; diagnostics: ChainDiscoveryDiagnostic[] } {\n\tconst chains = new Map<string, ChainConfig>();\n\tconst diagnostics: ChainDiscoveryDiagnostic[] = [];\n\n\tfor (const filePath of listFilesRecursive(dir, (fileName) => fileName.endsWith(\".chain.md\") || fileName.endsWith(\".chain.json\"))) {\n\t\tlet content: string;\n\t\ttry {\n\t\t\tcontent = fs.readFileSync(filePath, \"utf-8\");\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst chain = filePath.endsWith(\".chain.json\") ? parseJsonChain(content, source, filePath) : parseChain(content, source, filePath);\n\t\t\tconst existing = chains.get(chain.name);\n\t\t\tif (existing && existing.filePath.endsWith(\".chain.json\") && filePath.endsWith(\".chain.md\")) continue;\n\t\t\tchains.set(chain.name, chain);\n\t\t} catch (error) {\n\t\t\tdiagnostics.push({ source, filePath, error: error instanceof Error ? error.message : String(error) });\n\t\t\tcontinue;\n\t\t}\n\t}\n\n\treturn { chains: Array.from(chains.values()), diagnostics };\n}\n\nfunction isDirectory(p: string): boolean {\n\ttry {\n\t\treturn fs.statSync(p).isDirectory();\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction resolveNearestProjectAgentDirs(cwd: string): { readDirs: string[]; preferredDir: string | null } {\n\tconst projectRoot = findNearestProjectRoot(cwd);\n\tif (!projectRoot) return { readDirs: [], preferredDir: null };\n\n\tconst legacyDir = path.join(projectRoot, \".agents\");\n\tconst preferredDir = path.join(getProjectConfigDir(projectRoot), \"agents\");\n\tconst readDirs: string[] = [];\n\tif (isDirectory(legacyDir)) readDirs.push(legacyDir);\n\tif (isDirectory(preferredDir)) readDirs.push(preferredDir);\n\n\treturn {\n\t\treadDirs,\n\t\tpreferredDir,\n\t};\n}\n\nfunction resolveNearestProjectChainDirs(cwd: string): { readDirs: string[]; preferredDir: string | null } {\n\tconst projectRoot = findNearestProjectRoot(cwd);\n\tif (!projectRoot) return { readDirs: [], preferredDir: null };\n\n\tconst preferredDir = path.join(getProjectConfigDir(projectRoot), \"chains\");\n\treturn {\n\t\treadDirs: isDirectory(preferredDir) ? [preferredDir] : [],\n\t\tpreferredDir,\n\t};\n}\nconst BUILTIN_AGENTS_DIR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), \"..\", \"..\", \"agents\");\n\nexport const EXTRA_AGENT_DIRS_ENV = \"PI_SUBAGENT_EXTRA_AGENT_DIRS\";\n\n// Additional read-only directories to scan for agent definitions, supplied by the\n// launcher via PI_SUBAGENT_EXTRA_AGENT_DIRS (PATH-style, split on os/path delimiter).\n// Lets a hermetic wrapper (e.g. a Nix-store install) expose bundled agents without\n// copying or symlinking them into the writable agent dir. Loaded as \"user\" source,\n// at lower precedence than agents the user placed in their own agent dir.\nfunction extraUserAgentDirs(): string[] {\n\tconst raw = process.env[EXTRA_AGENT_DIRS_ENV];\n\tif (!raw) return [];\n\treturn raw\n\t\t.split(path.delimiter)\n\t\t.map((dir) => dir.trim())\n\t\t.filter((dir) => dir.length > 0);\n}\n\nexport function discoverAgents(cwd: string, scope: AgentScope): AgentDiscoveryResult {\n\tconst userDirOld = path.join(getAgentDir(), \"agents\");\n\tconst userDirNew = path.join(os.homedir(), \".agents\");\n\tconst { readDirs: projectAgentDirs, preferredDir: projectAgentsDir } = resolveNearestProjectAgentDirs(cwd);\n\tconst userSettingsPath = getUserAgentSettingsPath();\n\tconst projectSettingsPath = getProjectAgentSettingsPath(cwd);\n\tconst userSettings = scope === \"project\" ? EMPTY_SUBAGENT_SETTINGS : readSubagentSettings(userSettingsPath);\n\tconst projectSettings = scope === \"user\" ? EMPTY_SUBAGENT_SETTINGS : readSubagentSettings(projectSettingsPath);\n\tconst defaultModel = resolveSubagentDefaultModel(userSettings, projectSettings, userSettingsPath, projectSettingsPath);\n\tconst modelScope = projectSettings.modelScope ?? userSettings.modelScope;\n\tconst packageSubagentPaths = collectPackageSubagentPaths(cwd, {\n\t\tincludeUser: scope !== \"project\",\n\t\tincludeProject: scope !== \"user\",\n\t});\n\n\tconst builtinAgents = applyBuiltinOverrides(\n\t\tapplySubagentDefaultModel(loadAgentsFromDir(BUILTIN_AGENTS_DIR, \"builtin\"), defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\n\tconst userAgentsExtra = scope === \"project\" ? [] : extraUserAgentDirs().flatMap((dir) => loadAgentsFromDir(dir, \"user\"));\n\tconst userAgentsOld = scope === \"project\" ? [] : loadAgentsFromDir(userDirOld, \"user\");\n\tconst userAgentsNew = scope === \"project\" ? [] : loadAgentsFromDir(userDirNew, \"user\");\n\tconst userAgents = applyCustomAgentOverrides(\n\t\tapplySubagentDefaultModel([...userAgentsExtra, ...userAgentsOld, ...userAgentsNew], defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\n\tconst projectAgents = applyCustomAgentOverrides(\n\t\tapplySubagentDefaultModel(scope === \"user\" ? [] : projectAgentDirs.flatMap((dir) => loadAgentsFromDir(dir, \"project\")), defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\tconst packageAgents = applyCustomAgentOverrides(\n\t\tapplySubagentDefaultModel(packageSubagentPaths.agents.flatMap((dir) => loadAgentsFromDir(dir, \"package\")), defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\tconst agents = mergeAgentsForScope(scope, userAgents, projectAgents, builtinAgents, packageAgents)\n\t\t.filter((agent) => agent.disabled !== true);\n\n\treturn { agents, projectAgentsDir, modelScope };\n}\n\nexport function discoverAgentsAll(cwd: string): {\n\tbuiltin: AgentConfig[];\n\tpackage: AgentConfig[];\n\tuser: AgentConfig[];\n\tproject: AgentConfig[];\n\tchains: ChainConfig[];\n\tchainDiagnostics: ChainDiscoveryDiagnostic[];\n\tuserDir: string;\n\tprojectDir: string | null;\n\tuserChainDir: string;\n\tprojectChainDir: string | null;\n\tuserSettingsPath: string;\n\tprojectSettingsPath: string | null;\n} {\n\tconst userDirOld = path.join(getAgentDir(), \"agents\");\n\tconst userDirNew = path.join(os.homedir(), \".agents\");\n\tconst userChainDir = getUserChainDir();\n\tconst { readDirs: projectDirs, preferredDir: projectDir } = resolveNearestProjectAgentDirs(cwd);\n\tconst { readDirs: projectChainDirs, preferredDir: projectChainDir } = resolveNearestProjectChainDirs(cwd);\n\tconst userSettingsPath = getUserAgentSettingsPath();\n\tconst projectSettingsPath = getProjectAgentSettingsPath(cwd);\n\tconst userSettings = readSubagentSettings(userSettingsPath);\n\tconst projectSettings = readSubagentSettings(projectSettingsPath);\n\tconst defaultModel = resolveSubagentDefaultModel(userSettings, projectSettings, userSettingsPath, projectSettingsPath);\n\tconst packageSubagentPaths = collectPackageSubagentPaths(cwd);\n\n\tconst builtin = applyBuiltinOverrides(\n\t\tapplySubagentDefaultModel(loadAgentsFromDir(BUILTIN_AGENTS_DIR, \"builtin\"), defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\tconst user = applyCustomAgentOverrides(\n\t\tapplySubagentDefaultModel([\n\t\t\t...extraUserAgentDirs().flatMap((dir) => loadAgentsFromDir(dir, \"user\")),\n\t\t\t...loadAgentsFromDir(userDirOld, \"user\"),\n\t\t\t...loadAgentsFromDir(userDirNew, \"user\"),\n\t\t], defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\tconst packageMap = new Map<string, AgentConfig>();\n\tfor (const dir of packageSubagentPaths.agents) {\n\t\tfor (const agent of loadAgentsFromDir(dir, \"package\")) {\n\t\t\tif (!packageMap.has(agent.name)) packageMap.set(agent.name, agent);\n\t\t}\n\t}\n\tconst packageAgents = applyCustomAgentOverrides(\n\t\tapplySubagentDefaultModel(Array.from(packageMap.values()), defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\tconst projectMap = new Map<string, AgentConfig>();\n\tfor (const dir of projectDirs) {\n\t\tfor (const agent of loadAgentsFromDir(dir, \"project\")) {\n\t\t\tprojectMap.set(agent.name, agent);\n\t\t}\n\t}\n\tconst project = applyCustomAgentOverrides(\n\t\tapplySubagentDefaultModel(Array.from(projectMap.values()), defaultModel),\n\t\tuserSettings,\n\t\tprojectSettings,\n\t\tuserSettingsPath,\n\t\tprojectSettingsPath,\n\t);\n\n\tconst chainMap = new Map<string, ChainConfig>();\n\tconst packageChainDiagnostics: ChainDiscoveryDiagnostic[] = [];\n\tconst packageChainMap = new Map<string, ChainConfig>();\n\tfor (const dir of packageSubagentPaths.chains) {\n\t\tconst loaded = loadChainsFromDir(dir, \"package\");\n\t\tpackageChainDiagnostics.push(...loaded.diagnostics);\n\t\tfor (const chain of loaded.chains) {\n\t\t\tif (!packageChainMap.has(chain.name)) packageChainMap.set(chain.name, chain);\n\t\t}\n\t}\n\tconst projectChainDiagnostics: ChainDiscoveryDiagnostic[] = [];\n\tfor (const dir of projectChainDirs) {\n\t\tconst loaded = loadChainsFromDir(dir, \"project\");\n\t\tprojectChainDiagnostics.push(...loaded.diagnostics);\n\t\tfor (const chain of loaded.chains) {\n\t\t\tchainMap.set(chain.name, chain);\n\t\t}\n\t}\n\tconst userChains = loadChainsFromDir(userChainDir, \"user\");\n\tconst chains = [\n\t\t...Array.from(packageChainMap.values()),\n\t\t...userChains.chains,\n\t\t...Array.from(chainMap.values()),\n\t];\n\tconst chainDiagnostics = [\n\t\t...packageChainDiagnostics,\n\t\t...userChains.diagnostics,\n\t\t...projectChainDiagnostics,\n\t];\n\n\tconst userDir = process.env.PI_CODING_AGENT_DIR ? userDirOld : fs.existsSync(userDirNew) ? userDirNew : userDirOld;\n\n\treturn { builtin, package: packageAgents, user, project, chains, chainDiagnostics, userDir, projectDir, userChainDir, projectChainDir, userSettingsPath, projectSettingsPath };\n}\n"]}
@@ -1,7 +0,0 @@
1
- import type { ChainConfig } from "./agents.ts";
2
- import type { AgentSource } from "./agents.ts";
3
- export declare function parseChain(content: string, source: AgentSource, filePath: string): ChainConfig;
4
- export declare function parseJsonChain(content: string, source: AgentSource, filePath: string): ChainConfig;
5
- export declare function serializeJsonChain(config: ChainConfig): string;
6
- export declare function serializeChain(config: ChainConfig): string;
7
- //# sourceMappingURL=chain-serializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chain-serializer.d.ts","sourceRoot":"","sources":["../../../../../src/builtin-extensions/pi-subagents/src/agents/chain-serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAC;AAOhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA6F/C,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CAuC9F;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CA4ElG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAa9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAqC1D","sourcesContent":["// @ts-nocheck\nimport type { ChainConfig, ChainStepConfig } from \"./agents.ts\";\nimport { buildRuntimeName, frontmatterNameForConfig, parsePackageName } from \"./identity.ts\";\nimport { parseFrontmatter } from \"./frontmatter.ts\";\nimport { ChainOutputValidationError, validateChainOutputBindings } from \"../runs/shared/chain-outputs.ts\";\nimport { validateAcceptanceInput } from \"../runs/shared/acceptance.ts\";\nimport { validateToolBudgetConfig } from \"../runs/shared/tool-budget.ts\";\nimport type { ChainStep } from \"../shared/settings.ts\";\nimport type { AgentSource } from \"./agents.ts\";\n\nfunction parseStepBody(agent: string, sectionBody: string): ChainStepConfig {\n\tconst lines = sectionBody.split(\"\\n\");\n\tconst blankIndex = lines.findIndex((line) => line.trim() === \"\");\n\tconst configLines = blankIndex === -1 ? lines : lines.slice(0, blankIndex);\n\tconst task = (blankIndex === -1 ? \"\" : lines.slice(blankIndex + 1).join(\"\\n\")).trim();\n\n\tconst step: ChainStepConfig = { agent, task };\n\tfor (const line of configLines) {\n\t\tconst match = line.match(/^([\\w-]+):\\s*(.*)$/);\n\t\tif (!match) continue;\n\t\tconst key = match[1].trim().toLowerCase();\n\t\tconst rawValue = match[2].trim();\n\n\t\tif (key === \"output\") {\n\t\t\tif (rawValue === \"false\") step.output = false;\n\t\t\telse if (rawValue) step.output = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"phase\") {\n\t\t\tif (rawValue) step.phase = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"label\") {\n\t\t\tif (rawValue) step.label = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"as\") {\n\t\t\tif (rawValue) step.as = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"outputschema\") {\n\t\t\tif (rawValue.startsWith(\"{\") || rawValue.startsWith(\"[\")) {\n\t\t\t\tthrow new Error(\"Inline outputSchema values are not supported in .chain.md files; use a schema file path.\");\n\t\t\t}\n\t\t\tif (rawValue) step.outputSchema = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"outputmode\") {\n\t\t\tif (rawValue === \"inline\" || rawValue === \"file-only\") step.outputMode = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"reads\") {\n\t\t\tif (rawValue === \"false\") {\n\t\t\t\tstep.reads = false;\n\t\t\t} else {\n\t\t\t\tconst reads = rawValue\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.map((v) => v.trim())\n\t\t\t\t\t.filter(Boolean);\n\t\t\t\tstep.reads = reads.length > 0 ? reads : false;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"model\") {\n\t\t\tif (rawValue) step.model = rawValue;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"skills\") {\n\t\t\tif (rawValue === \"false\") {\n\t\t\t\tstep.skills = false;\n\t\t\t} else {\n\t\t\t\tconst skills = rawValue\n\t\t\t\t\t.split(\",\")\n\t\t\t\t\t.map((v) => v.trim())\n\t\t\t\t\t.filter(Boolean);\n\t\t\t\tstep.skills = skills.length > 0 ? skills : false;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"progress\") {\n\t\t\tif (rawValue === \"true\") step.progress = true;\n\t\t\telse if (rawValue === \"false\") step.progress = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (key === \"toolbudget\") {\n\t\t\tlet parsed: unknown;\n\t\t\ttry {\n\t\t\t\tparsed = JSON.parse(rawValue);\n\t\t\t} catch (error) {\n\t\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\t\tthrow new Error(`Invalid toolBudget in .chain.md step '${agent}': ${message}`);\n\t\t\t}\n\t\t\tconst validation = validateToolBudgetConfig(parsed, `toolBudget for step '${agent}'`);\n\t\t\tif (validation.error) throw new Error(validation.error);\n\t\t\tstep.toolBudget = parsed as ChainStepConfig[\"toolBudget\"];\n\t\t}\n\t}\n\n\treturn step;\n}\n\nexport function parseChain(content: string, source: AgentSource, filePath: string): ChainConfig {\n\tconst { frontmatter, body } = parseFrontmatter(content);\n\tif (!frontmatter.name || !frontmatter.description) {\n\t\tthrow new Error(\"Chain frontmatter must include name and description\");\n\t}\n\n\tconst matches = [...body.matchAll(/^##\\s+(.+)[^\\S\\n]*$/gm)];\n\tconst steps: ChainStepConfig[] = [];\n\n\tfor (let i = 0; i < matches.length; i++) {\n\t\tconst match = matches[i]!;\n\t\tconst agent = match[1]!.trim();\n\t\tconst lineEndOffset = body[match.index! + match[0].length] === \"\\n\" ? 1 : 0;\n\t\tconst sectionStart = match.index! + match[0].length + lineEndOffset;\n\t\tconst sectionEnd = i + 1 < matches.length ? matches[i + 1]!.index! : body.length;\n\t\tconst sectionBody = body.slice(sectionStart, sectionEnd).trimEnd();\n\t\tsteps.push(parseStepBody(agent, sectionBody));\n\t}\n\n\tconst localName = frontmatter.name;\n\tconst parsedPackage = parsePackageName(frontmatter.package, `Chain '${localName}' package`);\n\tif (parsedPackage.error) throw new Error(parsedPackage.error);\n\tconst packageName = parsedPackage.packageName;\n\tconst extraFields: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(frontmatter)) {\n\t\tif (key === \"name\" || key === \"package\" || key === \"description\") continue;\n\t\textraFields[key] = value;\n\t}\n\n\treturn {\n\t\tname: buildRuntimeName(localName, packageName),\n\t\tlocalName,\n\t\tpackageName,\n\t\tdescription: frontmatter.description,\n\t\tsource,\n\t\tfilePath,\n\t\tsteps,\n\t\textraFields: Object.keys(extraFields).length > 0 ? extraFields : undefined,\n\t};\n}\n\nfunction validateJsonChainToolBudget(value: unknown, label: string): void {\n\tconst validation = validateToolBudgetConfig(value, label);\n\tif (validation.error) throw new Error(validation.error);\n}\n\nexport function parseJsonChain(content: string, source: AgentSource, filePath: string): ChainConfig {\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(content);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthrow new Error(`Invalid JSON chain '${filePath}': ${message}`);\n\t}\n\tif (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n\t\tthrow new Error(`JSON chain '${filePath}' must contain an object root.`);\n\t}\n\tconst input = parsed as Record<string, unknown>;\n\tif (typeof input.name !== \"string\" || !input.name.trim()) {\n\t\tthrow new Error(`JSON chain '${filePath}' must include string name.`);\n\t}\n\tif (typeof input.description !== \"string\" || !input.description.trim()) {\n\t\tthrow new Error(`JSON chain '${filePath}' must include string description.`);\n\t}\n\tif (!Array.isArray(input.chain)) {\n\t\tthrow new Error(`JSON chain '${filePath}' must include array chain.`);\n\t}\n\tfor (let i = 0; i < input.chain.length; i++) {\n\t\tconst step = input.chain[i];\n\t\tif (!step || typeof step !== \"object\" || Array.isArray(step)) {\n\t\t\tthrow new Error(`JSON chain '${filePath}' step ${i + 1} must be an object.`);\n\t\t}\n\t\tconst stepRecord = step as Record<string, unknown>;\n\t\tif (stepRecord.toolBudget !== undefined) validateJsonChainToolBudget(stepRecord.toolBudget, `step ${i + 1} toolBudget`);\n\t\tconst acceptanceErrors = validateAcceptanceInput(stepRecord.acceptance, `step ${i + 1} acceptance`);\n\t\tif (acceptanceErrors.length > 0) {\n\t\t\tthrow new Error(`Invalid JSON chain '${filePath}': ${acceptanceErrors.join(\" \")}`);\n\t\t}\n\t\tconst parallel = stepRecord.parallel;\n\t\tif (Array.isArray(parallel)) {\n\t\t\tfor (let taskIndex = 0; taskIndex < parallel.length; taskIndex++) {\n\t\t\t\tconst task = parallel[taskIndex];\n\t\t\t\tif (!task || typeof task !== \"object\" || Array.isArray(task)) continue;\n\t\t\t\tconst taskRecord = task as Record<string, unknown>;\n\t\t\t\tif (taskRecord.toolBudget !== undefined) validateJsonChainToolBudget(taskRecord.toolBudget, `step ${i + 1} parallel task ${taskIndex + 1} toolBudget`);\n\t\t\t\tconst taskErrors = validateAcceptanceInput(taskRecord.acceptance, `step ${i + 1} parallel task ${taskIndex + 1} acceptance`);\n\t\t\t\tif (taskErrors.length > 0) {\n\t\t\t\t\tthrow new Error(`Invalid JSON chain '${filePath}': ${taskErrors.join(\" \")}`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (parallel && typeof parallel === \"object\") {\n\t\t\tconst parallelRecord = parallel as Record<string, unknown>;\n\t\t\tif (parallelRecord.toolBudget !== undefined) validateJsonChainToolBudget(parallelRecord.toolBudget, `step ${i + 1} dynamic template toolBudget`);\n\t\t\tconst templateErrors = validateAcceptanceInput(parallelRecord.acceptance, `step ${i + 1} dynamic template acceptance`);\n\t\t\tif (templateErrors.length > 0) {\n\t\t\t\tthrow new Error(`Invalid JSON chain '${filePath}': ${templateErrors.join(\" \")}`);\n\t\t\t}\n\t\t}\n\t}\n\ttry {\n\t\tvalidateChainOutputBindings(input.chain as ChainStep[], { maxItems: Number.MAX_SAFE_INTEGER });\n\t} catch (error) {\n\t\tif (error instanceof ChainOutputValidationError) throw new Error(`Invalid JSON chain '${filePath}': ${error.message}`);\n\t\tthrow error;\n\t}\n\tconst parsedPackage = parsePackageName(typeof input.package === \"string\" ? input.package : undefined, `Chain '${input.name}' package`);\n\tif (parsedPackage.error) throw new Error(parsedPackage.error);\n\tconst extraFields: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(input)) {\n\t\tif (key === \"name\" || key === \"package\" || key === \"description\" || key === \"chain\") continue;\n\t\tif (typeof value === \"string\") extraFields[key] = value;\n\t}\n\treturn {\n\t\tname: buildRuntimeName(input.name.trim(), parsedPackage.packageName),\n\t\tlocalName: input.name.trim(),\n\t\tpackageName: parsedPackage.packageName,\n\t\tdescription: input.description.trim(),\n\t\tsource,\n\t\tfilePath,\n\t\tsteps: input.chain as ChainStepConfig[],\n\t\textraFields: Object.keys(extraFields).length > 0 ? extraFields : undefined,\n\t};\n}\n\nexport function serializeJsonChain(config: ChainConfig): string {\n\tconst root: Record<string, unknown> = {\n\t\tname: frontmatterNameForConfig(config),\n\t\tdescription: config.description,\n\t\tchain: config.steps,\n\t};\n\tif (config.packageName) root.package = config.packageName;\n\tif (config.extraFields) {\n\t\tfor (const [key, value] of Object.entries(config.extraFields)) {\n\t\t\tif (key !== \"name\" && key !== \"description\" && key !== \"package\" && key !== \"chain\") root[key] = value;\n\t\t}\n\t}\n\treturn `${JSON.stringify(root, null, 2)}\\n`;\n}\n\nexport function serializeChain(config: ChainConfig): string {\n\tconst lines: string[] = [];\n\tlines.push(\"---\");\n\tlines.push(`name: ${frontmatterNameForConfig(config)}`);\n\tif (config.packageName) lines.push(`package: ${config.packageName}`);\n\tlines.push(`description: ${config.description}`);\n\tif (config.extraFields) {\n\t\tfor (const [key, value] of Object.entries(config.extraFields)) {\n\t\t\tlines.push(`${key}: ${value}`);\n\t\t}\n\t}\n\tlines.push(\"---\");\n\tlines.push(\"\");\n\n\tfor (let i = 0; i < config.steps.length; i++) {\n\t\tconst step = config.steps[i]!;\n\t\tlines.push(`## ${step.agent}`);\n\t\tif (step.output === false) lines.push(\"output: false\");\n\t\telse if (step.output) lines.push(`output: ${step.output}`);\n\t\tif (step.phase) lines.push(`phase: ${step.phase}`);\n\t\tif (step.label) lines.push(`label: ${step.label}`);\n\t\tif (step.as) lines.push(`as: ${step.as}`);\n\t\tif (step.outputSchema) lines.push(`outputSchema: ${step.outputSchema}`);\n\t\tif (step.outputMode) lines.push(`outputMode: ${step.outputMode}`);\n\t\tif (step.reads === false) lines.push(\"reads: false\");\n\t\telse if (Array.isArray(step.reads) && step.reads.length > 0) lines.push(`reads: ${step.reads.join(\", \")}`);\n\t\tif (step.model) lines.push(`model: ${step.model}`);\n\t\tif (step.skills === false) lines.push(\"skills: false\");\n\t\telse if (Array.isArray(step.skills) && step.skills.length > 0) lines.push(`skills: ${step.skills.join(\", \")}`);\n\t\tif (step.progress !== undefined) lines.push(`progress: ${step.progress ? \"true\" : \"false\"}`);\n\t\tif (step.toolBudget !== undefined) lines.push(`toolBudget: ${JSON.stringify(step.toolBudget)}`);\n\t\tlines.push(\"\");\n\t\tlines.push(step.task ?? \"\");\n\t\tif (i < config.steps.length - 1) lines.push(\"\");\n\t}\n\n\treturn `${lines.join(\"\\n\")}\\n`;\n}\n"]}