@dobbyai/mcp-external 1.1.0 → 1.2.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 (289) hide show
  1. package/README.md +44 -14
  2. package/dist/__tests__/agent-mail-tools.test.js +19 -26
  3. package/dist/__tests__/agent-mail-tools.test.js.map +1 -1
  4. package/dist/__tests__/auth.test.js +50 -5
  5. package/dist/__tests__/auth.test.js.map +1 -1
  6. package/dist/__tests__/doctor.test.d.ts +16 -0
  7. package/dist/__tests__/doctor.test.d.ts.map +1 -0
  8. package/dist/__tests__/doctor.test.js +258 -0
  9. package/dist/__tests__/doctor.test.js.map +1 -0
  10. package/dist/__tests__/external-agents-tools.test.d.ts +11 -0
  11. package/dist/__tests__/external-agents-tools.test.d.ts.map +1 -0
  12. package/dist/__tests__/external-agents-tools.test.js +619 -0
  13. package/dist/__tests__/external-agents-tools.test.js.map +1 -0
  14. package/dist/__tests__/gateway-bearer.test.d.ts +12 -0
  15. package/dist/__tests__/gateway-bearer.test.d.ts.map +1 -0
  16. package/dist/__tests__/gateway-bearer.test.js +112 -0
  17. package/dist/__tests__/gateway-bearer.test.js.map +1 -0
  18. package/dist/__tests__/gateway-key-resolver.test.d.ts +10 -0
  19. package/dist/__tests__/gateway-key-resolver.test.d.ts.map +1 -0
  20. package/dist/__tests__/gateway-key-resolver.test.js +125 -0
  21. package/dist/__tests__/gateway-key-resolver.test.js.map +1 -0
  22. package/dist/__tests__/http-concurrency.test.d.ts +20 -0
  23. package/dist/__tests__/http-concurrency.test.d.ts.map +1 -0
  24. package/dist/__tests__/http-concurrency.test.js +254 -0
  25. package/dist/__tests__/http-concurrency.test.js.map +1 -0
  26. package/dist/__tests__/integration/protocol.test.js +14 -8
  27. package/dist/__tests__/integration/protocol.test.js.map +1 -1
  28. package/dist/__tests__/mcp-integrations.test.js +20 -30
  29. package/dist/__tests__/mcp-integrations.test.js.map +1 -1
  30. package/dist/__tests__/memory-graph-tools.test.js +27 -38
  31. package/dist/__tests__/memory-graph-tools.test.js.map +1 -1
  32. package/dist/__tests__/registry-dispatch.test.d.ts +11 -0
  33. package/dist/__tests__/registry-dispatch.test.d.ts.map +1 -0
  34. package/dist/__tests__/registry-dispatch.test.js +30 -0
  35. package/dist/__tests__/registry-dispatch.test.js.map +1 -0
  36. package/dist/__tests__/registry-listing-parity.test.d.ts +2 -0
  37. package/dist/__tests__/registry-listing-parity.test.d.ts.map +1 -0
  38. package/dist/__tests__/registry-listing-parity.test.js +89 -0
  39. package/dist/__tests__/registry-listing-parity.test.js.map +1 -0
  40. package/dist/__tests__/role-cap.test.d.ts +2 -0
  41. package/dist/__tests__/role-cap.test.d.ts.map +1 -0
  42. package/dist/__tests__/role-cap.test.js +113 -0
  43. package/dist/__tests__/role-cap.test.js.map +1 -0
  44. package/dist/__tests__/schedule-tools.test.js +15 -20
  45. package/dist/__tests__/schedule-tools.test.js.map +1 -1
  46. package/dist/__tests__/server-gateway-key.test.d.ts +18 -0
  47. package/dist/__tests__/server-gateway-key.test.d.ts.map +1 -0
  48. package/dist/__tests__/server-gateway-key.test.js +148 -0
  49. package/dist/__tests__/server-gateway-key.test.js.map +1 -0
  50. package/dist/__tests__/server-user-scoped.test.d.ts +34 -0
  51. package/dist/__tests__/server-user-scoped.test.d.ts.map +1 -0
  52. package/dist/__tests__/server-user-scoped.test.js +577 -0
  53. package/dist/__tests__/server-user-scoped.test.js.map +1 -0
  54. package/dist/__tests__/task-id-pattern.test.d.ts +12 -0
  55. package/dist/__tests__/task-id-pattern.test.d.ts.map +1 -0
  56. package/dist/__tests__/task-id-pattern.test.js +43 -0
  57. package/dist/__tests__/task-id-pattern.test.js.map +1 -0
  58. package/dist/__tests__/tiers.test.js +152 -56
  59. package/dist/__tests__/tiers.test.js.map +1 -1
  60. package/dist/__tests__/tools/hosted-agents.test.d.ts +9 -0
  61. package/dist/__tests__/tools/hosted-agents.test.d.ts.map +1 -0
  62. package/dist/__tests__/tools/hosted-agents.test.js +301 -0
  63. package/dist/__tests__/tools/hosted-agents.test.js.map +1 -0
  64. package/dist/__tests__/tools/llm-providers.test.d.ts +10 -0
  65. package/dist/__tests__/tools/llm-providers.test.d.ts.map +1 -0
  66. package/dist/__tests__/tools/llm-providers.test.js +105 -0
  67. package/dist/__tests__/tools/llm-providers.test.js.map +1 -0
  68. package/dist/__tests__/tools/services.test.js +139 -98
  69. package/dist/__tests__/tools/services.test.js.map +1 -1
  70. package/dist/__tests__/tools.test.js +24 -15
  71. package/dist/__tests__/tools.test.js.map +1 -1
  72. package/dist/__tests__/transport.test.js +365 -23
  73. package/dist/__tests__/transport.test.js.map +1 -1
  74. package/dist/__tests__/validate-credentials.test.d.ts +9 -0
  75. package/dist/__tests__/validate-credentials.test.d.ts.map +1 -0
  76. package/dist/__tests__/validate-credentials.test.js +172 -0
  77. package/dist/__tests__/validate-credentials.test.js.map +1 -0
  78. package/dist/__tests__/web-eval-tools.test.js +21 -32
  79. package/dist/__tests__/web-eval-tools.test.js.map +1 -1
  80. package/dist/__tests__/whoami.test.d.ts +11 -0
  81. package/dist/__tests__/whoami.test.d.ts.map +1 -0
  82. package/dist/__tests__/whoami.test.js +194 -0
  83. package/dist/__tests__/whoami.test.js.map +1 -0
  84. package/dist/__tests__/workflow-tools.test.js +20 -27
  85. package/dist/__tests__/workflow-tools.test.js.map +1 -1
  86. package/dist/__tests__/workloads.test.d.ts +9 -0
  87. package/dist/__tests__/workloads.test.d.ts.map +1 -0
  88. package/dist/__tests__/workloads.test.js +169 -0
  89. package/dist/__tests__/workloads.test.js.map +1 -0
  90. package/dist/auth/token-verifier.d.ts +11 -6
  91. package/dist/auth/token-verifier.d.ts.map +1 -1
  92. package/dist/auth/token-verifier.js +41 -19
  93. package/dist/auth/token-verifier.js.map +1 -1
  94. package/dist/connectors/claude-desktop.d.ts.map +1 -1
  95. package/dist/connectors/claude-desktop.js +3 -2
  96. package/dist/connectors/claude-desktop.js.map +1 -1
  97. package/dist/connectors/cursor.d.ts.map +1 -1
  98. package/dist/connectors/cursor.js +3 -2
  99. package/dist/connectors/cursor.js.map +1 -1
  100. package/dist/connectors/setup.d.ts.map +1 -1
  101. package/dist/connectors/setup.js +2 -1
  102. package/dist/connectors/setup.js.map +1 -1
  103. package/dist/connectors/vscode.d.ts.map +1 -1
  104. package/dist/connectors/vscode.js +3 -2
  105. package/dist/connectors/vscode.js.map +1 -1
  106. package/dist/connectors/windsurf.d.ts.map +1 -1
  107. package/dist/connectors/windsurf.js +3 -2
  108. package/dist/connectors/windsurf.js.map +1 -1
  109. package/dist/doctor.d.ts +34 -0
  110. package/dist/doctor.d.ts.map +1 -0
  111. package/dist/doctor.js +134 -0
  112. package/dist/doctor.js.map +1 -0
  113. package/dist/http-server.d.ts +24 -3
  114. package/dist/http-server.d.ts.map +1 -1
  115. package/dist/http-server.js +342 -62
  116. package/dist/http-server.js.map +1 -1
  117. package/dist/index.d.ts +5 -1
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js +72 -208
  120. package/dist/index.js.map +1 -1
  121. package/dist/lib/consts.d.ts +21 -0
  122. package/dist/lib/consts.d.ts.map +1 -0
  123. package/dist/lib/consts.js +30 -0
  124. package/dist/lib/consts.js.map +1 -0
  125. package/dist/lib/dobby-client.d.ts +50 -23
  126. package/dist/lib/dobby-client.d.ts.map +1 -1
  127. package/dist/lib/dobby-client.js +105 -54
  128. package/dist/lib/dobby-client.js.map +1 -1
  129. package/dist/lib/gateway-key-resolver.d.ts +38 -0
  130. package/dist/lib/gateway-key-resolver.d.ts.map +1 -0
  131. package/dist/lib/gateway-key-resolver.js +59 -0
  132. package/dist/lib/gateway-key-resolver.js.map +1 -0
  133. package/dist/lib/log.d.ts +25 -0
  134. package/dist/lib/log.d.ts.map +1 -0
  135. package/dist/lib/log.js +36 -0
  136. package/dist/lib/log.js.map +1 -0
  137. package/dist/server.d.ts +175 -0
  138. package/dist/server.d.ts.map +1 -0
  139. package/dist/server.js +1017 -0
  140. package/dist/server.js.map +1 -0
  141. package/dist/tools/agent-mail.d.ts +0 -41
  142. package/dist/tools/agent-mail.d.ts.map +1 -1
  143. package/dist/tools/agent-mail.js +0 -222
  144. package/dist/tools/agent-mail.js.map +1 -1
  145. package/dist/tools/agent-versions.d.ts +93 -0
  146. package/dist/tools/agent-versions.d.ts.map +1 -0
  147. package/dist/tools/agent-versions.js +99 -0
  148. package/dist/tools/agent-versions.js.map +1 -0
  149. package/dist/tools/approvals.d.ts +0 -34
  150. package/dist/tools/approvals.d.ts.map +1 -1
  151. package/dist/tools/approvals.js +0 -81
  152. package/dist/tools/approvals.js.map +1 -1
  153. package/dist/tools/claude-code-sync.d.ts +40 -0
  154. package/dist/tools/claude-code-sync.d.ts.map +1 -0
  155. package/dist/tools/claude-code-sync.js +52 -0
  156. package/dist/tools/claude-code-sync.js.map +1 -0
  157. package/dist/tools/control-plane.d.ts +118 -0
  158. package/dist/tools/control-plane.d.ts.map +1 -0
  159. package/dist/tools/control-plane.js +135 -0
  160. package/dist/tools/control-plane.js.map +1 -0
  161. package/dist/tools/crew-builder.d.ts +0 -66
  162. package/dist/tools/crew-builder.d.ts.map +1 -1
  163. package/dist/tools/crew-builder.js +0 -185
  164. package/dist/tools/crew-builder.js.map +1 -1
  165. package/dist/tools/crewai.d.ts +0 -63
  166. package/dist/tools/crewai.d.ts.map +1 -1
  167. package/dist/tools/crewai.js +0 -145
  168. package/dist/tools/crewai.js.map +1 -1
  169. package/dist/tools/exa.d.ts +0 -35
  170. package/dist/tools/exa.d.ts.map +1 -1
  171. package/dist/tools/exa.js +0 -103
  172. package/dist/tools/exa.js.map +1 -1
  173. package/dist/tools/external-agents.d.ts +440 -0
  174. package/dist/tools/external-agents.d.ts.map +1 -0
  175. package/dist/tools/external-agents.js +386 -0
  176. package/dist/tools/external-agents.js.map +1 -0
  177. package/dist/tools/github-mcp.d.ts +0 -75
  178. package/dist/tools/github-mcp.d.ts.map +1 -1
  179. package/dist/tools/github-mcp.js +0 -162
  180. package/dist/tools/github-mcp.js.map +1 -1
  181. package/dist/tools/governance.d.ts +162 -18
  182. package/dist/tools/governance.d.ts.map +1 -1
  183. package/dist/tools/governance.js +208 -93
  184. package/dist/tools/governance.js.map +1 -1
  185. package/dist/tools/hosted-agents.d.ts +216 -0
  186. package/dist/tools/hosted-agents.d.ts.map +1 -0
  187. package/dist/tools/hosted-agents.js +214 -0
  188. package/dist/tools/hosted-agents.js.map +1 -0
  189. package/dist/tools/index.d.ts +3933 -1219
  190. package/dist/tools/index.d.ts.map +1 -1
  191. package/dist/tools/index.js +412 -393
  192. package/dist/tools/index.js.map +1 -1
  193. package/dist/tools/jira.d.ts +0 -176
  194. package/dist/tools/jira.d.ts.map +1 -1
  195. package/dist/tools/jira.js +0 -365
  196. package/dist/tools/jira.js.map +1 -1
  197. package/dist/tools/llm-providers.d.ts +50 -0
  198. package/dist/tools/llm-providers.d.ts.map +1 -0
  199. package/dist/tools/llm-providers.js +41 -0
  200. package/dist/tools/llm-providers.js.map +1 -0
  201. package/dist/tools/mcp-metrics.d.ts +0 -15
  202. package/dist/tools/mcp-metrics.d.ts.map +1 -1
  203. package/dist/tools/mcp-metrics.js +0 -217
  204. package/dist/tools/mcp-metrics.js.map +1 -1
  205. package/dist/tools/mcp-tools.d.ts +0 -29
  206. package/dist/tools/mcp-tools.d.ts.map +1 -1
  207. package/dist/tools/mcp-tools.js +0 -131
  208. package/dist/tools/mcp-tools.js.map +1 -1
  209. package/dist/tools/mem0.d.ts +0 -41
  210. package/dist/tools/mem0.d.ts.map +1 -1
  211. package/dist/tools/mem0.js +65 -165
  212. package/dist/tools/mem0.js.map +1 -1
  213. package/dist/tools/memory-graph.d.ts +0 -46
  214. package/dist/tools/memory-graph.d.ts.map +1 -1
  215. package/dist/tools/memory-graph.js +0 -386
  216. package/dist/tools/memory-graph.js.map +1 -1
  217. package/dist/tools/memory-stores.d.ts +141 -0
  218. package/dist/tools/memory-stores.d.ts.map +1 -0
  219. package/dist/tools/memory-stores.js +147 -0
  220. package/dist/tools/memory-stores.js.map +1 -0
  221. package/dist/tools/messages.d.ts +0 -20
  222. package/dist/tools/messages.d.ts.map +1 -1
  223. package/dist/tools/messages.js +0 -49
  224. package/dist/tools/messages.js.map +1 -1
  225. package/dist/tools/moltbook.d.ts +0 -236
  226. package/dist/tools/moltbook.d.ts.map +1 -1
  227. package/dist/tools/moltbook.js +0 -458
  228. package/dist/tools/moltbook.js.map +1 -1
  229. package/dist/tools/monitoring-attribution.d.ts +71 -0
  230. package/dist/tools/monitoring-attribution.d.ts.map +1 -0
  231. package/dist/tools/monitoring-attribution.js +74 -0
  232. package/dist/tools/monitoring-attribution.js.map +1 -0
  233. package/dist/tools/ops.d.ts +0 -80
  234. package/dist/tools/ops.d.ts.map +1 -1
  235. package/dist/tools/ops.js +0 -209
  236. package/dist/tools/ops.js.map +1 -1
  237. package/dist/tools/orchestrations.d.ts +109 -0
  238. package/dist/tools/orchestrations.d.ts.map +1 -0
  239. package/dist/tools/orchestrations.js +115 -0
  240. package/dist/tools/orchestrations.js.map +1 -0
  241. package/dist/tools/outcomes.d.ts +138 -0
  242. package/dist/tools/outcomes.d.ts.map +1 -0
  243. package/dist/tools/outcomes.js +136 -0
  244. package/dist/tools/outcomes.js.map +1 -0
  245. package/dist/tools/schedules.d.ts +0 -47
  246. package/dist/tools/schedules.d.ts.map +1 -1
  247. package/dist/tools/schedules.js +0 -109
  248. package/dist/tools/schedules.js.map +1 -1
  249. package/dist/tools/services.d.ts +0 -16
  250. package/dist/tools/services.d.ts.map +1 -1
  251. package/dist/tools/services.js +0 -135
  252. package/dist/tools/services.js.map +1 -1
  253. package/dist/tools/sessions.d.ts +124 -0
  254. package/dist/tools/sessions.d.ts.map +1 -0
  255. package/dist/tools/sessions.js +130 -0
  256. package/dist/tools/sessions.js.map +1 -0
  257. package/dist/tools/setup-status.d.ts +29 -0
  258. package/dist/tools/setup-status.d.ts.map +1 -0
  259. package/dist/tools/setup-status.js +35 -0
  260. package/dist/tools/setup-status.js.map +1 -0
  261. package/dist/tools/tasks.d.ts +0 -57
  262. package/dist/tools/tasks.d.ts.map +1 -1
  263. package/dist/tools/tasks.js +8 -217
  264. package/dist/tools/tasks.js.map +1 -1
  265. package/dist/tools/tiers.d.ts +23 -7
  266. package/dist/tools/tiers.d.ts.map +1 -1
  267. package/dist/tools/tiers.js +180 -79
  268. package/dist/tools/tiers.js.map +1 -1
  269. package/dist/tools/unified-agents.d.ts +0 -19
  270. package/dist/tools/unified-agents.d.ts.map +1 -1
  271. package/dist/tools/unified-agents.js +2 -103
  272. package/dist/tools/unified-agents.js.map +1 -1
  273. package/dist/tools/web-eval.d.ts +0 -43
  274. package/dist/tools/web-eval.d.ts.map +1 -1
  275. package/dist/tools/web-eval.js +0 -211
  276. package/dist/tools/web-eval.js.map +1 -1
  277. package/dist/tools/workflow.d.ts +0 -66
  278. package/dist/tools/workflow.d.ts.map +1 -1
  279. package/dist/tools/workflow.js +2 -409
  280. package/dist/tools/workflow.js.map +1 -1
  281. package/dist/tools/workloads.d.ts +81 -0
  282. package/dist/tools/workloads.d.ts.map +1 -0
  283. package/dist/tools/workloads.js +81 -0
  284. package/dist/tools/workloads.js.map +1 -0
  285. package/package.json +7 -6
  286. package/dist/tools/knowledge-base.d.ts +0 -144
  287. package/dist/tools/knowledge-base.d.ts.map +0 -1
  288. package/dist/tools/knowledge-base.js +0 -179
  289. package/dist/tools/knowledge-base.js.map +0 -1
@@ -1,132 +1,3 @@
1
- /**
2
- * Workflow Automation MCP Tools
3
- *
4
- * Phase 2: Intelligent task routing and auto-assignment.
5
- * Provides tools for task classification, agent workload monitoring,
6
- * and automated/manual assignment through the Dobby platform.
7
- */
8
- // ============================================
9
- // Task Category Definitions (mirrors Python)
10
- // ============================================
11
- const CATEGORY_KEYWORDS = {
12
- backend: [
13
- 'api', 'endpoint', 'route', 'fastapi', 'server', 'backend',
14
- 'middleware', 'handler', 'service', 'controller', 'python',
15
- 'async', 'uvicorn', 'pydantic',
16
- ],
17
- frontend: [
18
- 'ui', 'frontend', 'react', 'component', 'page', 'layout',
19
- 'css', 'tailwind', 'next.js', 'nextjs', 'html', 'form',
20
- 'modal', 'dialog', 'button', 'sidebar', 'dashboard',
21
- ],
22
- api: [
23
- 'rest', 'graphql', 'webhook', 'cors', 'openapi', 'swagger',
24
- 'rate limit', 'throttle', 'api route', 'api key',
25
- ],
26
- database: [
27
- 'bigquery', 'sql', 'query', 'migration', 'schema', 'table',
28
- 'column', 'index', 'partition', 'cluster', 'database',
29
- ],
30
- security: [
31
- 'auth', 'authentication', 'authorization', 'sso', 'saml',
32
- 'oidc', 'oauth', 'token', 'permission', 'rbac', 'encrypt',
33
- 'vulnerability', 'security', 'xss', 'csrf', 'injection',
34
- ],
35
- testing: [
36
- 'test', 'vitest', 'pytest', 'e2e', 'playwright', 'coverage',
37
- 'mock', 'fixture', 'assertion', 'spec', 'unit test',
38
- ],
39
- devops: [
40
- 'deploy', 'ci/cd', 'docker', 'kubernetes', 'helm', 'github actions',
41
- 'pipeline', 'build', 'release', 'monitoring', 'logging',
42
- ],
43
- docs: [
44
- 'documentation', 'readme', 'docs', 'comment', 'jsdoc',
45
- 'docstring', 'guide', 'tutorial', 'changelog',
46
- ],
47
- planning: [
48
- 'plan', 'design', 'architecture', 'roadmap', 'requirement',
49
- 'spec', 'rfc', 'adr', 'decision',
50
- ],
51
- refactor: [
52
- 'refactor', 'cleanup', 'technical debt', 'optimize',
53
- 'performance', 'simplify', 'restructure', 'modernize',
54
- ],
55
- };
56
- let categoryAgentMapCache = null;
57
- let categoryAgentMapCacheTime = 0;
58
- const CATEGORY_MAP_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
59
- function getDefaultCategoryAgentMap() {
60
- return {
61
- backend: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-backend-agent' },
62
- frontend: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-frontend-agent' },
63
- api: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-api-agent' },
64
- database: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-database-agent' },
65
- security: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-security-agent' },
66
- testing: { coordinator: 'dobby-qa-lead-agent', worker: 'dobby-test-writer-agent' },
67
- devops: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-devops-agent' },
68
- docs: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-docs-agent' },
69
- planning: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-planning-agent' },
70
- refactor: { coordinator: 'dobby-dev-coordinator-agent', worker: 'dobby-refactor-agent' },
71
- };
72
- }
73
- const AGENT_NAME_TO_CATEGORY = {
74
- 'backend': ['backend'],
75
- 'frontend': ['frontend'],
76
- 'api': ['api'],
77
- 'database': ['database'],
78
- 'security': ['security'],
79
- 'test-writer': ['testing'],
80
- 'devops': ['devops'],
81
- 'docs': ['docs'],
82
- 'planning': ['planning'],
83
- 'refactor': ['refactor'],
84
- };
85
- async function getCategoryAgentMap(client) {
86
- const now = Date.now();
87
- if (categoryAgentMapCache && (now - categoryAgentMapCacheTime) < CATEGORY_MAP_CACHE_TTL) {
88
- return categoryAgentMapCache;
89
- }
90
- try {
91
- const data = await client.request(`/api/v1/tenants/${client.tenantId}/unified-agents`);
92
- const agents = data?.data?.agents || data?.agents || [];
93
- const map = { ...getDefaultCategoryAgentMap() };
94
- for (const agent of agents) {
95
- const agentId = agent.agent_id || agent.unified_id || '';
96
- const layer = agent.agent_layer || '';
97
- const group = agent.group || '';
98
- // Map coordinators by group
99
- if (layer === 'coordinator') {
100
- for (const [category, agentMap] of Object.entries(map)) {
101
- if (group === 'qa' && category === 'testing') {
102
- agentMap.coordinator = agentId;
103
- }
104
- else if (group === 'dev' && category !== 'testing') {
105
- agentMap.coordinator = agentId;
106
- }
107
- }
108
- }
109
- // Map workers by name matching
110
- if (layer === 'worker') {
111
- for (const [nameFragment, categories] of Object.entries(AGENT_NAME_TO_CATEGORY)) {
112
- if (agentId.includes(nameFragment)) {
113
- for (const cat of categories) {
114
- if (map[cat]) {
115
- map[cat].worker = agentId;
116
- }
117
- }
118
- }
119
- }
120
- }
121
- }
122
- categoryAgentMapCache = map;
123
- categoryAgentMapCacheTime = now;
124
- return map;
125
- }
126
- catch {
127
- return getDefaultCategoryAgentMap();
128
- }
129
- }
130
1
  // ============================================
131
2
  // Tool Definitions
132
3
  // ============================================
@@ -174,8 +45,8 @@ export const workflowTools = {
174
45
  properties: {
175
46
  task_id: {
176
47
  type: 'string',
177
- description: 'Task ID to assign (format: task_xxxxx)',
178
- pattern: '^task_[a-zA-Z0-9_-]+$',
48
+ description: 'Task ID to assign (as returned by create_task or list_tasks, e.g. task-1784122598603-abc123)',
49
+ pattern: '^[a-zA-Z0-9][a-zA-Z0-9_-]*$',
179
50
  },
180
51
  title: {
181
52
  type: 'string',
@@ -234,285 +105,7 @@ export const workflowTools = {
234
105
  },
235
106
  },
236
107
  };
237
- async function classifyTask(client, title, description = '', _priority = 'medium') {
238
- const text = `${title} ${description}`.toLowerCase();
239
- const agentMap = await getCategoryAgentMap(client);
240
- const scores = {};
241
- for (const [category, keywords] of Object.entries(CATEGORY_KEYWORDS)) {
242
- const matched = [];
243
- for (const kw of keywords) {
244
- const pattern = new RegExp(`\\b${kw.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\b`, 'i');
245
- if (pattern.test(text)) {
246
- matched.push(kw);
247
- }
248
- }
249
- if (matched.length > 0) {
250
- let score = matched.length / keywords.length;
251
- // Boost for title matches
252
- const titleLower = title.toLowerCase();
253
- const titleMatches = matched.filter(kw => {
254
- const pat = new RegExp(`\\b${kw.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\b`, 'i');
255
- return pat.test(titleLower);
256
- }).length;
257
- if (titleMatches > 0) {
258
- score += titleMatches * 0.15;
259
- }
260
- scores[category] = { score: Math.min(score, 1.0), matched };
261
- }
262
- }
263
- const defaultMap = agentMap['backend'] || getDefaultCategoryAgentMap()['backend'];
264
- if (Object.keys(scores).length === 0) {
265
- return {
266
- category: 'backend',
267
- subcategory: null,
268
- confidence: 0.3,
269
- matched_keywords: [],
270
- suggested_coordinator: defaultMap.coordinator,
271
- suggested_worker: defaultMap.worker,
272
- reasoning: 'No keywords matched — defaulting to backend development agent.',
273
- };
274
- }
275
- const bestCategory = Object.entries(scores).reduce((best, [cat, data]) => data.score > best[1].score ? [cat, data] : best)[0];
276
- const { score: confidence, matched } = scores[bestCategory];
277
- const categoryMapping = agentMap[bestCategory] || defaultMap;
278
- return {
279
- category: bestCategory,
280
- subcategory: matched[0] || null,
281
- confidence,
282
- matched_keywords: matched.slice(0, 10),
283
- suggested_coordinator: categoryMapping.coordinator,
284
- suggested_worker: categoryMapping.worker,
285
- reasoning: `Task classified as '${bestCategory}' (confidence: ${(confidence * 100).toFixed(0)}%). Matched keywords: ${matched.slice(0, 5).join(', ')}. Suggested: ${categoryMapping.worker} under ${categoryMapping.coordinator}.`,
286
- };
287
- }
288
108
  // ============================================
289
109
  // Tool Handlers
290
110
  // ============================================
291
- export async function handleWorkflowClassifyTask(client, args) {
292
- const classification = await classifyTask(client, args.title, args.description || '', args.priority || 'medium');
293
- let text = '## Task Classification\n\n';
294
- text += `**Category:** ${classification.category}\n`;
295
- text += `**Confidence:** ${(classification.confidence * 100).toFixed(0)}%\n`;
296
- text += `**Coordinator:** ${classification.suggested_coordinator}\n`;
297
- text += `**Worker:** ${classification.suggested_worker}\n`;
298
- if (classification.matched_keywords.length > 0) {
299
- text += `\n### Matched Keywords\n- ${classification.matched_keywords.join(', ')}\n`;
300
- }
301
- text += `\n### Next Steps\n1. Use \`workflow_auto_assign\` to execute this assignment\n`;
302
- return {
303
- content: [{
304
- type: 'text',
305
- text,
306
- }],
307
- };
308
- }
309
- /**
310
- * Helper to call Dobby API using the client's config.
311
- * Uses global fetch (not client.fetch which is private).
312
- */
313
- async function dobbyApiFetch(client, endpoint, options = {}) {
314
- return fetch(`${client.apiUrl}${endpoint}`, {
315
- ...options,
316
- headers: {
317
- 'Content-Type': 'application/json',
318
- 'X-API-Key': client.apiKey,
319
- ...options.headers,
320
- },
321
- });
322
- }
323
- export async function handleWorkflowAutoAssign(client, args) {
324
- // First classify with dynamic agent map
325
- const classification = await classifyTask(client, args.title, args.description || '', args.priority || 'medium');
326
- // Check agent health before assignment (Task 3.5)
327
- let healthWarning = null;
328
- try {
329
- const healthResponse = await dobbyApiFetch(client, `/api/v1/tenants/${client.tenantId}/unified-agents/${classification.suggested_worker}/health`);
330
- if (healthResponse.ok) {
331
- const health = await healthResponse.json();
332
- const agentStatus = health.agent_status || health.status;
333
- if (agentStatus === 'paused' || agentStatus === 'blocked') {
334
- healthWarning = `${classification.suggested_worker} is ${agentStatus}.`;
335
- // Try to find a healthy alternative in same category
336
- const agentMap = await getCategoryAgentMap(client);
337
- for (const [, mapping] of Object.entries(agentMap)) {
338
- if (mapping.worker !== classification.suggested_worker) {
339
- classification.suggested_worker = mapping.worker;
340
- healthWarning += ` Routing to ${mapping.worker} instead.`;
341
- break;
342
- }
343
- }
344
- }
345
- }
346
- }
347
- catch {
348
- // Health check failed — proceed with suggestion anyway
349
- }
350
- // Call Dobby API to execute assignment
351
- try {
352
- const response = await dobbyApiFetch(client, `/api/v1/tasks/${args.task_id}/auto-assign`, {
353
- method: 'POST',
354
- body: JSON.stringify({
355
- title: args.title,
356
- description: args.description || '',
357
- priority: args.priority || 'medium',
358
- suggested_coordinator: classification.suggested_coordinator,
359
- suggested_worker: classification.suggested_worker,
360
- classification,
361
- }),
362
- });
363
- if (!response.ok) {
364
- const errorText = await response.text();
365
- return {
366
- content: [{
367
- type: 'text',
368
- text: formatAutoAssignResult({
369
- status: 'error',
370
- error: `API error (${response.status}): ${errorText.slice(0, 200)}`,
371
- classification,
372
- health_warning: healthWarning,
373
- }),
374
- }],
375
- isError: true,
376
- };
377
- }
378
- const result = await response.json();
379
- return {
380
- content: [{
381
- type: 'text',
382
- text: formatAutoAssignResult({
383
- status: 'assigned',
384
- ...result,
385
- classification,
386
- health_warning: healthWarning,
387
- }),
388
- }],
389
- };
390
- }
391
- catch (error) {
392
- const errMsg = error instanceof Error ? error.message : 'Unknown error';
393
- return {
394
- content: [{
395
- type: 'text',
396
- text: formatAutoAssignResult({
397
- status: 'suggestion_only',
398
- note: `Could not reach Dobby API (${errMsg}). Returning local classification.`,
399
- classification,
400
- health_warning: healthWarning,
401
- }),
402
- }],
403
- };
404
- }
405
- }
406
- function formatAutoAssignResult(data) {
407
- const classification = data.classification;
408
- const status = data.status;
409
- const healthWarning = data.health_warning;
410
- let text = '## Auto-Assignment Result\n\n';
411
- text += `**Status:** ${status}\n`;
412
- if (healthWarning) {
413
- text += `**Health Warning:** ${healthWarning}\n`;
414
- }
415
- if (classification) {
416
- text += `**Category:** ${classification.category}\n`;
417
- text += `**Coordinator:** ${classification.suggested_coordinator}\n`;
418
- text += `**Worker:** ${classification.suggested_worker}\n`;
419
- text += `**Confidence:** ${(classification.confidence * 100).toFixed(0)}%\n`;
420
- }
421
- if (data.error) {
422
- text += `\n### Error\n${data.error}\n`;
423
- }
424
- if (data.note) {
425
- text += `\n### Note\n${data.note}\n`;
426
- }
427
- if (classification?.matched_keywords && classification.matched_keywords.length > 0) {
428
- text += `\n### Matched Keywords\n- ${classification.matched_keywords.join(', ')}\n`;
429
- }
430
- return text;
431
- }
432
- export async function handleWorkflowAgentWorkload(client, args) {
433
- try {
434
- const layer = args.agent_layer || 'all';
435
- const response = await dobbyApiFetch(client, `/api/v1/agents/workload?layer=${layer}`);
436
- if (!response.ok) {
437
- const errorText = await response.text();
438
- return {
439
- content: [{
440
- type: 'text',
441
- text: JSON.stringify({
442
- error: `API error (${response.status}): ${errorText.slice(0, 200)}`,
443
- }, null, 2),
444
- }],
445
- isError: true,
446
- };
447
- }
448
- const data = await response.json();
449
- return {
450
- content: [{
451
- type: 'text',
452
- text: JSON.stringify(data, null, 2),
453
- }],
454
- };
455
- }
456
- catch (error) {
457
- const errMsg = error instanceof Error ? error.message : 'Unknown error';
458
- const agentMap = await getCategoryAgentMap(client);
459
- return {
460
- content: [{
461
- type: 'text',
462
- text: JSON.stringify({
463
- note: `Could not reach Dobby API (${errMsg}). Showing agent hierarchy.`,
464
- agents: Object.entries(agentMap).map(([category, agents]) => ({
465
- category,
466
- coordinator: agents.coordinator,
467
- worker: agents.worker,
468
- })),
469
- }, null, 2),
470
- }],
471
- };
472
- }
473
- }
474
- export async function handleWorkflowAssignmentRules(client, args) {
475
- try {
476
- const activeOnly = args.active_only !== false;
477
- const response = await dobbyApiFetch(client, `/api/v1/workflow/assignment-rules?active_only=${activeOnly}`);
478
- if (!response.ok) {
479
- const errorText = await response.text();
480
- return {
481
- content: [{
482
- type: 'text',
483
- text: JSON.stringify({
484
- error: `API error (${response.status}): ${errorText.slice(0, 200)}`,
485
- }, null, 2),
486
- }],
487
- isError: true,
488
- };
489
- }
490
- const data = await response.json();
491
- return {
492
- content: [{
493
- type: 'text',
494
- text: JSON.stringify(data, null, 2),
495
- }],
496
- };
497
- }
498
- catch (error) {
499
- const errMsg = error instanceof Error ? error.message : 'Unknown error';
500
- const agentMap = await getCategoryAgentMap(client);
501
- return {
502
- content: [{
503
- type: 'text',
504
- text: JSON.stringify({
505
- note: `Could not reach Dobby API (${errMsg}). No rules available offline.`,
506
- rules: [],
507
- default_routing: Object.entries(agentMap).map(([category, agents]) => ({
508
- category,
509
- coordinator: agents.coordinator,
510
- worker: agents.worker,
511
- type: 'default',
512
- })),
513
- }, null, 2),
514
- }],
515
- };
516
- }
517
- }
518
111
  //# sourceMappingURL=workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"AAKA,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,sBAAsB,EAAE;QACtB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE;YACX,KAAK,EAAE,eAAe;YACtB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,8LAA8L;QAC3M,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sDAAsD;iBACpE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC/B,WAAW,EAAE,iCAAiC;iBAC/C;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IAED,oBAAoB,EAAE;QACpB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,2HAA2H;QACxI,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8FAA8F;oBAC3G,OAAO,EAAE,6BAA6B;iBACvC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gEAAgE;iBAC9E;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC/B,WAAW,EAAE,iCAAiC;iBAC/C;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;SAC/B;KACF;IAED,uBAAuB,EAAE;QACvB,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE;YACX,KAAK,EAAE,gBAAgB;YACvB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,mGAAmG;QAChH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC;oBACtC,WAAW,EAAE,sCAAsC;iBACpD;aACF;SACF;KACF;IAED,yBAAyB,EAAE;QACzB,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,wGAAwG;QACrH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,wCAAwC;iBACtD;aACF;SACF;KACF;CACF,CAAC;AAIF,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Workload Tools
3
+ *
4
+ * MCP tool definitions for the tenant's workloads (connected agent sources,
5
+ * backed by workload_connectors). Execution dispatches through the capability
6
+ * registry (@dobbyai/capability-core, ADR-019) — these defs are the LISTING
7
+ * shape; the handlers live in packages/capability-core/src/capabilities/workloads.ts.
8
+ * The description/inputSchema/annotations here MUST stay in sync with that file.
9
+ */
10
+ export declare const workloadTools: {
11
+ list_workloads: {
12
+ name: string;
13
+ annotations: {
14
+ title: string;
15
+ readOnlyHint: boolean;
16
+ destructiveHint: boolean;
17
+ openWorldHint: boolean;
18
+ };
19
+ description: string;
20
+ inputSchema: {
21
+ type: "object";
22
+ properties: {
23
+ limit: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ };
28
+ };
29
+ };
30
+ create_workload: {
31
+ name: string;
32
+ annotations: {
33
+ title: string;
34
+ readOnlyHint: boolean;
35
+ destructiveHint: boolean;
36
+ openWorldHint: boolean;
37
+ };
38
+ description: string;
39
+ inputSchema: {
40
+ type: "object";
41
+ properties: {
42
+ display_name: {
43
+ type: string;
44
+ description: string;
45
+ };
46
+ platform: {
47
+ type: string;
48
+ description: string;
49
+ };
50
+ bearer_token: {
51
+ type: string;
52
+ description: string;
53
+ };
54
+ supports_webhook: {
55
+ type: string;
56
+ description: string;
57
+ };
58
+ poll_interval_seconds: {
59
+ type: string;
60
+ description: string;
61
+ };
62
+ };
63
+ required: string[];
64
+ };
65
+ };
66
+ try_sample_workload: {
67
+ name: string;
68
+ annotations: {
69
+ title: string;
70
+ readOnlyHint: boolean;
71
+ destructiveHint: boolean;
72
+ openWorldHint: boolean;
73
+ };
74
+ description: string;
75
+ inputSchema: {
76
+ type: "object";
77
+ properties: {};
78
+ };
79
+ };
80
+ };
81
+ //# sourceMappingURL=workloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workloads.d.ts","sourceRoot":"","sources":["../../src/tools/workloads.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EzB,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Workload Tools
3
+ *
4
+ * MCP tool definitions for the tenant's workloads (connected agent sources,
5
+ * backed by workload_connectors). Execution dispatches through the capability
6
+ * registry (@dobbyai/capability-core, ADR-019) — these defs are the LISTING
7
+ * shape; the handlers live in packages/capability-core/src/capabilities/workloads.ts.
8
+ * The description/inputSchema/annotations here MUST stay in sync with that file.
9
+ */
10
+ export const workloadTools = {
11
+ list_workloads: {
12
+ name: "list_workloads",
13
+ annotations: {
14
+ title: "List Workloads",
15
+ readOnlyHint: true,
16
+ destructiveHint: false,
17
+ openWorldHint: false,
18
+ },
19
+ description: "List the tenant's workloads (connected agent sources), each with its run counts and the compliance verdict of its most recent scan. A workload is the entity backed by a connector; use create_workload to add one.",
20
+ inputSchema: {
21
+ type: "object",
22
+ properties: {
23
+ limit: {
24
+ type: "number",
25
+ description: "Maximum workloads to return (1-500, default 100).",
26
+ },
27
+ },
28
+ },
29
+ },
30
+ create_workload: {
31
+ name: "create_workload",
32
+ annotations: {
33
+ title: "Create Workload",
34
+ readOnlyHint: false,
35
+ destructiveHint: false,
36
+ openWorldHint: false,
37
+ },
38
+ description: "Register a new workload (a connected agent source) for this tenant. For platform 'dobby_sdk' (the default) a collector bearer token is auto-minted and returned EXACTLY ONCE — save it to configure your collector/SDK, it cannot be recovered later. For any other platform you MUST pass bearer_token (the upstream platform's token). Requires the agents:write scope.",
39
+ inputSchema: {
40
+ type: "object",
41
+ properties: {
42
+ display_name: {
43
+ type: "string",
44
+ description: "Human-friendly name for the workload (required).",
45
+ },
46
+ platform: {
47
+ type: "string",
48
+ description: "Source platform (default 'dobby_sdk'). Use dobby_sdk to auto-mint a collector token; any other platform requires bearer_token.",
49
+ },
50
+ bearer_token: {
51
+ type: "string",
52
+ description: "The upstream platform's token. Required for any platform other than dobby_sdk.",
53
+ },
54
+ supports_webhook: {
55
+ type: "boolean",
56
+ description: "Whether the source pushes events via webhook (optional).",
57
+ },
58
+ poll_interval_seconds: {
59
+ type: "number",
60
+ description: "Poll interval in seconds, 15-3600 (optional).",
61
+ },
62
+ },
63
+ required: ["display_name"],
64
+ },
65
+ },
66
+ try_sample_workload: {
67
+ name: "try_sample_workload",
68
+ annotations: {
69
+ title: "Try Sample Workload",
70
+ readOnlyHint: false,
71
+ destructiveHint: false,
72
+ openWorldHint: false,
73
+ },
74
+ description: "Seed a sample CredFlowAI (synthetic fintech credit-decisioning) workload for this tenant with three runs — compliant, violated, and unverifiable — pushed through the REAL pipeline, and fire a real compliance scan on each. Use this to give a brand-new or demo tenant instant monitored runs + audit evidence WITHOUT wiring a real agent, so the compliance dashboard and Evidence Pack have data within seconds. Idempotent: re-running reuses the same sample connector and re-scans. Admin-only. After it succeeds, call get_setup_status to confirm the first-run and first-scan milestones flipped.",
75
+ inputSchema: {
76
+ type: "object",
77
+ properties: {},
78
+ },
79
+ },
80
+ };
81
+ //# sourceMappingURL=workloads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workloads.js","sourceRoot":"","sources":["../../src/tools/workloads.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE;YACX,KAAK,EAAE,gBAAgB;YACvB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EACT,qNAAqN;QACvN,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mDAAmD;iBACjE;aACF;SACF;KACF;IAED,eAAe,EAAE;QACf,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE;YACX,KAAK,EAAE,iBAAiB;YACxB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EACT,2WAA2W;QAC7W,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gIAAgI;iBACnI;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gFAAgF;iBACnF;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,0DAA0D;iBAC7D;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;aACF;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;SAC3B;KACF;IAED,mBAAmB,EAAE;QACnB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EACT,+kBAA+kB;QACjlB,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;CACF,CAAC"}