@x-code-cli/core 0.2.10 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/agent/compression.d.ts +12 -2
  2. package/dist/agent/compression.d.ts.map +1 -1
  3. package/dist/agent/compression.js +51 -2
  4. package/dist/agent/compression.js.map +1 -1
  5. package/dist/agent/file-ingest.js +2 -2
  6. package/dist/agent/file-ingest.js.map +1 -1
  7. package/dist/agent/loop-state.d.ts +3 -2
  8. package/dist/agent/loop-state.d.ts.map +1 -1
  9. package/dist/agent/loop-state.js.map +1 -1
  10. package/dist/agent/loop.d.ts.map +1 -1
  11. package/dist/agent/loop.js +134 -5
  12. package/dist/agent/loop.js.map +1 -1
  13. package/dist/agent/memory-extractor.js +5 -5
  14. package/dist/agent/memory-extractor.js.map +1 -1
  15. package/dist/agent/plan-storage.js +1 -1
  16. package/dist/agent/plan-storage.js.map +1 -1
  17. package/dist/agent/sub-agents/index.d.ts +2 -1
  18. package/dist/agent/sub-agents/index.d.ts.map +1 -1
  19. package/dist/agent/sub-agents/index.js +1 -1
  20. package/dist/agent/sub-agents/index.js.map +1 -1
  21. package/dist/agent/sub-agents/loader.d.ts +13 -3
  22. package/dist/agent/sub-agents/loader.d.ts.map +1 -1
  23. package/dist/agent/sub-agents/loader.js +36 -9
  24. package/dist/agent/sub-agents/loader.js.map +1 -1
  25. package/dist/agent/sub-agents/registry.d.ts +18 -1
  26. package/dist/agent/sub-agents/registry.d.ts.map +1 -1
  27. package/dist/agent/sub-agents/registry.js +38 -5
  28. package/dist/agent/sub-agents/registry.js.map +1 -1
  29. package/dist/agent/sub-agents/runner.d.ts.map +1 -1
  30. package/dist/agent/sub-agents/runner.js +45 -1
  31. package/dist/agent/sub-agents/runner.js.map +1 -1
  32. package/dist/agent/sub-agents/types.d.ts +4 -1
  33. package/dist/agent/sub-agents/types.d.ts.map +1 -1
  34. package/dist/agent/system-prompt.d.ts +21 -0
  35. package/dist/agent/system-prompt.d.ts.map +1 -1
  36. package/dist/agent/system-prompt.js +68 -2
  37. package/dist/agent/system-prompt.js.map +1 -1
  38. package/dist/agent/tool-execution.d.ts.map +1 -1
  39. package/dist/agent/tool-execution.js +220 -1
  40. package/dist/agent/tool-execution.js.map +1 -1
  41. package/dist/commands/index.d.ts +6 -0
  42. package/dist/commands/index.d.ts.map +1 -0
  43. package/dist/commands/index.js +3 -0
  44. package/dist/commands/index.js.map +1 -0
  45. package/dist/commands/loader.d.ts +13 -0
  46. package/dist/commands/loader.d.ts.map +1 -0
  47. package/dist/commands/loader.js +93 -0
  48. package/dist/commands/loader.js.map +1 -0
  49. package/dist/commands/registry.d.ts +44 -0
  50. package/dist/commands/registry.d.ts.map +1 -0
  51. package/dist/commands/registry.js +102 -0
  52. package/dist/commands/registry.js.map +1 -0
  53. package/dist/commands/types.d.ts +23 -0
  54. package/dist/commands/types.d.ts.map +1 -0
  55. package/dist/commands/types.js +26 -0
  56. package/dist/commands/types.js.map +1 -0
  57. package/dist/config/index.d.ts +9 -0
  58. package/dist/config/index.d.ts.map +1 -1
  59. package/dist/config/index.js +12 -10
  60. package/dist/config/index.js.map +1 -1
  61. package/dist/hooks/bus.d.ts +54 -0
  62. package/dist/hooks/bus.d.ts.map +1 -0
  63. package/dist/hooks/bus.js +165 -0
  64. package/dist/hooks/bus.js.map +1 -0
  65. package/dist/hooks/config-schema.d.ts +854 -0
  66. package/dist/hooks/config-schema.d.ts.map +1 -0
  67. package/dist/hooks/config-schema.js +79 -0
  68. package/dist/hooks/config-schema.js.map +1 -0
  69. package/dist/hooks/executor.d.ts +16 -0
  70. package/dist/hooks/executor.d.ts.map +1 -0
  71. package/dist/hooks/executor.js +183 -0
  72. package/dist/hooks/executor.js.map +1 -0
  73. package/dist/hooks/index.d.ts +10 -0
  74. package/dist/hooks/index.d.ts.map +1 -0
  75. package/dist/hooks/index.js +6 -0
  76. package/dist/hooks/index.js.map +1 -0
  77. package/dist/hooks/registry.d.ts +23 -0
  78. package/dist/hooks/registry.d.ts.map +1 -0
  79. package/dist/hooks/registry.js +49 -0
  80. package/dist/hooks/registry.js.map +1 -0
  81. package/dist/hooks/types.d.ts +165 -0
  82. package/dist/hooks/types.d.ts.map +1 -0
  83. package/dist/hooks/types.js +25 -0
  84. package/dist/hooks/types.js.map +1 -0
  85. package/dist/hooks/variables.d.ts +22 -0
  86. package/dist/hooks/variables.d.ts.map +1 -0
  87. package/dist/hooks/variables.js +80 -0
  88. package/dist/hooks/variables.js.map +1 -0
  89. package/dist/index.d.ts +56 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +37 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/knowledge/auto-memory.d.ts +1 -1
  94. package/dist/knowledge/auto-memory.d.ts.map +1 -1
  95. package/dist/knowledge/auto-memory.js +10 -10
  96. package/dist/knowledge/auto-memory.js.map +1 -1
  97. package/dist/knowledge/loader.js +12 -12
  98. package/dist/knowledge/loader.js.map +1 -1
  99. package/dist/mcp/arg-parser.d.ts +49 -0
  100. package/dist/mcp/arg-parser.d.ts.map +1 -0
  101. package/dist/mcp/arg-parser.js +357 -0
  102. package/dist/mcp/arg-parser.js.map +1 -0
  103. package/dist/mcp/client.d.ts +73 -0
  104. package/dist/mcp/client.d.ts.map +1 -0
  105. package/dist/mcp/client.js +376 -0
  106. package/dist/mcp/client.js.map +1 -0
  107. package/dist/mcp/config-schema.d.ts +64 -0
  108. package/dist/mcp/config-schema.d.ts.map +1 -0
  109. package/dist/mcp/config-schema.js +86 -0
  110. package/dist/mcp/config-schema.js.map +1 -0
  111. package/dist/mcp/config-writer.d.ts +41 -0
  112. package/dist/mcp/config-writer.d.ts.map +1 -0
  113. package/dist/mcp/config-writer.js +138 -0
  114. package/dist/mcp/config-writer.js.map +1 -0
  115. package/dist/mcp/env-safety.d.ts +12 -0
  116. package/dist/mcp/env-safety.d.ts.map +1 -0
  117. package/dist/mcp/env-safety.js +80 -0
  118. package/dist/mcp/env-safety.js.map +1 -0
  119. package/dist/mcp/expand-env.d.ts +14 -0
  120. package/dist/mcp/expand-env.d.ts.map +1 -0
  121. package/dist/mcp/expand-env.js +52 -0
  122. package/dist/mcp/expand-env.js.map +1 -0
  123. package/dist/mcp/loader.d.ts +81 -0
  124. package/dist/mcp/loader.d.ts.map +1 -0
  125. package/dist/mcp/loader.js +223 -0
  126. package/dist/mcp/loader.js.map +1 -0
  127. package/dist/mcp/name-mangling.d.ts +11 -0
  128. package/dist/mcp/name-mangling.d.ts.map +1 -0
  129. package/dist/mcp/name-mangling.js +82 -0
  130. package/dist/mcp/name-mangling.js.map +1 -0
  131. package/dist/mcp/oauth/callback-server.d.ts +25 -0
  132. package/dist/mcp/oauth/callback-server.d.ts.map +1 -0
  133. package/dist/mcp/oauth/callback-server.js +118 -0
  134. package/dist/mcp/oauth/callback-server.js.map +1 -0
  135. package/dist/mcp/oauth/provider.d.ts +80 -0
  136. package/dist/mcp/oauth/provider.d.ts.map +1 -0
  137. package/dist/mcp/oauth/provider.js +292 -0
  138. package/dist/mcp/oauth/provider.js.map +1 -0
  139. package/dist/mcp/oauth/token-storage.d.ts +42 -0
  140. package/dist/mcp/oauth/token-storage.d.ts.map +1 -0
  141. package/dist/mcp/oauth/token-storage.js +121 -0
  142. package/dist/mcp/oauth/token-storage.js.map +1 -0
  143. package/dist/mcp/permissions.d.ts +28 -0
  144. package/dist/mcp/permissions.d.ts.map +1 -0
  145. package/dist/mcp/permissions.js +105 -0
  146. package/dist/mcp/permissions.js.map +1 -0
  147. package/dist/mcp/registry.d.ts +150 -0
  148. package/dist/mcp/registry.d.ts.map +1 -0
  149. package/dist/mcp/registry.js +334 -0
  150. package/dist/mcp/registry.js.map +1 -0
  151. package/dist/mcp/resources.d.ts +7 -0
  152. package/dist/mcp/resources.d.ts.map +1 -0
  153. package/dist/mcp/resources.js +40 -0
  154. package/dist/mcp/resources.js.map +1 -0
  155. package/dist/mcp/tool-bridge.d.ts +16 -0
  156. package/dist/mcp/tool-bridge.d.ts.map +1 -0
  157. package/dist/mcp/tool-bridge.js +56 -0
  158. package/dist/mcp/tool-bridge.js.map +1 -0
  159. package/dist/mcp/trust.d.ts +31 -0
  160. package/dist/mcp/trust.d.ts.map +1 -0
  161. package/dist/mcp/trust.js +103 -0
  162. package/dist/mcp/trust.js.map +1 -0
  163. package/dist/mcp/types.d.ts +73 -0
  164. package/dist/mcp/types.d.ts.map +1 -0
  165. package/dist/mcp/types.js +13 -0
  166. package/dist/mcp/types.js.map +1 -0
  167. package/dist/permissions/session-store.d.ts +4 -1
  168. package/dist/permissions/session-store.d.ts.map +1 -1
  169. package/dist/permissions/session-store.js +6 -1
  170. package/dist/permissions/session-store.js.map +1 -1
  171. package/dist/plugins/consent.d.ts +87 -0
  172. package/dist/plugins/consent.d.ts.map +1 -0
  173. package/dist/plugins/consent.js +181 -0
  174. package/dist/plugins/consent.js.map +1 -0
  175. package/dist/plugins/enable-state.d.ts +34 -0
  176. package/dist/plugins/enable-state.d.ts.map +1 -0
  177. package/dist/plugins/enable-state.js +159 -0
  178. package/dist/plugins/enable-state.js.map +1 -0
  179. package/dist/plugins/installer.d.ts +64 -0
  180. package/dist/plugins/installer.d.ts.map +1 -0
  181. package/dist/plugins/installer.js +416 -0
  182. package/dist/plugins/installer.js.map +1 -0
  183. package/dist/plugins/integration.d.ts +91 -0
  184. package/dist/plugins/integration.d.ts.map +1 -0
  185. package/dist/plugins/integration.js +233 -0
  186. package/dist/plugins/integration.js.map +1 -0
  187. package/dist/plugins/loader.d.ts +69 -0
  188. package/dist/plugins/loader.d.ts.map +1 -0
  189. package/dist/plugins/loader.js +243 -0
  190. package/dist/plugins/loader.js.map +1 -0
  191. package/dist/plugins/manifest.d.ts +23 -0
  192. package/dist/plugins/manifest.d.ts.map +1 -0
  193. package/dist/plugins/manifest.js +143 -0
  194. package/dist/plugins/manifest.js.map +1 -0
  195. package/dist/plugins/marketplace.d.ts +100 -0
  196. package/dist/plugins/marketplace.d.ts.map +1 -0
  197. package/dist/plugins/marketplace.js +529 -0
  198. package/dist/plugins/marketplace.js.map +1 -0
  199. package/dist/plugins/paths.d.ts +44 -0
  200. package/dist/plugins/paths.d.ts.map +1 -0
  201. package/dist/plugins/paths.js +89 -0
  202. package/dist/plugins/paths.js.map +1 -0
  203. package/dist/plugins/refresh.d.ts +61 -0
  204. package/dist/plugins/refresh.d.ts.map +1 -0
  205. package/dist/plugins/refresh.js +98 -0
  206. package/dist/plugins/refresh.js.map +1 -0
  207. package/dist/plugins/registry.d.ts +40 -0
  208. package/dist/plugins/registry.d.ts.map +1 -0
  209. package/dist/plugins/registry.js +80 -0
  210. package/dist/plugins/registry.js.map +1 -0
  211. package/dist/plugins/types.d.ts +225 -0
  212. package/dist/plugins/types.d.ts.map +1 -0
  213. package/dist/plugins/types.js +16 -0
  214. package/dist/plugins/types.js.map +1 -0
  215. package/dist/plugins/user-config.d.ts +22 -0
  216. package/dist/plugins/user-config.d.ts.map +1 -0
  217. package/dist/plugins/user-config.js +96 -0
  218. package/dist/plugins/user-config.js.map +1 -0
  219. package/dist/skills/loader.d.ts +19 -0
  220. package/dist/skills/loader.d.ts.map +1 -0
  221. package/dist/skills/loader.js +197 -0
  222. package/dist/skills/loader.js.map +1 -0
  223. package/dist/skills/registry.d.ts +74 -0
  224. package/dist/skills/registry.d.ts.map +1 -0
  225. package/dist/skills/registry.js +136 -0
  226. package/dist/skills/registry.js.map +1 -0
  227. package/dist/skills/settings.d.ts +13 -0
  228. package/dist/skills/settings.d.ts.map +1 -0
  229. package/dist/skills/settings.js +100 -0
  230. package/dist/skills/settings.js.map +1 -0
  231. package/dist/tools/activate-skill.d.ts +5 -0
  232. package/dist/tools/activate-skill.d.ts.map +1 -0
  233. package/dist/tools/activate-skill.js +33 -0
  234. package/dist/tools/activate-skill.js.map +1 -0
  235. package/dist/tools/index.d.ts +1 -1
  236. package/dist/tools/todo-write.d.ts +1 -1
  237. package/dist/tools/web-fetch.d.ts.map +1 -1
  238. package/dist/tools/web-fetch.js +2 -1
  239. package/dist/tools/web-fetch.js.map +1 -1
  240. package/dist/types/index.d.ts +46 -1
  241. package/dist/types/index.d.ts.map +1 -1
  242. package/dist/types/index.js.map +1 -1
  243. package/dist/utils.d.ts +23 -2
  244. package/dist/utils.d.ts.map +1 -1
  245. package/dist/utils.js +76 -20
  246. package/dist/utils.js.map +1 -1
  247. package/dist/version.d.ts +2 -0
  248. package/dist/version.d.ts.map +1 -0
  249. package/dist/version.js +47 -0
  250. package/dist/version.js.map +1 -0
  251. package/package.json +2 -1
@@ -1,5 +1,7 @@
1
1
  // @x-code-cli/core — System Prompt management
2
+ import path from 'node:path';
2
3
  import { getShellProvider } from '../tools/shell-provider.js';
4
+ import { USER_XCODE_DIR } from '../utils.js';
3
5
  const BASE_SYSTEM_PROMPT = `You are X-Code, an AI coding assistant running in the user's terminal. You are powered by the {model} model.
4
6
 
5
7
  When users ask about your identity, model, or version, you should tell them:
@@ -20,7 +22,7 @@ You have access to these tools:
20
22
  - webFetch: Fetch and extract content from URLs
21
23
  - askUser: Ask the user clarifying questions with choices
22
24
  - todoWrite: Track multi-step tasks with a live checklist visible to the user
23
- - task: Delegate a task to a specialized sub-agent (explore, plan, review, general-purpose)
25
+ - task: Delegate a task to a specialized sub-agent (explore, plan, review, general-purpose){mcpCapabilities}{skillCapabilities}
24
26
 
25
27
  ## Sub-agent Delegation
26
28
  Use the task tool to delegate research, exploration, planning, or review tasks to a specialized sub-agent. Sub-agents run in isolated context — they don't see your conversation history and their intermediate tool calls never pollute your context window. Only the final conclusion comes back.
@@ -215,6 +217,68 @@ ${options.knowledgeContext || '(none)'}
215
217
  - You CANNOT spawn further subagents.
216
218
  - IMPORTANT: You MUST NOT use any emojis, icons, or special Unicode symbols in your responses.`;
217
219
  }
220
+ /** Format the optional skills block. Returns "" when no skills are loaded
221
+ * so the prompt is byte-identical to the no-skills shape, preserving
222
+ * prefix-cache hits for sessions without any skills configured. */
223
+ function formatSkillCapabilities(skills) {
224
+ const userSkillsDir = path.join(USER_XCODE_DIR, 'skills', '<name>', 'SKILL.md');
225
+ const installHint = `To install a skill from a URL: use the shell tool to download the raw file directly (e.g. \`Invoke-WebRequest -Uri <url> -OutFile "${userSkillsDir}"\` on Windows, or \`curl -L <url> -o "${userSkillsDir}"\` on macOS/Linux), then confirm the path. Do NOT use webFetch + write — webFetch renders markdown and corrupts YAML frontmatter. Alternatively, use /skill install <url>. After installing, run /skill refresh to load the new skill in this session, or restart xc.`;
226
+ if (!skills || skills.length === 0) {
227
+ return `\n\n## Skills\n${installHint}`;
228
+ }
229
+ const lines = [
230
+ '',
231
+ '',
232
+ '## Available Skills',
233
+ "Use the activateSkill tool to inject a skill's instructions when the task matches its description:",
234
+ ];
235
+ for (const s of skills) {
236
+ lines.push(`- ${s.name}: ${s.description}`);
237
+ }
238
+ lines.push('', installHint);
239
+ return lines.join('\n');
240
+ }
241
+ /** Format the optional MCP tools block. Returns "" when no tools AND
242
+ * no registry are passed, so the byte layout of BASE_SYSTEM_PROMPT
243
+ * after substitution exactly matches the pre-MCP version — preserves
244
+ * prefix-cache hits for sessions without any MCP configuration.
245
+ *
246
+ * When MCP is active the block always lists the two built-in
247
+ * resource tools (listMcpResources / readMcpResource) at the top
248
+ * even if no server-specific tools exist — because the resource
249
+ * tools only get registered when MCP is active, so their advertising
250
+ * must travel with this same block. */
251
+ function formatMcpCapabilities(mcpTools) {
252
+ if (mcpTools === undefined)
253
+ return '';
254
+ const lines = [
255
+ '',
256
+ '',
257
+ '## MCP Tools',
258
+ 'These tools come from connected MCP servers. Prefer internal tools when both fit; use these for capabilities only the server provides.',
259
+ '- listMcpResources: List resources exposed by connected MCP servers (with optional `server` filter).',
260
+ '- readMcpResource: Read the contents of an MCP resource by URI (URIs come from listMcpResources).',
261
+ ];
262
+ if (mcpTools.length === 0) {
263
+ return lines.join('\n');
264
+ }
265
+ // Group by server for readability. Within a group, preserve incoming
266
+ // order (the registry hands them out in a stable order).
267
+ const byServer = new Map();
268
+ for (const t of mcpTools) {
269
+ const list = byServer.get(t.serverName) ?? [];
270
+ list.push(t);
271
+ byServer.set(t.serverName, list);
272
+ }
273
+ for (const [server, tools] of byServer) {
274
+ lines.push('', `### Server: ${server}`);
275
+ for (const t of tools) {
276
+ const desc = t.description ? `: ${t.description}` : '';
277
+ lines.push(`- ${t.callableName}${desc}`);
278
+ }
279
+ }
280
+ return lines.join('\n');
281
+ }
218
282
  /** Build the full system prompt with dynamic values and optional knowledge context */
219
283
  export function buildSystemPrompt(options) {
220
284
  const shellProvider = getShellProvider();
@@ -222,7 +286,9 @@ export function buildSystemPrompt(options) {
222
286
  .replace(/\{shell\}/g, shellProvider.type)
223
287
  .replace(/\{cwd\}/g, process.cwd())
224
288
  .replace(/\{model\}/g, options?.modelId ?? 'unknown')
225
- .replace(/\{isGitRepo\}/g, options?.isGitRepo ? 'yes' : 'no');
289
+ .replace(/\{isGitRepo\}/g, options?.isGitRepo ? 'yes' : 'no')
290
+ .replace(/\{mcpCapabilities\}/g, formatMcpCapabilities(options?.mcpTools))
291
+ .replace(/\{skillCapabilities\}/g, formatSkillCapabilities(options?.skills));
226
292
  if (options?.knowledgeContext) {
227
293
  prompt += '\n\n' + options.knowledgeContext;
228
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAyFA,CAAA;AAE3B;;;;;;;;;;;;;;;wEAewE;AACxE,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8LAiFoK,CAAA;AAE9L;;gFAEgF;AAChF,MAAM,UAAU,yBAAyB,CAAC,OAIzC;IACC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,OAAO;;;EAGP,OAAO,CAAC,WAAW;;;cAGP,OAAO,CAAC,QAAQ;WACnB,aAAa,CAAC,IAAI;uBACN,OAAO,CAAC,GAAG,EAAE;iBACnB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;EAG/C,OAAO,CAAC,gBAAgB,IAAI,QAAQ;;;;;;;;+FAQyD,CAAA;AAC/F,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,OAWjC;IACC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IAExC,IAAI,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;SACvE,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC;SACzC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAClC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,CAAC;SACpD,OAAO,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAE/D,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAA;IAC7C,CAAC;IAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS,CAAC,CAAA;IAC7F,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/agent/system-prompt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-execution.d.ts","sourceRoot":"","sources":["../../src/agent/tool-execution.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAKpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA0LhD,KAAK,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAA;AAqSxF;;;;;;;;;;;;;;;;;;;;;;;;+BAwB+B;AAC/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,CAclE;AAED;;;;;;;qBAOqB;AACrB,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,QAAQ,EAAE,EACrB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,aAAa,GACzB,OAAO,CAAC,IAAI,CAAC,CAqFf"}
1
+ {"version":3,"file":"tool-execution.d.ts","sourceRoot":"","sources":["../../src/agent/tool-execution.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAKpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAsMhD,KAAK,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAA;AAyhBxF;;;;;;;;;;;;;;;;;;;;;;;;+BAwB+B;AAC/B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,CAclE;AAED;;;;;;;qBAOqB;AACrB,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,QAAQ,EAAE,EACrB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,aAAa,GACzB,OAAO,CAAC,IAAI,CAAC,CAqFf"}
@@ -1,6 +1,8 @@
1
1
  // @x-code-cli/core — Tool execution & dispatch
2
2
  import fs from 'node:fs/promises';
3
3
  import path from 'node:path';
4
+ import { aggregatePostToolUse, aggregatePreToolUse } from '../hooks/bus.js';
5
+ import { classifyDecision } from '../mcp/permissions.js';
4
6
  import { checkPermission } from '../permissions/index.js';
5
7
  import { truncateToolResult } from '../tools/index.js';
6
8
  import { clearProgressReporter, reportProgress } from '../tools/progress.js';
@@ -12,6 +14,20 @@ import { checkForLoop, recordToolCall } from './loop-guard.js';
12
14
  import { isToolErrorString, toolErrorFromUnknown, toolErrorString, toolResultMessage } from './messages.js';
13
15
  import { handleEnterPlanMode, handleExitPlanMode, handleTodoWrite } from './plan-tools.js';
14
16
  import { runSubAgent } from './sub-agents/runner.js';
17
+ /** Detect AbortError from any source. Kept local (duplicates the helper
18
+ * in loop.ts) because making it a shared utility would force a new
19
+ * module just for six lines. Same logic both places. */
20
+ function isAbortError(err, signal) {
21
+ if (signal?.aborted)
22
+ return true;
23
+ if (err instanceof Error) {
24
+ if (err.name === 'AbortError')
25
+ return true;
26
+ if (/aborted|AbortError/i.test(err.message))
27
+ return true;
28
+ }
29
+ return false;
30
+ }
15
31
  /** Count occurrences of a substring without creating intermediate arrays. */
16
32
  function countOccurrences(content, search) {
17
33
  let count = 0;
@@ -158,6 +174,33 @@ function pushToolResult(state, callbacks, toolCallId, toolName, output, isError
158
174
  clearProgressReporter(toolCallId);
159
175
  callbacks.onToolResult(toolCallId, output, isError);
160
176
  }
177
+ /** Wrap pushToolResult with a PostToolUse hook emission. Only the two
178
+ * "real" success-result call sites use this — error / interrupt /
179
+ * permission-denial paths still call pushToolResult directly because
180
+ * emitting PostToolUse on a synthetic deny would be confusing for hook
181
+ * authors. Bypass handlers (askUser / task / MCP resources) also push
182
+ * directly today; lifting them to this helper is a follow-up. */
183
+ async function pushSuccessfulToolResult(ctx, output, isError) {
184
+ let effectiveOutput = output;
185
+ if (ctx.options.hookBus?.has('PostToolUse')) {
186
+ try {
187
+ const decisions = await ctx.options.hookBus.emit({
188
+ name: 'PostToolUse',
189
+ session: { cwd: process.cwd(), modelId: ctx.options.modelId },
190
+ tool: { name: ctx.toolName, args: ctx.input, callId: ctx.toolCallId, output, isError },
191
+ }, { signal: ctx.options.abortSignal });
192
+ const effect = aggregatePostToolUse(decisions);
193
+ if (effect.output !== undefined)
194
+ effectiveOutput = effect.output;
195
+ }
196
+ catch (err) {
197
+ if (ctx.options.abortSignal?.aborted)
198
+ return;
199
+ debugLog('agent.hook-post-tool-error', String(err));
200
+ }
201
+ }
202
+ pushToolResult(ctx.state, ctx.callbacks, ctx.toolCallId, ctx.toolName, effectiveOutput, isError);
203
+ }
161
204
  /** ── askUser ──
162
205
  * Bypasses the loop guard intentionally. The model asking the user the same
163
206
  * clarifying question twice is almost always deliberate (e.g. the user
@@ -190,6 +233,62 @@ async function handleTask(ctx) {
190
233
  const statsLine = `<task_stats tool_calls="${result.toolCallCount}" tokens="${result.tokenUsage.totalTokens}" duration_ms="${result.durationMs}" />`;
191
234
  pushToolResult(state, callbacks, toolCallId, toolName, `${result.resultText}\n${statsLine}`);
192
235
  }
236
+ /** ── listMcpResources ──
237
+ * Pure read against the in-memory registry; no side effects, no need
238
+ * for loop-guard or permission. Server filter is optional. */
239
+ async function handleListMcpResources(ctx) {
240
+ const { input, toolCallId, toolName, state, options, callbacks } = ctx;
241
+ const registry = options.mcpRegistry;
242
+ if (!registry) {
243
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorString('MCP not configured'), true);
244
+ return;
245
+ }
246
+ const filter = input.server?.trim() || undefined;
247
+ const items = registry.listResources().filter((r) => !filter || r.serverName === filter);
248
+ if (items.length === 0) {
249
+ pushToolResult(state, callbacks, toolCallId, toolName, filter ? `No resources on server "${filter}".` : 'No resources from any connected MCP server.');
250
+ return;
251
+ }
252
+ const lines = items.map((r) => {
253
+ const mime = r.mimeType ? ` (${r.mimeType})` : '';
254
+ const desc = r.description ? `\n ${r.description}` : '';
255
+ return `${r.uri}\t[${r.serverName}] ${r.name}${mime}${desc}`;
256
+ });
257
+ pushToolResult(state, callbacks, toolCallId, toolName, lines.join('\n'));
258
+ }
259
+ /** ── readMcpResource ──
260
+ * Forwards to the owning server's client. Errors / abort handled the
261
+ * same way as MCP tool calls. */
262
+ async function handleReadMcpResource(ctx) {
263
+ const { input, toolCallId, toolName, state, options, callbacks } = ctx;
264
+ const registry = options.mcpRegistry;
265
+ if (!registry) {
266
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorString('MCP not configured'), true);
267
+ return;
268
+ }
269
+ const uri = input.uri ?? '';
270
+ if (!uri) {
271
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorString('Missing `uri` argument'), true);
272
+ return;
273
+ }
274
+ const client = registry.resourceServer(uri);
275
+ if (!client) {
276
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorString(`Resource URI not known: ${uri} — call listMcpResources first`), true);
277
+ return;
278
+ }
279
+ reportProgress(toolCallId, `Reading ${uri}`);
280
+ try {
281
+ const result = await client.readResource(uri, options.abortSignal);
282
+ pushToolResult(state, callbacks, toolCallId, toolName, truncateToolResult(result.text));
283
+ }
284
+ catch (err) {
285
+ if (isAbortError(err, options.abortSignal)) {
286
+ pushToolResult(state, callbacks, toolCallId, toolName, '[Tool execution interrupted by user]', true);
287
+ return;
288
+ }
289
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorFromUnknown(err), true);
290
+ }
291
+ }
193
292
  /** Manual tools that bypass the loop guard and the writeFile/edit/shell
194
293
  * permission + execution pipeline below. Each handler owns its own
195
294
  * pushToolResult call. Adding a new bypass tool is a one-line entry here. */
@@ -199,6 +298,8 @@ const BYPASS_LOOP_GUARD_HANDLERS = {
199
298
  todoWrite: ({ input, toolCallId, state, callbacks }) => handleTodoWrite(input, toolCallId, state, callbacks, pushToolResult),
200
299
  enterPlanMode: ({ input, toolCallId, state, options, callbacks }) => handleEnterPlanMode(input, toolCallId, state, options, callbacks, pushToolResult),
201
300
  exitPlanMode: ({ input, toolCallId, state, callbacks }) => handleExitPlanMode(input, toolCallId, state, callbacks, pushToolResult),
301
+ listMcpResources: handleListMcpResources,
302
+ readMcpResource: handleReadMcpResource,
202
303
  };
203
304
  /** Run the loop-guard machinery for a non-bypass tool. Returns true if the
204
305
  * tool was blocked (caller should stop dispatching).
@@ -309,11 +410,53 @@ async function handleToolCall(tc, state, options, callbacks, parentModel, deferr
309
410
  callbacks,
310
411
  parentModel,
311
412
  };
413
+ // ── Plugin hook: PreToolUse ──
414
+ // Fires before bypass-handler routing and before MCP dispatch so the
415
+ // hook sees EVERY tool the model attempts (including askUser, task,
416
+ // and MCP tools). A deny becomes a synthetic tool_result the model
417
+ // sees, keeping state.messages valid. A modify can rewrite the input
418
+ // record (mutated in-place on ctx.input so downstream handlers and
419
+ // the loop guard see the post-modification args).
420
+ if (ctx.options.hookBus?.has('PreToolUse')) {
421
+ try {
422
+ const decisions = await ctx.options.hookBus.emit({
423
+ name: 'PreToolUse',
424
+ session: { cwd: process.cwd(), modelId: ctx.options.modelId },
425
+ tool: { name: ctx.toolName, args: ctx.input, callId: ctx.toolCallId },
426
+ }, { signal: ctx.options.abortSignal });
427
+ const effect = aggregatePreToolUse(decisions);
428
+ if (effect.decision === 'deny') {
429
+ const reason = effect.reason ?? 'blocked by plugin hook';
430
+ pushToolResult(state, callbacks, ctx.toolCallId, ctx.toolName, toolErrorString(`Tool denied by plugin hook: ${reason}`), true);
431
+ return;
432
+ }
433
+ if (effect.args && typeof effect.args === 'object' && !Array.isArray(effect.args)) {
434
+ ctx.input = effect.args;
435
+ }
436
+ }
437
+ catch (err) {
438
+ if (ctx.options.abortSignal?.aborted)
439
+ return;
440
+ debugLog('agent.hook-pre-tool-error', String(err));
441
+ }
442
+ }
312
443
  const bypassHandler = BYPASS_LOOP_GUARD_HANDLERS[ctx.toolName];
313
444
  if (bypassHandler) {
314
445
  await bypassHandler(ctx);
315
446
  return;
316
447
  }
448
+ // MCP tools route through their own permission path (per-tool ask +
449
+ // always-allow file) rather than the writeFile/edit/shell rules. They
450
+ // still go through the loop-guard so the model can't spin on a
451
+ // failing MCP call indefinitely.
452
+ //
453
+ // Routing is by registry lookup, not name pattern: MCP tool names are
454
+ // `<server>__<tool>` (no special prefix), so the only authoritative
455
+ // "is this MCP?" answer is "is it registered with the MCP registry?".
456
+ if (ctx.options.mcpRegistry?.get(ctx.toolName)) {
457
+ await handleMcpToolCall(ctx, deferred);
458
+ return;
459
+ }
317
460
  if (await applyLoopGuard(ctx, deferred))
318
461
  return;
319
462
  if (!(await checkWriteOrShellPermission(ctx)))
@@ -321,7 +464,83 @@ async function handleToolCall(tc, state, options, callbacks, parentModel, deferr
321
464
  const result = await executeWriteOrShell(ctx);
322
465
  if (result == null)
323
466
  return;
324
- pushToolResult(state, callbacks, ctx.toolCallId, ctx.toolName, truncateToolResult(result.output), result.isError);
467
+ await pushSuccessfulToolResult(ctx, truncateToolResult(result.output), result.isError);
468
+ }
469
+ /** Dispatch an MCP tool call. Sits parallel to the writeFile/edit/shell
470
+ * pipeline above — same loop-guard, same abort handling, but using the
471
+ * per-tool permission store and the MCP registry's callTool. */
472
+ async function handleMcpToolCall(ctx, deferred) {
473
+ const { toolName, input, toolCallId, state, options, callbacks } = ctx;
474
+ const registry = options.mcpRegistry;
475
+ const permissions = options.mcpPermissionStore;
476
+ if (!registry) {
477
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorString(`MCP not configured; tool ${toolName} unavailable`), true);
478
+ return;
479
+ }
480
+ const entry = registry.get(toolName);
481
+ if (!entry) {
482
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorString(`MCP tool not found: ${toolName}`), true);
483
+ return;
484
+ }
485
+ // Loop-guard FIRST: even denied-by-mode calls count as the model
486
+ // "attempting" something, and we want to catch a loop of denials too.
487
+ if (await applyLoopGuard(ctx, deferred))
488
+ return;
489
+ // Plan mode: MCP tools are opaque (we don't know if they write or
490
+ // not), so the only safe stance is "no". The model will see the
491
+ // denial as a tool result and should call exitPlanMode if it really
492
+ // needs external tools to proceed.
493
+ if (state.permissionMode === 'plan') {
494
+ pushToolResult(state, callbacks, toolCallId, toolName, 'MCP tools are disabled in plan mode. Call exitPlanMode first if you need this tool.', true);
495
+ return;
496
+ }
497
+ // Permission gate. trustMode bypasses everything; otherwise consult
498
+ // the store (session + persisted), and fall back to asking the user.
499
+ let approved = options.trustMode;
500
+ if (!approved && permissions)
501
+ approved = await permissions.isApproved(toolName);
502
+ if (!approved) {
503
+ let decision;
504
+ try {
505
+ decision = await callbacks.onAskPermission({ toolCallId, toolName, input });
506
+ }
507
+ catch (err) {
508
+ if (isAbortError(err, options.abortSignal)) {
509
+ pushToolResult(state, callbacks, toolCallId, toolName, '[Tool execution interrupted by user]', true);
510
+ return;
511
+ }
512
+ throw err;
513
+ }
514
+ if (options.abortSignal?.aborted) {
515
+ pushToolResult(state, callbacks, toolCallId, toolName, '[Tool execution interrupted by user]', true);
516
+ return;
517
+ }
518
+ const choice = classifyDecision(decision);
519
+ if (choice === 'deny') {
520
+ pushToolResult(state, callbacks, toolCallId, toolName, 'Permission denied by user.');
521
+ return;
522
+ }
523
+ if (permissions) {
524
+ if (choice === 'allow-always')
525
+ await permissions.approvePermanently(toolName);
526
+ else
527
+ permissions.approveForSession(toolName);
528
+ }
529
+ }
530
+ // Execute. abortSignal threaded all the way down to the SDK request
531
+ // so Esc immediately cancels in-flight MCP calls.
532
+ reportProgress(toolCallId, `Calling ${entry.serverName}/${entry.rawName}`);
533
+ try {
534
+ const result = await registry.callTool(toolName, ctx.input, options.abortSignal);
535
+ await pushSuccessfulToolResult(ctx, truncateToolResult(result.text), result.isError);
536
+ }
537
+ catch (err) {
538
+ if (isAbortError(err, options.abortSignal)) {
539
+ pushToolResult(state, callbacks, toolCallId, toolName, '[Tool execution interrupted by user]', true);
540
+ return;
541
+ }
542
+ pushToolResult(state, callbacks, toolCallId, toolName, toolErrorFromUnknown(err), true);
543
+ }
325
544
  }
326
545
  /** Collect every toolCallId the AI SDK actually committed to the
327
546
  * assistant message in this turn. The SDK's `result.toolCalls` promise
@@ -1 +1 @@
1
- {"version":3,"file":"tool-execution.js","sourceRoot":"","sources":["../../src/agent/tool-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-execution.js","sourceRoot":"","sources":["../../src/agent/tool-execution.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAI5B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3G,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;yDAEyD;AACzD,SAAS,YAAY,CAAC,GAAY,EAAE,MAA+B;IACjE,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,IAAI,CAAA;IAChC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAA;QAC1C,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,6EAA6E;AAC7E,SAAS,gBAAgB,CAAC,OAAe,EAAE,MAAc;IACvD,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACnD,KAAK,EAAE,CAAA;QACP,GAAG,IAAI,MAAM,CAAC,MAAM,CAAA;IACtB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;+CAM+C;AAC/C,KAAK,UAAU,gBAAgB,CAC7B,QAAgB,EAChB,KAA8B,EAC9B,UAAkB,EAClB,SAAyB,EACzB,MAA+B;IAE/B,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAkB,CAAA;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAA;QACvC,cAAc,CAAC,UAAU,EAAE,WAAW,QAAQ,EAAE,CAAC,CAAA;QACjD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,iEAAiE;QACjE,kEAAkE;QAClE,oEAAoE;QACpE,IAAI,UAAU,GAAkB,IAAI,CAAA;QACpC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,IAAI,CAAA;QACnB,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QACpE,MAAM,KAAK,GAAG,UAAU,KAAK,IAAI,CAAA;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAA;QAE1E,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAC9D,IAAI,OAAO,IAAI,SAAS,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAE9E,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,iBAAiB,QAAQ,KAAK,SAAS,SAAS,CAAA;QACzD,CAAC;QACD,OAAO,iBAAiB,QAAQ,KAAK,SAAS,SAAS,CAAA;IACzD,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAkB,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAA;QAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAA;QAC3C,MAAM,UAAU,GAAI,KAAK,CAAC,UAAsB,IAAI,KAAK,CAAA;QAEzD,cAAc,CAAC,UAAU,EAAE,WAAW,QAAQ,EAAE,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;YAClD,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,eAAe,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;YAC9E,IAAI,KAAK,GAAG,CAAC;gBACX,OAAO,eAAe,CACpB,+BAA+B,QAAQ,WAAW,KAAK,8DAA8D,CACtH,CAAA;QACL,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAChH,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAEvE,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QAC9D,IAAI,OAAO,IAAI,SAAS,CAAC,UAAU;YAAE,SAAS,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAE9E,OAAO,gBAAgB,QAAQ,EAAE,CAAA;IACnC,CAAC;IAED,OAAO,eAAe,CAAC,oBAAoB,CAAC,CAAA;AAC9C,CAAC;AAED,8CAA8C;AAC9C,KAAK,UAAU,YAAY,CACzB,OAAe,EACf,OAAe,EACf,MAA+B,EAC/B,SAAyB,EACzB,UAAkB;IAElB,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IAEnE,cAAc,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;IAEhD,qEAAqE;IACrE,sEAAsE;IACtE,uEAAuE;IACvE,wEAAwE;IACxE,oEAAoE;IACpE,sEAAsE;IACtE,iEAAiE;IACjE,qEAAqE;IACrE,iEAAiE;IACjE,iEAAiE;IACjE,+DAA+D;IAC/D,+DAA+D;IAC/D,qEAAqE;IACrE,iEAAiE;IACjE,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,MAAM,oBAAoB,GAAG,EAAE,CAAA;IAE/B,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC1B,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,gBAAgB,GAAG,oBAAoB;YAAE,OAAM;QACzD,qEAAqE;QACrE,sEAAsE;QACtE,oEAAoE;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACpC,IAAI,IAAI,EAAE,CAAC;YACT,gBAAgB,GAAG,GAAG,CAAA;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;YACrE,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACrC,CAAC;IACH,CAAC,CAAA;IAED,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAA;IACzB,2EAA2E;IAC3E,uEAAuE;IACvE,0EAA0E;IAC1E,wEAAwE;IACxE,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,KAAK,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACtE,IAAI,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,IAAI,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAEtD,kEAAkE;IAClE,8DAA8D;IAC9D,gEAAgE;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAA;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,MAAM,CAAA;QACzB,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;YAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,kDAAkD,CAAA;QAC3F,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;YAC5B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,kDAAkD,CAAA;IAC7F,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IACjE,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,eAAe,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAA;QAClH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACxC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AACrD,CAAC;AAED,qDAAqD;AACrD,SAAS,cAAc,CACrB,KAAgB,EAChB,SAAyB,EACzB,UAAkB,EAClB,QAAgB,EAChB,MAAc,EACd,OAAO,GAAG,KAAK;IAEf,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,iEAAiE;IACjE,qBAAqB,CAAC,UAAU,CAAC,CAAA;IACjC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AACrD,CAAC;AAgBD;;;;;kEAKkE;AAClE,KAAK,UAAU,wBAAwB,CAAC,GAAe,EAAE,MAAc,EAAE,OAAgB;IACvF,IAAI,eAAe,GAAG,MAAM,CAAA;IAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAC9C;gBACE,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC7D,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;aACvF,EACD,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CACpC,CAAA;YACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;YAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,eAAe,GAAG,MAAM,CAAC,MAAM,CAAA;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO;gBAAE,OAAM;YAC5C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;AAClG,CAAC;AAID;;;sEAGsE;AACtE,KAAK,UAAU,aAAa,CAAC,GAAe;IAC1C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAkB,CAAA;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAmD,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC/D,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,MAAM,EAAE,CAAC,CAAA;AACpF,CAAC;AAED,sCAAsC;AACtC,KAAK,UAAU,UAAU,CAAC,GAAe;IACvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;IACnF,MAAM,SAAS,GAAG,KAAK,CAAC,aAAuB,CAAA;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,WAAqB,CAAA;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAgB,CAAA;IAEzC,cAAc,CAAC,UAAU,EAAE,SAAS,WAAW,KAAK,SAAS,GAAG,CAAC,CAAA;IAEjE,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B;QACE,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,OAAO;QACtB,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,MAAM,EAAE,UAAU;QAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,EAAE;QAC9C,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;KACpC,EACD,WAAW,CACZ,CAAA;IAED,MAAM,SAAS,GAAG,2BAA2B,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,UAAU,CAAC,WAAW,kBAAkB,MAAM,CAAC,UAAU,MAAM,CAAA;IACpJ,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC,CAAA;AAC9F,CAAC;AAED;;+DAE+D;AAC/D,KAAK,UAAU,sBAAsB,CAAC,GAAe;IACnD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAA;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAA;QACnG,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAI,KAAK,CAAC,MAA6B,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;IACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAA;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,cAAc,CACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,CAAC,CAAC,CAAC,2BAA2B,MAAM,IAAI,CAAC,CAAC,CAAC,6CAA6C,CAC/F,CAAA;QACD,OAAM;IACR,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACjD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1D,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAA;IAC9D,CAAC,CAAC,CAAA;IACF,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1E,CAAC;AAED;;kCAEkC;AAClC,KAAK,UAAU,qBAAqB,CAAC,GAAe;IAClD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAA;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAA;QACnG,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAI,KAAK,CAAC,GAA0B,IAAI,EAAE,CAAA;IACnD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAA;QACvG,OAAM;IACR,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,cAAc,CACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,CAAC,2BAA2B,GAAG,gCAAgC,CAAC,EAC/E,IAAI,CACL,CAAA;QACD,OAAM;IACR,CAAC;IACD,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,EAAE,CAAC,CAAA;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAClE,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACzF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sCAAsC,EAAE,IAAI,CAAC,CAAA;YACpG,OAAM;QACR,CAAC;QACD,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED;;8EAE8E;AAC9E,MAAM,0BAA0B,GAAgC;IAC9D,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CACrD,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC;IACtE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAClE,mBAAmB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC;IACnF,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CACxD,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC;IACzE,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,qBAAqB;CACvC,CAAA;AAED;;;;;;;;;;;;0EAY0E;AAC1E,KAAK,UAAU,cAAc,CAAC,GAAe,EAAE,QAAwB;IACrE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IAC7D,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IAElE,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC5B,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACtD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IACtD,MAAM,YAAY,GAAG,gBAAgB,SAAS,CAAC,OAAO,EAAE,CAAA;IACxD,wEAAwE;IACxE,qDAAqD;IACrD,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;IAE1E,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,SAAS;aAC3B,SAAS,CAAC,2BAA2B,QAAQ,wDAAwD,EAAE;YACtG,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,kDAAkD,EAAE;YACnF,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,wDAAwD,EAAE;SAC7F,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAA;QACvB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,iEAAiE;YACjE,gEAAgE;YAChE,qDAAqD;YACrD,KAAK,CAAC,eAAe,GAAG,EAAE,CAAA;YAC1B,oEAAoE;YACpE,6DAA6D;YAC7D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,kGAAkG;aAC5G,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;mEACmE;AACnE,KAAK,UAAU,2BAA2B,CAAC,GAAe;IACxD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IACtE,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IAExF,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC/B,OAAO,CAAC,SAAS,EACjB,SAAS,CAAC,eAAe,EACzB,KAAK,CAAC,cAAc,EACpB,OAAO,CAAC,GAAG,EAAE,CACd,CAAA;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QACjC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sCAAsC,EAAE,IAAI,CAAC,CAAA;QACpG,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAA;QACpF,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;yDAGyD;AACzD,KAAK,UAAU,mBAAmB,CAAC,GAAe;IAChD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IACtE,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;YAClG,qEAAqE;YACrE,mEAAmE;YACnE,gEAAgE;YAChE,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;YACzC,IAAI,CAAC,OAAO;gBAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC,CAAA;YAC/D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;QAC5B,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,KAAK,CAAA;YAClD,MAAM,WAAW,GAAG,MAAM,YAAY,CACpC,KAAK,CAAC,OAAiB,EACvB,OAAO,EACP,OAAO,CAAC,WAAW,EACnB,SAAS,EACT,UAAU,CACX,CAAA;YACD,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAA;QACrE,CAAC;QACD,8EAA8E;QAC9E,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC7D,CAAC;AACH,CAAC;AAED;;;;;uCAKuC;AACvC,KAAK,UAAU,cAAc,CAC3B,EAAY,EACZ,KAAgB,EAChB,OAAqB,EACrB,SAAyB,EACzB,WAA0B,EAC1B,QAAwB;IAExB,MAAM,GAAG,GAAe;QACtB,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,KAAK;QACL,OAAO;QACP,SAAS;QACT,WAAW;KACZ,CAAA;IAED,gCAAgC;IAChC,qEAAqE;IACrE,oEAAoE;IACpE,mEAAmE;IACnE,qEAAqE;IACrE,mEAAmE;IACnE,kDAAkD;IAClD,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAC9C;gBACE,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC7D,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE;aACtE,EACD,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CACpC,CAAA;YACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,wBAAwB,CAAA;gBACxD,cAAc,CACZ,KAAK,EACL,SAAS,EACT,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,QAAQ,EACZ,eAAe,CAAC,+BAA+B,MAAM,EAAE,CAAC,EACxD,IAAI,CACL,CAAA;gBACD,OAAM;YACR,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClF,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAA+B,CAAA;YACpD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO;gBAAE,OAAM;YAC5C,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC9D,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QACxB,OAAM;IACR,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,+DAA+D;IAC/D,iCAAiC;IACjC,EAAE;IACF,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACtC,OAAM;IACR,CAAC;IAED,IAAI,MAAM,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAM;IAC/C,IAAI,CAAC,CAAC,MAAM,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAAE,OAAM;IAErD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC7C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAM;IAE1B,MAAM,wBAAwB,CAAC,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;AACxF,CAAC;AAED;;iEAEiE;AACjE,KAAK,UAAU,iBAAiB,CAAC,GAAe,EAAE,QAAwB;IACxE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAA;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAA;IAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,cAAc,CACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,CAAC,4BAA4B,QAAQ,cAAc,CAAC,EACnE,IAAI,CACL,CAAA;QACD,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,uBAAuB,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QAChH,OAAM;IACR,CAAC;IAED,iEAAiE;IACjE,sEAAsE;IACtE,IAAI,MAAM,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAM;IAE/C,kEAAkE;IAClE,gEAAgE;IAChE,oEAAoE;IACpE,mCAAmC;IACnC,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QACpC,cAAc,CACZ,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,qFAAqF,EACrF,IAAI,CACL,CAAA;QACD,OAAM;IACR,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,IAAI,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAA;IAChC,IAAI,CAAC,QAAQ,IAAI,WAAW;QAAE,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAE/E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,QAAiC,CAAA;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sCAAsC,EAAE,IAAI,CAAC,CAAA;gBACpG,OAAM;YACR,CAAC;YACD,MAAM,GAAG,CAAA;QACX,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YACjC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sCAAsC,EAAE,IAAI,CAAC,CAAA;YACpG,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACzC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAA;YACpF,OAAM;QACR,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,MAAM,KAAK,cAAc;gBAAE,MAAM,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;;gBACxE,WAAW,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,kDAAkD;IAClD,cAAc,CAAC,UAAU,EAAE,WAAW,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAChF,MAAM,wBAAwB,CAAC,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IACtF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,sCAAsC,EAAE,IAAI,CAAC,CAAA;YACpG,OAAM;QACR,CAAC;QACD,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;IACzF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;gDAoBgD;AAChD,SAAS,iCAAiC,CAAC,KAAgB;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,MAAK;QAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,SAAQ;QACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAQ;QACzC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAwD,EAAE,CAAC;YAChF,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACtE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;;;;sEAmBsE;AACtE,SAAS,2BAA2B,CAAC,KAAgB;IACnD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC7B,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,MAAK;QAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,SAAQ;QACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAQ;QACzC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAwD,EAAE,CAAC;YAChF,IAAI,IAAI,EAAE,IAAI,KAAK,aAAa,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACxE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;+BAwB+B;AAC/B,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,MAAM,OAAO,GAAiB,EAAE,CAAA;IAChC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACf,IAAI,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAClC,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAE,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC7D,GAAG,EAAE,CAAA;YACP,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC,GAAG,GAAG,CAAA;IACT,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;qBAOqB;AACrB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAqB,EACrB,KAAgB,EAChB,OAAqB,EACrB,SAAyB,EACzB,WAA0B;IAE1B,MAAM,SAAS,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;IACvD,qEAAqE;IACrE,qEAAqE;IACrE,iEAAiE;IACjE,mEAAmE;IACnE,MAAM,QAAQ,GAAmB,EAAE,CAAA;IAEnC,sEAAsE;IACtE,gEAAgE;IAChE,oEAAoE;IACpE,oEAAoE;IACpE,UAAU;IACV,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,qDAAqD;QACrD,kEAAkE;QAClE,+DAA+D;QAC/D,+DAA+D;QAC/D,6DAA6D;QAC7D,iEAAiE;QACjE,+BAA+B;QAC/B,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,QAAQ,CACN,sBAAsB,EACtB,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,UAAU,8DAA8D,CAC9F,CAAA;YACD,SAAQ;QACV,CAAC;QAED,kEAAkE;QAClE,8DAA8D;QAC9D,kEAAkE;QAClE,+DAA+D;QAC/D,yBAAyB;QACzB,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,UAAU,0CAA0C,CAAC,CAAA;YAC/G,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,CAAA;YAC3E,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;YAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;YAC/E,CAAC;YACD,SAAQ;QACV,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC;IAED,sEAAsE;IACtE,kEAAkE;IAClE,iEAAiE;IACjE,sBAAsB;IACtB,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC7C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,qEAAqE;QACrE,oEAAoE;QACpE,8DAA8D;QAC9D,kEAAkE;QAClE,qEAAqE;QACrE,4CAA4C;QAC5C,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnD,cAAc,CACZ,KAAK,EACL,SAAS,EACT,SAAS,CAAC,CAAC,CAAE,CAAC,UAAU,EACxB,SAAS,CAAC,CAAC,CAAE,CAAC,QAAQ,EACtB,sCAAsC,EACtC,IAAI,CACL,CAAA;YACH,CAAC;YACD,MAAK;QACP,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC1G,UAAU,IAAI,KAAK,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,2DAA2D;IAC3D,+DAA+D;IAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;AAC3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type { CommandDefinition } from './types.js';
2
+ export { loadPluginCommands } from './loader.js';
3
+ export type { LoadCommandsOptions } from './loader.js';
4
+ export { CommandRegistry, createCommandRegistry, reloadCommandRegistry, expandCommandBody } from './registry.js';
5
+ export type { CommandReloadSummary } from './registry.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAChH,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { loadPluginCommands } from './loader.js';
2
+ export { CommandRegistry, createCommandRegistry, reloadCommandRegistry, expandCommandBody } from './registry.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { CommandDefinition } from './types.js';
2
+ export interface LoadCommandsOptions {
3
+ /** Plugin-contributed command directories, each tagged with the
4
+ * owning plugin's id and root dir. Order determines registry
5
+ * insertion order (last-wins on name conflict). */
6
+ extraDirs?: ReadonlyArray<{
7
+ dir: string;
8
+ pluginId: string;
9
+ pluginRoot: string;
10
+ }>;
11
+ }
12
+ export declare function loadPluginCommands(opts?: LoadCommandsOptions): Promise<CommandDefinition[]>;
13
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/commands/loader.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AA+EnD,MAAM,WAAW,mBAAmB;IAClC;;wDAEoD;IACpD,SAAS,CAAC,EAAE,aAAa,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjF;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAOrG"}
@@ -0,0 +1,93 @@
1
+ // @x-code-cli/core — File-based command loader
2
+ //
3
+ // Scans plugin-contributed `commands/` directories for `*.md` files and
4
+ // returns CommandDefinitions ready to register in CommandRegistry.
5
+ // Mirrors the sub-agents loader's structure — same minimal YAML
6
+ // frontmatter parser, same "one bad file logged + skipped, never
7
+ // crash the boot" error handling.
8
+ import fs from 'node:fs/promises';
9
+ import path from 'node:path';
10
+ /** Minimal YAML frontmatter parser. Same subset used by skills /
11
+ * sub-agents loaders — string scalars only, no dependency on
12
+ * gray-matter. Folds indented continuation lines into the previous
13
+ * line so the multi-line `allowed-tools` form that real Claude Code
14
+ * commands use parses without complaint (we ignore the value, but
15
+ * the parse mustn't choke). */
16
+ function parseFrontmatter(raw) {
17
+ const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
18
+ if (!match)
19
+ return null;
20
+ const yamlBlock = match[1];
21
+ const body = match[2];
22
+ const data = {};
23
+ const folded = [];
24
+ for (const line of yamlBlock.split(/\r?\n/)) {
25
+ if (/^\s/.test(line) && line.trim() && folded.length > 0) {
26
+ folded[folded.length - 1] += ' ' + line.trim();
27
+ }
28
+ else {
29
+ folded.push(line);
30
+ }
31
+ }
32
+ for (const line of folded) {
33
+ const trimmed = line.trim();
34
+ if (!trimmed || trimmed.startsWith('#'))
35
+ continue;
36
+ const colonIdx = trimmed.indexOf(':');
37
+ if (colonIdx < 1)
38
+ continue;
39
+ const key = trimmed.slice(0, colonIdx).trim();
40
+ let value = trimmed.slice(colonIdx + 1).trim();
41
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
42
+ value = value.slice(1, -1);
43
+ }
44
+ data[key] = value;
45
+ }
46
+ return { data, body };
47
+ }
48
+ async function loadCommandsFromDir(dir, pluginId, pluginRoot) {
49
+ const out = [];
50
+ let entries;
51
+ try {
52
+ entries = await fs.readdir(dir);
53
+ }
54
+ catch {
55
+ return out;
56
+ }
57
+ for (const entry of entries) {
58
+ if (!entry.endsWith('.md'))
59
+ continue;
60
+ const filePath = path.join(dir, entry);
61
+ const name = entry.slice(0, -3); // strip .md
62
+ try {
63
+ const raw = await fs.readFile(filePath, 'utf-8');
64
+ const parsed = parseFrontmatter(raw);
65
+ // Commands without frontmatter are still valid — the whole file
66
+ // becomes the body. Real Claude Code commands always have
67
+ // frontmatter, but be permissive.
68
+ const description = parsed?.data.description;
69
+ const body = (parsed ? parsed.body : raw).trim();
70
+ out.push({
71
+ name,
72
+ description,
73
+ body,
74
+ source: 'plugin',
75
+ pluginId,
76
+ pluginRoot,
77
+ });
78
+ }
79
+ catch (err) {
80
+ console.error(`[commands] Skipping ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
81
+ }
82
+ }
83
+ return out;
84
+ }
85
+ export async function loadPluginCommands(opts = {}) {
86
+ const extras = opts.extraDirs ?? [];
87
+ const out = [];
88
+ for (const { dir, pluginId, pluginRoot } of extras) {
89
+ out.push(...(await loadCommandsFromDir(dir, pluginId, pluginRoot)));
90
+ }
91
+ return out;
92
+ }
93
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/commands/loader.ts"],"names":[],"mappings":"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"}