beth-copilot 1.0.18 → 2.0.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 (429) hide show
  1. package/CHANGELOG.md +79 -28
  2. package/README.md +127 -298
  3. package/assets/beth-questioning.png +0 -0
  4. package/assets/yellowstone-beth.png +0 -0
  5. package/bin/cli.js +124 -715
  6. package/dist/__tests__/inject-skills.test.d.ts +9 -0
  7. package/dist/__tests__/inject-skills.test.d.ts.map +1 -0
  8. package/dist/__tests__/inject-skills.test.js +143 -0
  9. package/dist/__tests__/inject-skills.test.js.map +1 -0
  10. package/dist/__tests__/skills/disambiguation.test.d.ts +10 -0
  11. package/dist/__tests__/skills/disambiguation.test.d.ts.map +1 -0
  12. package/dist/__tests__/skills/disambiguation.test.js +192 -0
  13. package/dist/__tests__/skills/disambiguation.test.js.map +1 -0
  14. package/dist/__tests__/skills/hook-injection.test.d.ts +11 -0
  15. package/dist/__tests__/skills/hook-injection.test.d.ts.map +1 -0
  16. package/dist/__tests__/skills/hook-injection.test.js +173 -0
  17. package/dist/__tests__/skills/hook-injection.test.js.map +1 -0
  18. package/dist/__tests__/skills/mapping-completeness.test.d.ts +17 -0
  19. package/dist/__tests__/skills/mapping-completeness.test.d.ts.map +1 -0
  20. package/dist/__tests__/skills/mapping-completeness.test.js +281 -0
  21. package/dist/__tests__/skills/mapping-completeness.test.js.map +1 -0
  22. package/dist/__tests__/skills/pipeline-integration.test.d.ts +18 -0
  23. package/dist/__tests__/skills/pipeline-integration.test.d.ts.map +1 -0
  24. package/dist/__tests__/skills/pipeline-integration.test.js +234 -0
  25. package/dist/__tests__/skills/pipeline-integration.test.js.map +1 -0
  26. package/dist/__tests__/skills/skill-routing.test.d.ts +15 -0
  27. package/dist/__tests__/skills/skill-routing.test.d.ts.map +1 -0
  28. package/dist/__tests__/skills/skill-routing.test.js +723 -0
  29. package/dist/__tests__/skills/skill-routing.test.js.map +1 -0
  30. package/dist/__tests__/skills/trigger-coverage.test.d.ts +24 -0
  31. package/dist/__tests__/skills/trigger-coverage.test.d.ts.map +1 -0
  32. package/dist/__tests__/skills/trigger-coverage.test.js +746 -0
  33. package/dist/__tests__/skills/trigger-coverage.test.js.map +1 -0
  34. package/dist/__tests__/smoke.test.d.ts +8 -0
  35. package/dist/__tests__/smoke.test.d.ts.map +1 -0
  36. package/dist/__tests__/smoke.test.js +62 -0
  37. package/dist/__tests__/smoke.test.js.map +1 -0
  38. package/dist/__tests__/verify-skills.test.d.ts +9 -0
  39. package/dist/__tests__/verify-skills.test.d.ts.map +1 -0
  40. package/dist/__tests__/verify-skills.test.js +78 -0
  41. package/dist/__tests__/verify-skills.test.js.map +1 -0
  42. package/dist/cli/commands/beads.e2e.test.d.ts +15 -0
  43. package/dist/cli/commands/beads.e2e.test.d.ts.map +1 -0
  44. package/dist/cli/commands/beads.e2e.test.js +585 -0
  45. package/dist/cli/commands/beads.e2e.test.js.map +1 -0
  46. package/dist/cli/commands/cli-edge-cases.e2e.test.d.ts +32 -0
  47. package/dist/cli/commands/cli-edge-cases.e2e.test.d.ts.map +1 -0
  48. package/dist/cli/commands/cli-edge-cases.e2e.test.js +162 -0
  49. package/dist/cli/commands/cli-edge-cases.e2e.test.js.map +1 -0
  50. package/dist/cli/commands/close.d.ts +54 -0
  51. package/dist/cli/commands/close.d.ts.map +1 -0
  52. package/dist/cli/commands/close.e2e.test.d.ts +11 -0
  53. package/dist/cli/commands/close.e2e.test.d.ts.map +1 -0
  54. package/dist/cli/commands/close.e2e.test.js +71 -0
  55. package/dist/cli/commands/close.e2e.test.js.map +1 -0
  56. package/dist/cli/commands/close.js +95 -0
  57. package/dist/cli/commands/close.js.map +1 -0
  58. package/dist/cli/commands/close.test.d.ts +13 -0
  59. package/dist/cli/commands/close.test.d.ts.map +1 -0
  60. package/dist/cli/commands/close.test.js +254 -0
  61. package/dist/cli/commands/close.test.js.map +1 -0
  62. package/dist/cli/commands/doctor.d.ts +7 -1
  63. package/dist/cli/commands/doctor.d.ts.map +1 -1
  64. package/dist/cli/commands/doctor.e2e.test.js +3 -59
  65. package/dist/cli/commands/doctor.e2e.test.js.map +1 -1
  66. package/dist/cli/commands/doctor.js +38 -18
  67. package/dist/cli/commands/doctor.js.map +1 -1
  68. package/dist/cli/commands/doctor.test.js +32 -25
  69. package/dist/cli/commands/doctor.test.js.map +1 -1
  70. package/dist/cli/commands/framework-isolation.test.d.ts +30 -0
  71. package/dist/cli/commands/framework-isolation.test.d.ts.map +1 -0
  72. package/dist/cli/commands/framework-isolation.test.js +118 -0
  73. package/dist/cli/commands/framework-isolation.test.js.map +1 -0
  74. package/dist/cli/commands/help.e2e.test.js +5 -9
  75. package/dist/cli/commands/help.e2e.test.js.map +1 -1
  76. package/dist/cli/commands/init-logic.e2e.test.d.ts +37 -0
  77. package/dist/cli/commands/init-logic.e2e.test.d.ts.map +1 -0
  78. package/dist/cli/commands/init-logic.e2e.test.js +315 -0
  79. package/dist/cli/commands/init-logic.e2e.test.js.map +1 -0
  80. package/dist/cli/commands/init.test.js +4 -21
  81. package/dist/cli/commands/init.test.js.map +1 -1
  82. package/dist/cli/commands/land.d.ts +130 -0
  83. package/dist/cli/commands/land.d.ts.map +1 -0
  84. package/dist/cli/commands/land.js +592 -0
  85. package/dist/cli/commands/land.js.map +1 -0
  86. package/dist/cli/commands/land.test.d.ts +19 -0
  87. package/dist/cli/commands/land.test.d.ts.map +1 -0
  88. package/dist/cli/commands/land.test.js +567 -0
  89. package/dist/cli/commands/land.test.js.map +1 -0
  90. package/dist/cli/commands/mcp.e2e.test.js +24 -31
  91. package/dist/cli/commands/mcp.e2e.test.js.map +1 -1
  92. package/dist/cli/commands/pipeline.e2e.test.js +28 -31
  93. package/dist/cli/commands/pipeline.e2e.test.js.map +1 -1
  94. package/dist/cli/commands/pre-push-guard.d.ts +74 -0
  95. package/dist/cli/commands/pre-push-guard.d.ts.map +1 -0
  96. package/dist/cli/commands/pre-push-guard.e2e.test.d.ts +24 -0
  97. package/dist/cli/commands/pre-push-guard.e2e.test.d.ts.map +1 -0
  98. package/dist/cli/commands/pre-push-guard.e2e.test.js +171 -0
  99. package/dist/cli/commands/pre-push-guard.e2e.test.js.map +1 -0
  100. package/dist/cli/commands/pre-push-guard.js +212 -0
  101. package/dist/cli/commands/pre-push-guard.js.map +1 -0
  102. package/dist/cli/commands/pre-push-guard.test.d.ts +14 -0
  103. package/dist/cli/commands/pre-push-guard.test.d.ts.map +1 -0
  104. package/dist/cli/commands/pre-push-guard.test.js +314 -0
  105. package/dist/cli/commands/pre-push-guard.test.js.map +1 -0
  106. package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts +23 -0
  107. package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts.map +1 -0
  108. package/dist/cli/commands/quickstart-expanded.e2e.test.js +152 -0
  109. package/dist/cli/commands/quickstart-expanded.e2e.test.js.map +1 -0
  110. package/dist/cli/commands/quickstart.d.ts +0 -1
  111. package/dist/cli/commands/quickstart.d.ts.map +1 -1
  112. package/dist/cli/commands/quickstart.js +9 -83
  113. package/dist/cli/commands/quickstart.js.map +1 -1
  114. package/dist/cli/commands/quickstart.test.js +8 -129
  115. package/dist/cli/commands/quickstart.test.js.map +1 -1
  116. package/dist/cli/commands/update.d.ts +35 -0
  117. package/dist/cli/commands/update.d.ts.map +1 -0
  118. package/dist/cli/commands/update.e2e.test.d.ts +24 -0
  119. package/dist/cli/commands/update.e2e.test.d.ts.map +1 -0
  120. package/dist/cli/commands/update.e2e.test.js +240 -0
  121. package/dist/cli/commands/update.e2e.test.js.map +1 -0
  122. package/dist/cli/commands/update.js +255 -0
  123. package/dist/cli/commands/update.js.map +1 -0
  124. package/dist/core/agents/frontmatter.test.js +1 -1
  125. package/dist/core/agents/frontmatter.test.js.map +1 -1
  126. package/dist/core/agents/handoffs.test.js +1 -1
  127. package/dist/core/agents/handoffs.test.js.map +1 -1
  128. package/dist/core/agents/loader.d.ts +4 -2
  129. package/dist/core/agents/loader.d.ts.map +1 -1
  130. package/dist/core/agents/loader.js +5 -3
  131. package/dist/core/agents/loader.js.map +1 -1
  132. package/dist/core/agents/loader.test.js +42 -4
  133. package/dist/core/agents/loader.test.js.map +1 -1
  134. package/dist/core/agents/suite.test.js +12 -9
  135. package/dist/core/agents/suite.test.js.map +1 -1
  136. package/dist/core/agents/tools.test.js +15 -9
  137. package/dist/core/agents/tools.test.js.map +1 -1
  138. package/dist/core/agents/types.test.js +1 -1
  139. package/dist/core/agents/types.test.js.map +1 -1
  140. package/dist/core/skills/loader.test.js +1 -1
  141. package/dist/core/skills/loader.test.js.map +1 -1
  142. package/dist/index.d.ts +3 -11
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +5 -12
  145. package/dist/index.js.map +1 -1
  146. package/dist/lib/pathValidation.d.ts +0 -5
  147. package/dist/lib/pathValidation.d.ts.map +1 -1
  148. package/dist/lib/pathValidation.js +0 -11
  149. package/dist/lib/pathValidation.js.map +1 -1
  150. package/dist/lib/pathValidation.test.js +2 -14
  151. package/dist/lib/pathValidation.test.js.map +1 -1
  152. package/package.json +13 -10
  153. package/sbom.json +1927 -847
  154. package/templates/.github/agents/beth.agent.md +331 -105
  155. package/templates/.github/agents/developer.agent.md +73 -102
  156. package/templates/.github/agents/product-manager.agent.md +24 -68
  157. package/templates/.github/agents/researcher.agent.md +21 -69
  158. package/templates/.github/agents/security-reviewer.agent.md +39 -82
  159. package/templates/.github/agents/tester.agent.md +44 -65
  160. package/templates/.github/agents/ux-designer.agent.md +25 -76
  161. package/templates/.github/copilot-instructions.md +246 -225
  162. package/templates/.github/copilot-mcp-config.json +12 -0
  163. package/templates/.github/dependabot.yml +68 -0
  164. package/templates/.github/hooks/scripts/inject-skills.mjs +139 -0
  165. package/templates/.github/hooks/scripts/verify-skills.mjs +47 -0
  166. package/templates/.github/hooks/skill-enforcement.json +18 -0
  167. package/templates/.github/pull_request_template.md +48 -0
  168. package/templates/.github/skills/framer-components/SKILL.md +0 -0
  169. package/templates/.github/skills/prd/SKILL.md +0 -0
  170. package/templates/.github/skills/security-analysis/SKILL.md +798 -798
  171. package/templates/.github/skills/shadcn-ui/SKILL.md +561 -561
  172. package/templates/.github/skills/vercel-react-best-practices/AGENTS.md +0 -0
  173. package/templates/.github/skills/vercel-react-best-practices/SKILL.md +0 -0
  174. package/templates/.github/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  175. package/templates/.github/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -0
  176. package/templates/.github/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -0
  177. package/templates/.github/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -0
  178. package/templates/.github/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -0
  179. package/templates/.github/skills/vercel-react-best-practices/rules/async-parallel.md +0 -0
  180. package/templates/.github/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -0
  181. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -0
  182. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -0
  183. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -0
  184. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  185. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -0
  186. package/templates/.github/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -0
  187. package/templates/.github/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -0
  188. package/templates/.github/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -0
  189. package/templates/.github/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -0
  190. package/templates/.github/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -0
  191. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -0
  192. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -0
  193. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -0
  194. package/templates/.github/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -0
  195. package/templates/.github/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -0
  196. package/templates/.github/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -0
  197. package/templates/.github/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -0
  198. package/templates/.github/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -0
  199. package/templates/.github/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -0
  200. package/templates/.github/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -0
  201. package/templates/.github/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -0
  202. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -0
  203. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  204. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -0
  205. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -0
  206. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  207. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  208. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -0
  209. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -0
  210. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -0
  211. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -0
  212. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -0
  213. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  214. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -0
  215. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -0
  216. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -0
  217. package/templates/.github/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -0
  218. package/templates/.github/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -0
  219. package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -0
  220. package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -0
  221. package/templates/.github/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -0
  222. package/templates/.github/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -0
  223. package/templates/.github/skills/vercel-react-best-practices/rules/server-serialization.md +0 -0
  224. package/templates/.github/skills/web-design-guidelines/SKILL.md +0 -0
  225. package/templates/.vscode/settings.json +16 -16
  226. package/templates/AGENTS.md +103 -54
  227. package/templates/Backlog.md +80 -80
  228. package/templates/mcp.json.example +0 -3
  229. package/assets/beth-portrait-small.txt +0 -13
  230. package/assets/beth-portrait.txt +0 -60
  231. package/bin/beth-animation.sh +0 -155
  232. package/bin/lib/animation.js +0 -189
  233. package/bin/lib/pathValidation.js +0 -233
  234. package/bin/lib/pathValidation.test.js +0 -280
  235. package/dist/cli/commands/client-config.d.ts +0 -31
  236. package/dist/cli/commands/client-config.d.ts.map +0 -1
  237. package/dist/cli/commands/client-config.e2e.test.d.ts +0 -15
  238. package/dist/cli/commands/client-config.e2e.test.d.ts.map +0 -1
  239. package/dist/cli/commands/client-config.e2e.test.js +0 -556
  240. package/dist/cli/commands/client-config.e2e.test.js.map +0 -1
  241. package/dist/cli/commands/client-config.js +0 -73
  242. package/dist/cli/commands/client-config.js.map +0 -1
  243. package/dist/cli/commands/client-config.test.d.ts +0 -6
  244. package/dist/cli/commands/client-config.test.d.ts.map +0 -1
  245. package/dist/cli/commands/client-config.test.js +0 -133
  246. package/dist/cli/commands/client-config.test.js.map +0 -1
  247. package/dist/cli/commands/init-quickstart.e2e.test.d.ts +0 -11
  248. package/dist/cli/commands/init-quickstart.e2e.test.d.ts.map +0 -1
  249. package/dist/cli/commands/init-quickstart.e2e.test.js +0 -221
  250. package/dist/cli/commands/init-quickstart.e2e.test.js.map +0 -1
  251. package/dist/core/context.d.ts +0 -171
  252. package/dist/core/context.d.ts.map +0 -1
  253. package/dist/core/context.js +0 -353
  254. package/dist/core/context.js.map +0 -1
  255. package/dist/core/context.test.d.ts +0 -8
  256. package/dist/core/context.test.d.ts.map +0 -1
  257. package/dist/core/context.test.js +0 -253
  258. package/dist/core/context.test.js.map +0 -1
  259. package/dist/core/handoffs.d.ts +0 -151
  260. package/dist/core/handoffs.d.ts.map +0 -1
  261. package/dist/core/handoffs.js +0 -220
  262. package/dist/core/handoffs.js.map +0 -1
  263. package/dist/core/handoffs.test.d.ts +0 -8
  264. package/dist/core/handoffs.test.d.ts.map +0 -1
  265. package/dist/core/handoffs.test.js +0 -231
  266. package/dist/core/handoffs.test.js.map +0 -1
  267. package/dist/core/orchestrator.d.ts +0 -246
  268. package/dist/core/orchestrator.d.ts.map +0 -1
  269. package/dist/core/orchestrator.js +0 -514
  270. package/dist/core/orchestrator.js.map +0 -1
  271. package/dist/core/orchestrator.test.d.ts +0 -8
  272. package/dist/core/orchestrator.test.d.ts.map +0 -1
  273. package/dist/core/orchestrator.test.js +0 -517
  274. package/dist/core/orchestrator.test.js.map +0 -1
  275. package/dist/core/router.d.ts +0 -102
  276. package/dist/core/router.d.ts.map +0 -1
  277. package/dist/core/router.js +0 -178
  278. package/dist/core/router.js.map +0 -1
  279. package/dist/core/router.test.d.ts +0 -8
  280. package/dist/core/router.test.d.ts.map +0 -1
  281. package/dist/core/router.test.js +0 -215
  282. package/dist/core/router.test.js.map +0 -1
  283. package/dist/init.test.js +0 -288
  284. package/dist/providers/azure.d.ts +0 -147
  285. package/dist/providers/azure.d.ts.map +0 -1
  286. package/dist/providers/azure.js +0 -491
  287. package/dist/providers/azure.js.map +0 -1
  288. package/dist/providers/azure.test.d.ts +0 -11
  289. package/dist/providers/azure.test.d.ts.map +0 -1
  290. package/dist/providers/azure.test.js +0 -330
  291. package/dist/providers/azure.test.js.map +0 -1
  292. package/dist/providers/config.d.ts +0 -87
  293. package/dist/providers/config.d.ts.map +0 -1
  294. package/dist/providers/config.js +0 -193
  295. package/dist/providers/config.js.map +0 -1
  296. package/dist/providers/config.test.d.ts +0 -7
  297. package/dist/providers/config.test.d.ts.map +0 -1
  298. package/dist/providers/config.test.js +0 -370
  299. package/dist/providers/config.test.js.map +0 -1
  300. package/dist/providers/index.d.ts +0 -18
  301. package/dist/providers/index.d.ts.map +0 -1
  302. package/dist/providers/index.js +0 -14
  303. package/dist/providers/index.js.map +0 -1
  304. package/dist/providers/interface.d.ts +0 -191
  305. package/dist/providers/interface.d.ts.map +0 -1
  306. package/dist/providers/interface.js +0 -94
  307. package/dist/providers/interface.js.map +0 -1
  308. package/dist/providers/retry.d.ts +0 -128
  309. package/dist/providers/retry.d.ts.map +0 -1
  310. package/dist/providers/retry.js +0 -205
  311. package/dist/providers/retry.js.map +0 -1
  312. package/dist/providers/retry.test.d.ts +0 -7
  313. package/dist/providers/retry.test.d.ts.map +0 -1
  314. package/dist/providers/retry.test.js +0 -439
  315. package/dist/providers/retry.test.js.map +0 -1
  316. package/dist/providers/streaming.d.ts +0 -157
  317. package/dist/providers/streaming.d.ts.map +0 -1
  318. package/dist/providers/streaming.js +0 -233
  319. package/dist/providers/streaming.js.map +0 -1
  320. package/dist/providers/streaming.test.d.ts +0 -7
  321. package/dist/providers/streaming.test.d.ts.map +0 -1
  322. package/dist/providers/streaming.test.js +0 -372
  323. package/dist/providers/streaming.test.js.map +0 -1
  324. package/dist/providers/types.d.ts +0 -209
  325. package/dist/providers/types.d.ts.map +0 -1
  326. package/dist/providers/types.js +0 -53
  327. package/dist/providers/types.js.map +0 -1
  328. package/dist/providers/types.test.d.ts +0 -7
  329. package/dist/providers/types.test.d.ts.map +0 -1
  330. package/dist/providers/types.test.js +0 -141
  331. package/dist/providers/types.test.js.map +0 -1
  332. package/dist/tools/cli/beads.d.ts +0 -27
  333. package/dist/tools/cli/beads.d.ts.map +0 -1
  334. package/dist/tools/cli/beads.js +0 -172
  335. package/dist/tools/cli/beads.js.map +0 -1
  336. package/dist/tools/cli/beads.test.d.ts +0 -8
  337. package/dist/tools/cli/beads.test.d.ts.map +0 -1
  338. package/dist/tools/cli/beads.test.js +0 -264
  339. package/dist/tools/cli/beads.test.js.map +0 -1
  340. package/dist/tools/cli/editFile.d.ts +0 -17
  341. package/dist/tools/cli/editFile.d.ts.map +0 -1
  342. package/dist/tools/cli/editFile.js +0 -125
  343. package/dist/tools/cli/editFile.js.map +0 -1
  344. package/dist/tools/cli/editFile.test.d.ts +0 -8
  345. package/dist/tools/cli/editFile.test.d.ts.map +0 -1
  346. package/dist/tools/cli/editFile.test.js +0 -177
  347. package/dist/tools/cli/editFile.test.js.map +0 -1
  348. package/dist/tools/cli/readFile.d.ts +0 -25
  349. package/dist/tools/cli/readFile.d.ts.map +0 -1
  350. package/dist/tools/cli/readFile.js +0 -118
  351. package/dist/tools/cli/readFile.js.map +0 -1
  352. package/dist/tools/cli/readFile.test.d.ts +0 -8
  353. package/dist/tools/cli/readFile.test.d.ts.map +0 -1
  354. package/dist/tools/cli/readFile.test.js +0 -194
  355. package/dist/tools/cli/readFile.test.js.map +0 -1
  356. package/dist/tools/cli/search.d.ts +0 -16
  357. package/dist/tools/cli/search.d.ts.map +0 -1
  358. package/dist/tools/cli/search.js +0 -261
  359. package/dist/tools/cli/search.js.map +0 -1
  360. package/dist/tools/cli/search.test.d.ts +0 -8
  361. package/dist/tools/cli/search.test.d.ts.map +0 -1
  362. package/dist/tools/cli/search.test.js +0 -172
  363. package/dist/tools/cli/search.test.js.map +0 -1
  364. package/dist/tools/cli/subagent.d.ts +0 -43
  365. package/dist/tools/cli/subagent.d.ts.map +0 -1
  366. package/dist/tools/cli/subagent.js +0 -99
  367. package/dist/tools/cli/subagent.js.map +0 -1
  368. package/dist/tools/cli/subagent.test.d.ts +0 -8
  369. package/dist/tools/cli/subagent.test.d.ts.map +0 -1
  370. package/dist/tools/cli/subagent.test.js +0 -190
  371. package/dist/tools/cli/subagent.test.js.map +0 -1
  372. package/dist/tools/cli/terminal.d.ts +0 -19
  373. package/dist/tools/cli/terminal.d.ts.map +0 -1
  374. package/dist/tools/cli/terminal.js +0 -164
  375. package/dist/tools/cli/terminal.js.map +0 -1
  376. package/dist/tools/cli/terminal.test.d.ts +0 -8
  377. package/dist/tools/cli/terminal.test.d.ts.map +0 -1
  378. package/dist/tools/cli/terminal.test.js +0 -161
  379. package/dist/tools/cli/terminal.test.js.map +0 -1
  380. package/dist/tools/index.d.ts +0 -25
  381. package/dist/tools/index.d.ts.map +0 -1
  382. package/dist/tools/index.js +0 -41
  383. package/dist/tools/index.js.map +0 -1
  384. package/dist/tools/interface.d.ts +0 -64
  385. package/dist/tools/interface.d.ts.map +0 -1
  386. package/dist/tools/interface.js +0 -37
  387. package/dist/tools/interface.js.map +0 -1
  388. package/dist/tools/interface.test.d.ts +0 -7
  389. package/dist/tools/interface.test.d.ts.map +0 -1
  390. package/dist/tools/interface.test.js +0 -179
  391. package/dist/tools/interface.test.js.map +0 -1
  392. package/dist/tools/mcp/bridge.d.ts +0 -48
  393. package/dist/tools/mcp/bridge.d.ts.map +0 -1
  394. package/dist/tools/mcp/bridge.js +0 -128
  395. package/dist/tools/mcp/bridge.js.map +0 -1
  396. package/dist/tools/mcp/bridge.test.d.ts +0 -8
  397. package/dist/tools/mcp/bridge.test.d.ts.map +0 -1
  398. package/dist/tools/mcp/bridge.test.js +0 -300
  399. package/dist/tools/mcp/bridge.test.js.map +0 -1
  400. package/dist/tools/mcp/client.d.ts +0 -135
  401. package/dist/tools/mcp/client.d.ts.map +0 -1
  402. package/dist/tools/mcp/client.js +0 -263
  403. package/dist/tools/mcp/client.js.map +0 -1
  404. package/dist/tools/mcp/client.test.d.ts +0 -8
  405. package/dist/tools/mcp/client.test.d.ts.map +0 -1
  406. package/dist/tools/mcp/client.test.js +0 -390
  407. package/dist/tools/mcp/client.test.js.map +0 -1
  408. package/dist/tools/registry.d.ts +0 -82
  409. package/dist/tools/registry.d.ts.map +0 -1
  410. package/dist/tools/registry.js +0 -99
  411. package/dist/tools/registry.js.map +0 -1
  412. package/dist/tools/registry.test.d.ts +0 -7
  413. package/dist/tools/registry.test.d.ts.map +0 -1
  414. package/dist/tools/registry.test.js +0 -199
  415. package/dist/tools/registry.test.js.map +0 -1
  416. package/dist/tools/suite.test.d.ts +0 -11
  417. package/dist/tools/suite.test.d.ts.map +0 -1
  418. package/dist/tools/suite.test.js +0 -119
  419. package/dist/tools/suite.test.js.map +0 -1
  420. package/dist/tools/types.d.ts +0 -75
  421. package/dist/tools/types.d.ts.map +0 -1
  422. package/dist/tools/types.js +0 -30
  423. package/dist/tools/types.js.map +0 -1
  424. package/dist/tools/types.test.d.ts +0 -7
  425. package/dist/tools/types.test.d.ts.map +0 -1
  426. package/dist/tools/types.test.js +0 -178
  427. package/dist/tools/types.test.js.map +0 -1
  428. package/templates/.vscode/mcp.json +0 -20
  429. package/templates/CLAUDE.md +0 -129
@@ -1,514 +0,0 @@
1
- /**
2
- * Orchestrator — Beth's Brain
3
- *
4
- * The main agentic loop that ties everything together:
5
- *
6
- * User message
7
- * → Route to agent (AgentRouter)
8
- * → Build context (ConversationContext)
9
- * → Inject skills (if triggers match)
10
- * → Send to LLM (Provider)
11
- * → If tool calls → execute tools (ToolRegistry)
12
- * → If subagent request → spawn child conversation
13
- * → Return tool results to LLM → loop
14
- * → If handoff → transfer to new agent (HandoffManager)
15
- * → If text response → return to caller
16
- *
17
- * The orchestrator supports both streaming and non-streaming modes,
18
- * and handles the full tool-calling loop until the model produces
19
- * a final text response or a handoff.
20
- */
21
- import { isSubagentRequest } from '../tools/cli/subagent.js';
22
- import { ConversationContext } from './context.js';
23
- import { AgentRouter } from './router.js';
24
- import { HandoffManager } from './handoffs.js';
25
- // =============================================================================
26
- // Orchestrator
27
- // =============================================================================
28
- /** Default maximum tool-call iterations per user turn */
29
- const DEFAULT_MAX_ITERATIONS = 25;
30
- /** Default maximum subagent nesting depth */
31
- const DEFAULT_MAX_SUBAGENT_DEPTH = 3;
32
- /**
33
- * The Orchestrator — Beth's brain.
34
- *
35
- * Manages the full agent loop: routing → LLM → tool calls → response.
36
- *
37
- * @example
38
- * ```typescript
39
- * const orchestrator = new Orchestrator({
40
- * agents: loadAgents('.github/agents'),
41
- * skills: loadSkills('.github/skills'),
42
- * provider: new AzureOpenAIProvider(config),
43
- * toolRegistry: createDefaultRegistry(),
44
- * toolContext: { workingDir: process.cwd(), permissions: { ... } },
45
- * });
46
- *
47
- * const result = await orchestrator.processMessage('Implement the login page');
48
- * console.log(result.response);
49
- * ```
50
- */
51
- export class Orchestrator {
52
- router;
53
- handoffs;
54
- provider;
55
- toolRegistry;
56
- toolContext;
57
- maxIterations;
58
- maxSubagentDepth;
59
- contextOptions;
60
- /** Active conversation contexts by agent ID */
61
- contexts = new Map();
62
- /** Currently active agent ID */
63
- activeAgentId;
64
- /** Observer for event callbacks */
65
- observer;
66
- constructor(config) {
67
- this.router = new AgentRouter(config.agents, config.skills, config.defaultAgentId);
68
- this.handoffs = new HandoffManager(this.router, {
69
- maxDepth: config.maxHandoffDepth,
70
- });
71
- this.provider = config.provider;
72
- this.toolRegistry = config.toolRegistry;
73
- this.toolContext = config.toolContext;
74
- this.maxIterations = config.maxIterations ?? DEFAULT_MAX_ITERATIONS;
75
- this.maxSubagentDepth = config.maxSubagentDepth ?? DEFAULT_MAX_SUBAGENT_DEPTH;
76
- this.contextOptions = config.contextOptions;
77
- // Start with the default agent
78
- this.activeAgentId = config.defaultAgentId ?? 'beth';
79
- }
80
- // ===========================================================================
81
- // Public API
82
- // ===========================================================================
83
- /**
84
- * Set an observer for orchestrator events.
85
- */
86
- setObserver(observer) {
87
- this.observer = observer;
88
- }
89
- /**
90
- * Process a user message through the full agent loop.
91
- *
92
- * This is the main entry point. It:
93
- * 1. Routes the message to the appropriate agent
94
- * 2. Injects any matching skills
95
- * 3. Runs the agent loop (LLM → tools → LLM → ...)
96
- * 4. Returns the final response
97
- *
98
- * @param userMessage - The user's input
99
- * @returns The complete turn result
100
- */
101
- async processMessage(userMessage) {
102
- return this.processMessageAtDepth(userMessage, 0);
103
- }
104
- /**
105
- * Process a message at a specific subagent depth.
106
- * Used internally for subagent chains.
107
- */
108
- async processMessageAtDepth(userMessage, subagentDepth) {
109
- // 1. Route the message
110
- const routeResult = this.router.route(userMessage, this.activeAgentId);
111
- this.observer?.onRoute?.(routeResult);
112
- // Switch active agent if routing changed it
113
- const agent = routeResult.agent;
114
- this.activeAgentId = agent.id;
115
- // 2. Get or create conversation context
116
- const context = this.getOrCreateContext(agent);
117
- // 3. Inject matched skills
118
- const injectedSkills = [];
119
- for (const skill of routeResult.matchedSkills) {
120
- if (context.injectSkill(skill)) {
121
- injectedSkills.push(skill.id);
122
- }
123
- }
124
- // 4. Add user message
125
- const prompt = routeResult.cleanedPrompt ?? userMessage;
126
- context.addUserMessage(prompt);
127
- // 5. Run the agent loop
128
- const toolCallsExecuted = [];
129
- const subagentResults = [];
130
- let iterations = 0;
131
- let handoffResult;
132
- let finalResponse = '';
133
- while (iterations < this.maxIterations) {
134
- iterations++;
135
- this.observer?.onIteration?.(iterations, agent.id);
136
- // Build messages and tool definitions
137
- const messages = context.getMessages();
138
- const toolDefs = this.getToolDefinitions(agent);
139
- // Call the LLM
140
- this.observer?.onLLMCall?.(agent.id, messages.length);
141
- const requestOptions = {};
142
- if (toolDefs.length > 0) {
143
- requestOptions.tools = toolDefs;
144
- }
145
- const llmResult = await this.callLLM(messages, requestOptions);
146
- // Process the LLM response
147
- if (llmResult.toolCalls.length > 0) {
148
- // LLM wants to call tools
149
- context.addAssistantToolCalls(llmResult.toolCalls, llmResult.content || undefined);
150
- // Execute all tool calls
151
- for (const toolCall of llmResult.toolCalls) {
152
- const record = await this.executeToolCall(toolCall, subagentDepth, subagentResults);
153
- toolCallsExecuted.push(record);
154
- // Add tool result to context
155
- context.addToolResult(toolCall.id, record.output);
156
- }
157
- // Continue the loop — LLM needs to see tool results
158
- continue;
159
- }
160
- // No tool calls — this is the final response
161
- finalResponse = llmResult.content;
162
- this.observer?.onLLMResponse?.(agent.id, finalResponse);
163
- if (finalResponse) {
164
- context.addAssistantMessage(finalResponse);
165
- }
166
- break;
167
- }
168
- // Check if we hit the iteration limit
169
- if (iterations >= this.maxIterations && !finalResponse) {
170
- finalResponse = `[Agent reached maximum iterations (${this.maxIterations}). Last response may be incomplete.]`;
171
- context.addAssistantMessage(finalResponse);
172
- }
173
- return {
174
- response: finalResponse,
175
- agentId: agent.id,
176
- routeReason: routeResult.reason,
177
- toolCallsExecuted,
178
- handoff: handoffResult,
179
- subagentResults,
180
- iterations,
181
- injectedSkills,
182
- };
183
- }
184
- /**
185
- * Execute a handoff to a different agent.
186
- *
187
- * @param toAgentId - Target agent ID
188
- * @param prompt - Message to the new agent
189
- * @returns The handoff result and potentially a new TurnResult
190
- */
191
- async executeHandoff(toAgentId, prompt) {
192
- const currentAgent = this.router.resolveAgent(this.activeAgentId);
193
- if (!currentAgent) {
194
- return {
195
- handoff: {
196
- executed: false,
197
- reason: `Current agent "${this.activeAgentId}" not found`,
198
- request: {
199
- fromAgentId: this.activeAgentId,
200
- toAgentId,
201
- prompt,
202
- label: 'Handoff',
203
- autoSend: false,
204
- },
205
- },
206
- };
207
- }
208
- const currentContext = this.contexts.get(this.activeAgentId);
209
- const request = this.handoffs.prepareHandoff(currentAgent, toAgentId, prompt, currentContext);
210
- if (!request) {
211
- return {
212
- handoff: {
213
- executed: false,
214
- reason: `Target agent "${toAgentId}" not found`,
215
- request: {
216
- fromAgentId: this.activeAgentId,
217
- toAgentId,
218
- prompt,
219
- label: 'Handoff',
220
- autoSend: false,
221
- },
222
- },
223
- };
224
- }
225
- this.observer?.onHandoff?.(request);
226
- const handoffResult = this.handoffs.executeHandoff(request);
227
- if (!handoffResult.executed || !handoffResult.targetAgent) {
228
- return { handoff: handoffResult };
229
- }
230
- // Switch to the new agent
231
- this.activeAgentId = handoffResult.targetAgent.id;
232
- // Create new context for the target agent with handoff context
233
- const newContext = this.getOrCreateContext(handoffResult.targetAgent);
234
- const handoffContext = this.handoffs.buildHandoffContext(request);
235
- newContext.addContext(handoffContext);
236
- // If auto-send, process the prompt immediately
237
- if (request.autoSend && request.prompt) {
238
- const turnResult = await this.processMessage(request.prompt);
239
- return { handoff: handoffResult, turnResult };
240
- }
241
- return { handoff: handoffResult };
242
- }
243
- /**
244
- * Get the currently active agent ID.
245
- */
246
- getActiveAgentId() {
247
- return this.activeAgentId;
248
- }
249
- /**
250
- * Get the conversation context for the active agent.
251
- */
252
- getActiveContext() {
253
- return this.contexts.get(this.activeAgentId);
254
- }
255
- /**
256
- * Get the router for external agent queries.
257
- */
258
- getRouter() {
259
- return this.router;
260
- }
261
- /**
262
- * Get the handoff manager.
263
- */
264
- getHandoffManager() {
265
- return this.handoffs;
266
- }
267
- /**
268
- * Reset all conversation state.
269
- */
270
- reset() {
271
- this.contexts.clear();
272
- this.handoffs.clearHistory();
273
- const defaultAgent = this.router.getDefaultAgent();
274
- this.activeAgentId = defaultAgent.id;
275
- }
276
- // ===========================================================================
277
- // Internal: LLM Communication
278
- // ===========================================================================
279
- /**
280
- * Call the LLM and collect the full response.
281
- * Uses streaming internally for reliability, collects into a single result.
282
- */
283
- async callLLM(messages, options) {
284
- // Use non-streaming chat for simplicity and reliability
285
- const response = await this.provider.chat(messages, options);
286
- const choice = response.choices[0];
287
- if (!choice) {
288
- return { content: '', toolCalls: [] };
289
- }
290
- return {
291
- content: choice.message.content ?? '',
292
- toolCalls: choice.message.tool_calls ?? [],
293
- };
294
- }
295
- // ===========================================================================
296
- // Internal: Tool Execution
297
- // ===========================================================================
298
- /**
299
- * Execute a single tool call and return a record.
300
- */
301
- async executeToolCall(toolCall, subagentDepth, subagentResults) {
302
- const toolName = toolCall.function.name;
303
- this.observer?.onToolCallStart?.(toolName, toolCall.function.arguments);
304
- // Look up the tool
305
- const tool = this.toolRegistry.get(toolName);
306
- if (!tool) {
307
- const record = {
308
- id: toolCall.id,
309
- name: toolName,
310
- success: false,
311
- output: `Tool "${toolName}" not found in registry`,
312
- };
313
- this.observer?.onToolCallEnd?.(record);
314
- return record;
315
- }
316
- try {
317
- // Parse arguments
318
- let args;
319
- try {
320
- args = JSON.parse(toolCall.function.arguments);
321
- }
322
- catch {
323
- const record = {
324
- id: toolCall.id,
325
- name: toolName,
326
- success: false,
327
- output: `Invalid JSON arguments: ${toolCall.function.arguments.slice(0, 200)}`,
328
- };
329
- this.observer?.onToolCallEnd?.(record);
330
- return record;
331
- }
332
- // Execute the tool
333
- const result = await tool.execute(args, this.toolContext);
334
- // Check for subagent requests
335
- if (isSubagentRequest(result)) {
336
- const subResult = await this.handleSubagentRequest(result, subagentDepth, subagentResults);
337
- const record = {
338
- id: toolCall.id,
339
- name: toolName,
340
- success: subResult.success,
341
- output: subResult.response,
342
- };
343
- this.observer?.onToolCallEnd?.(record);
344
- return record;
345
- }
346
- const record = {
347
- id: toolCall.id,
348
- name: toolName,
349
- success: result.success,
350
- output: result.output,
351
- };
352
- this.observer?.onToolCallEnd?.(record);
353
- return record;
354
- }
355
- catch (error) {
356
- const errorMessage = error instanceof Error ? error.message : String(error);
357
- const record = {
358
- id: toolCall.id,
359
- name: toolName,
360
- success: false,
361
- output: `Tool execution error: ${errorMessage}`,
362
- };
363
- this.observer?.onToolCallEnd?.(record);
364
- return record;
365
- }
366
- }
367
- /**
368
- * Handle a subagent request from a tool call.
369
- */
370
- async handleSubagentRequest(toolResult, currentDepth, subagentResults) {
371
- const metadata = toolResult.metadata;
372
- const agentName = metadata.agentName;
373
- const prompt = metadata.prompt;
374
- // Check depth limit
375
- if (currentDepth >= this.maxSubagentDepth) {
376
- const result = {
377
- agentId: agentName,
378
- prompt,
379
- response: `Subagent depth limit (${this.maxSubagentDepth}) reached. Cannot spawn "${agentName}".`,
380
- success: false,
381
- };
382
- subagentResults.push(result);
383
- return result;
384
- }
385
- // Verify the target agent exists
386
- const targetAgent = this.router.resolveAgent(agentName);
387
- if (!targetAgent) {
388
- const result = {
389
- agentId: agentName,
390
- prompt,
391
- response: `Agent "${agentName}" not found. Available agents: ${this.router.getAgents().map((a) => a.id).join(', ')}`,
392
- success: false,
393
- };
394
- subagentResults.push(result);
395
- return result;
396
- }
397
- this.observer?.onSubagentStart?.(agentName, prompt);
398
- try {
399
- // Create a fresh orchestrator context for the subagent
400
- // This runs a full agent loop in a nested context
401
- const subContext = new ConversationContext(targetAgent, this.contextOptions);
402
- subContext.addUserMessage(prompt);
403
- // Run a mini agent loop for the subagent
404
- const subResult = await this.runSubagentLoop(targetAgent, subContext, currentDepth + 1);
405
- const result = {
406
- agentId: agentName,
407
- prompt,
408
- response: subResult,
409
- success: true,
410
- };
411
- this.observer?.onSubagentEnd?.(result);
412
- subagentResults.push(result);
413
- return result;
414
- }
415
- catch (error) {
416
- const errorMessage = error instanceof Error ? error.message : String(error);
417
- const result = {
418
- agentId: agentName,
419
- prompt,
420
- response: `Subagent "${agentName}" failed: ${errorMessage}`,
421
- success: false,
422
- };
423
- this.observer?.onSubagentEnd?.(result);
424
- subagentResults.push(result);
425
- return result;
426
- }
427
- }
428
- /**
429
- * Run a mini agent loop for a subagent.
430
- * Returns the final text response.
431
- */
432
- async runSubagentLoop(agent, context, depth) {
433
- const subagentResults = [];
434
- let iterations = 0;
435
- while (iterations < this.maxIterations) {
436
- iterations++;
437
- const messages = context.getMessages();
438
- const toolDefs = this.getToolDefinitions(agent);
439
- const requestOptions = {};
440
- if (toolDefs.length > 0) {
441
- requestOptions.tools = toolDefs;
442
- }
443
- const llmResult = await this.callLLM(messages, requestOptions);
444
- if (llmResult.toolCalls.length > 0) {
445
- context.addAssistantToolCalls(llmResult.toolCalls, llmResult.content || undefined);
446
- for (const toolCall of llmResult.toolCalls) {
447
- const record = await this.executeToolCall(toolCall, depth, subagentResults);
448
- context.addToolResult(toolCall.id, record.output);
449
- }
450
- continue;
451
- }
452
- // Final response
453
- return llmResult.content;
454
- }
455
- return `[Subagent ${agent.id} reached maximum iterations (${this.maxIterations})]`;
456
- }
457
- // ===========================================================================
458
- // Internal: Context & Tools
459
- // ===========================================================================
460
- /**
461
- * Get or create a ConversationContext for an agent.
462
- */
463
- getOrCreateContext(agent) {
464
- let context = this.contexts.get(agent.id);
465
- if (!context) {
466
- context = new ConversationContext(agent, this.contextOptions);
467
- this.contexts.set(agent.id, context);
468
- }
469
- return context;
470
- }
471
- /**
472
- * Get tool definitions for an agent based on its allowed tools.
473
- *
474
- * Filters the full tool registry to only include tools the agent
475
- * is allowed to use (from its frontmatter.tools list).
476
- */
477
- getToolDefinitions(agent) {
478
- const allowedTools = agent.frontmatter.tools;
479
- if (!allowedTools || allowedTools.length === 0) {
480
- // No tool restrictions — agent gets all tools
481
- return this.toolRegistry.getDefinitions();
482
- }
483
- // Map agent tool names to registry tool names
484
- // Agent tools use names like 'readFile', 'editFiles', 'runSubagent'
485
- // Registry tools use names like 'readFile', 'editFile', 'subagent'
486
- const toolNameMap = {
487
- editFiles: 'editFile',
488
- runSubagent: 'subagent',
489
- runInTerminal: 'terminal',
490
- getTerminalOutput: 'terminal', // Same tool handles both
491
- };
492
- const definitions = [];
493
- const seen = new Set();
494
- for (const agentToolName of allowedTools) {
495
- const registryName = toolNameMap[agentToolName] ?? agentToolName;
496
- if (seen.has(registryName))
497
- continue;
498
- seen.add(registryName);
499
- const tool = this.toolRegistry.get(registryName);
500
- if (tool) {
501
- definitions.push({
502
- type: 'function',
503
- function: {
504
- name: tool.name,
505
- description: tool.description,
506
- parameters: tool.inputSchema,
507
- },
508
- });
509
- }
510
- }
511
- return definitions;
512
- }
513
- }
514
- //# sourceMappingURL=orchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0I/C,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,yDAAyD;AACzD,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,6CAA6C;AAC7C,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,YAAY;IACN,MAAM,CAAc;IACpB,QAAQ,CAAiB;IACzB,QAAQ,CAAkB;IAC1B,YAAY,CAAe;IAC3B,WAAW,CAAc;IACzB,aAAa,CAAS;IACtB,gBAAgB,CAAS;IACzB,cAAc,CAA8B;IAE7D,+CAA+C;IAC9B,QAAQ,GAAqC,IAAI,GAAG,EAAE,CAAC;IAExE,gCAAgC;IACxB,aAAa,CAAS;IAE9B,mCAAmC;IAC3B,QAAQ,CAAwB;IAExC,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAC3B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc,CACtB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9C,QAAQ,EAAE,MAAM,CAAC,eAAe;SACjC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,sBAAsB,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;QAC9E,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAE5C,+BAA+B;QAC/B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC;IACvD,CAAC;IAED,8EAA8E;IAC9E,aAAa;IACb,8EAA8E;IAE9E;;OAEG;IACH,WAAW,CAAC,QAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,qBAAqB,CACjC,WAAmB,EACnB,aAAqB;QAErB,uBAAuB;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;QAEtC,4CAA4C;QAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;QAE9B,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/C,2BAA2B;QAC3B,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC;QACxD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE/B,wBAAwB;QACxB,MAAM,iBAAiB,GAAqB,EAAE,CAAC;QAC/C,MAAM,eAAe,GAAqB,EAAE,CAAC;QAC7C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,aAAwC,CAAC;QAC7C,IAAI,aAAa,GAAG,EAAE,CAAC;QAEvB,OAAO,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnD,sCAAsC;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEhD,eAAe;YACf,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEtD,MAAM,cAAc,GAAuB,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC;YAClC,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAE/D,2BAA2B;YAC3B,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,0BAA0B;gBAC1B,OAAO,CAAC,qBAAqB,CAC3B,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,OAAO,IAAI,SAAS,CAC/B,CAAC;gBAEF,yBAAyB;gBACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;oBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;oBACpF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAE/B,6BAA6B;oBAC7B,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,CAAC;gBAED,oDAAoD;gBACpD,SAAS;YACX,CAAC;YAED,6CAA6C;YAC7C,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YAExD,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM;QACR,CAAC;QAED,sCAAsC;QACtC,IAAI,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;YACvD,aAAa,GAAG,sCAAsC,IAAI,CAAC,aAAa,sCAAsC,CAAC;YAC/G,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,iBAAiB;YACjB,OAAO,EAAE,aAAa;YACtB,eAAe;YACf,UAAU;YACV,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAClB,SAAiB,EACjB,MAAc;QAEd,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE;oBACP,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,kBAAkB,IAAI,CAAC,aAAa,aAAa;oBACzD,OAAO,EAAE;wBACP,WAAW,EAAE,IAAI,CAAC,aAAa;wBAC/B,SAAS;wBACT,MAAM;wBACN,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,KAAK;qBAChB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAC1C,YAAY,EACZ,SAAS,EACT,MAAM,EACN,cAAc,CACf,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE;oBACP,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,iBAAiB,SAAS,aAAa;oBAC/C,OAAO,EAAE;wBACP,WAAW,EAAE,IAAI,CAAC,aAAa;wBAC/B,SAAS;wBACT,MAAM;wBACN,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,KAAK;qBAChB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QACpC,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAElD,+DAA+D;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClE,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEtC,+CAA+C;QAC/C,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC;IACvC,CAAC;IAED,8EAA8E;IAC9E,8BAA8B;IAC9B,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,OAAO,CACnB,QAAuB,EACvB,OAA4B;QAE5B,wDAAwD;QACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QACxC,CAAC;QAED,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE;YACrC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;SAC3C,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,2BAA2B;IAC3B,8EAA8E;IAE9E;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,QAAkB,EAClB,aAAqB,EACrB,eAAiC;QAEjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAExC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAExE,mBAAmB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,MAAM,GAAmB;gBAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,SAAS,QAAQ,yBAAyB;aACnD,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,kBAAkB;YAClB,IAAI,IAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,MAAM,GAAmB;oBAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,2BAA2B,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;iBAC/E,CAAC;gBACF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,mBAAmB;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAE1D,8BAA8B;YAC9B,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAChD,MAAM,EACN,aAAa,EACb,eAAe,CAChB,CAAC;gBACF,MAAM,MAAM,GAAmB;oBAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,MAAM,EAAE,SAAS,CAAC,QAAQ;iBAC3B,CAAC;gBACF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;gBACvC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,MAAM,GAAmB;gBAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAmB;gBAC7B,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,yBAAyB,YAAY,EAAE;aAChD,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CACjC,UAAsB,EACtB,YAAoB,EACpB,eAAiC;QAEjC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAS,CAAC;QACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAmB,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAgB,CAAC;QAEzC,oBAAoB;QACpB,IAAI,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAmB;gBAC7B,OAAO,EAAE,SAAS;gBAClB,MAAM;gBACN,QAAQ,EAAE,yBAAyB,IAAI,CAAC,gBAAgB,4BAA4B,SAAS,IAAI;gBACjG,OAAO,EAAE,KAAK;aACf,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,MAAM,GAAmB;gBAC7B,OAAO,EAAE,SAAS;gBAClB,MAAM;gBACN,QAAQ,EAAE,UAAU,SAAS,kCAAkC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpH,OAAO,EAAE,KAAK;aACf,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEpD,IAAI,CAAC;YACH,uDAAuD;YACvD,kDAAkD;YAClD,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7E,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAElC,yCAAyC;YACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAExF,MAAM,MAAM,GAAmB;gBAC7B,OAAO,EAAE,SAAS;gBAClB,MAAM;gBACN,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI;aACd,CAAC;YAEF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;YACvC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,MAAM,GAAmB;gBAC7B,OAAO,EAAE,SAAS;gBAClB,MAAM;gBACN,QAAQ,EAAE,aAAa,SAAS,aAAa,YAAY,EAAE;gBAC3D,OAAO,EAAE,KAAK;aACf,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;YACvC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe,CAC3B,KAAsB,EACtB,OAA4B,EAC5B,KAAa;QAEb,MAAM,eAAe,GAAqB,EAAE,CAAC;QAC7C,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,OAAO,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,UAAU,EAAE,CAAC;YAEb,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,cAAc,GAAuB,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC;YAClC,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAE/D,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;gBAEnF,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;oBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;oBAC5E,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpD,CAAC;gBAED,SAAS;YACX,CAAC;YAED,iBAAiB;YACjB,OAAO,SAAS,CAAC,OAAO,CAAC;QAC3B,CAAC;QAED,OAAO,aAAa,KAAK,CAAC,EAAE,gCAAgC,IAAI,CAAC,aAAa,IAAI,CAAC;IACrF,CAAC;IAED,8EAA8E;IAC9E,4BAA4B;IAC5B,8EAA8E;IAE9E;;OAEG;IACK,kBAAkB,CAAC,KAAsB;QAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,kBAAkB,CAAC,KAAsB;QAC/C,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAE7C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,8CAA8C;YAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;QAC5C,CAAC;QAED,8CAA8C;QAC9C,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,WAAW,GAA2B;YAC1C,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,UAAU;YACzB,iBAAiB,EAAE,UAAU,EAAE,yBAAyB;SACzD,CAAC;QAEF,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,aAAa,IAAI,YAAY,EAAE,CAAC;YACzC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC;YAEjE,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjD,IAAI,IAAI,EAAE,CAAC;gBACT,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,UAAU,EAAE,IAAI,CAAC,WAAsC;qBACxD;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Orchestrator Tests
3
- *
4
- * Integration tests for the full agent loop: routing → LLM → tool calls → response.
5
- * Uses mock LLM provider and tools to verify the orchestration flow.
6
- */
7
- export {};
8
- //# sourceMappingURL=orchestrator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orchestrator.test.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}