codingbuddy 4.4.0 → 5.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 (201) hide show
  1. package/dist/src/agent/agent.module.js +3 -1
  2. package/dist/src/agent/agent.module.js.map +1 -1
  3. package/dist/src/agent/agent.service.d.ts +13 -4
  4. package/dist/src/agent/agent.service.js +125 -12
  5. package/dist/src/agent/agent.service.js.map +1 -1
  6. package/dist/src/agent/agent.types.d.ts +53 -0
  7. package/dist/src/agent/agent.types.js.map +1 -1
  8. package/dist/src/collaboration/discussion-engine.d.ts +14 -0
  9. package/dist/src/collaboration/discussion-engine.js +49 -0
  10. package/dist/src/collaboration/discussion-engine.js.map +1 -0
  11. package/dist/src/collaboration/index.d.ts +5 -0
  12. package/dist/src/collaboration/index.js +22 -0
  13. package/dist/src/collaboration/index.js.map +1 -0
  14. package/dist/src/collaboration/opinion-adapter.d.ts +14 -0
  15. package/dist/src/collaboration/opinion-adapter.js +56 -0
  16. package/dist/src/collaboration/opinion-adapter.js.map +1 -0
  17. package/dist/src/collaboration/terminal-formatter.d.ts +5 -0
  18. package/dist/src/collaboration/terminal-formatter.js +57 -0
  19. package/dist/src/collaboration/terminal-formatter.js.map +1 -0
  20. package/dist/src/collaboration/types.d.ts +50 -0
  21. package/dist/src/collaboration/types.js +53 -0
  22. package/dist/src/collaboration/types.js.map +1 -0
  23. package/dist/src/config/config.schema.d.ts +8 -0
  24. package/dist/src/config/config.schema.js +4 -0
  25. package/dist/src/config/config.schema.js.map +1 -1
  26. package/dist/src/context/context-document.service.d.ts +1 -1
  27. package/dist/src/context/context-document.service.js +6 -2
  28. package/dist/src/context/context-document.service.js.map +1 -1
  29. package/dist/src/context/context-document.types.d.ts +18 -0
  30. package/dist/src/context/context-document.types.js +13 -1
  31. package/dist/src/context/context-document.types.js.map +1 -1
  32. package/dist/src/context/context-parser.utils.js +32 -0
  33. package/dist/src/context/context-parser.utils.js.map +1 -1
  34. package/dist/src/context/context-serializer.utils.d.ts +3 -2
  35. package/dist/src/context/context-serializer.utils.js +25 -1
  36. package/dist/src/context/context-serializer.utils.js.map +1 -1
  37. package/dist/src/keyword/explicit-pattern-matcher.d.ts +3 -0
  38. package/dist/src/keyword/explicit-pattern-matcher.js +34 -0
  39. package/dist/src/keyword/explicit-pattern-matcher.js.map +1 -0
  40. package/dist/src/keyword/keyword.module.js +17 -1
  41. package/dist/src/keyword/keyword.module.js.map +1 -1
  42. package/dist/src/keyword/keyword.service.d.ts +2 -0
  43. package/dist/src/keyword/keyword.service.js +15 -0
  44. package/dist/src/keyword/keyword.service.js.map +1 -1
  45. package/dist/src/keyword/keyword.types.d.ts +6 -1
  46. package/dist/src/keyword/keyword.types.js +7 -1
  47. package/dist/src/keyword/keyword.types.js.map +1 -1
  48. package/dist/src/keyword/primary-agent-resolver.d.ts +5 -2
  49. package/dist/src/keyword/primary-agent-resolver.js +22 -1
  50. package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
  51. package/dist/src/keyword/strategies/act-agent.strategy.js +8 -0
  52. package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
  53. package/dist/src/keyword/strategies/index.d.ts +1 -1
  54. package/dist/src/keyword/strategies/index.js.map +1 -1
  55. package/dist/src/keyword/strategies/resolution-strategy.interface.d.ts +3 -0
  56. package/dist/src/keyword/taskmaestro-detector.d.ts +1 -0
  57. package/dist/src/keyword/taskmaestro-detector.js +16 -0
  58. package/dist/src/keyword/taskmaestro-detector.js.map +1 -0
  59. package/dist/src/mcp/handlers/agent.handler.d.ts +1 -0
  60. package/dist/src/mcp/handlers/agent.handler.js +51 -2
  61. package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
  62. package/dist/src/mcp/handlers/context-document.handler.d.ts +3 -0
  63. package/dist/src/mcp/handlers/context-document.handler.js +91 -10
  64. package/dist/src/mcp/handlers/context-document.handler.js.map +1 -1
  65. package/dist/src/mcp/handlers/discussion.handler.d.ts +14 -0
  66. package/dist/src/mcp/handlers/discussion.handler.js +168 -0
  67. package/dist/src/mcp/handlers/discussion.handler.js.map +1 -0
  68. package/dist/src/mcp/handlers/discussion.types.d.ts +18 -0
  69. package/dist/src/mcp/handlers/discussion.types.js +11 -0
  70. package/dist/src/mcp/handlers/discussion.types.js.map +1 -0
  71. package/dist/src/mcp/handlers/index.d.ts +3 -0
  72. package/dist/src/mcp/handlers/index.js +7 -1
  73. package/dist/src/mcp/handlers/index.js.map +1 -1
  74. package/dist/src/mcp/handlers/mode.handler.d.ts +3 -0
  75. package/dist/src/mcp/handlers/mode.handler.js +58 -0
  76. package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
  77. package/dist/src/mcp/handlers/pipeline.handler.d.ts +14 -0
  78. package/dist/src/mcp/handlers/pipeline.handler.js +137 -0
  79. package/dist/src/mcp/handlers/pipeline.handler.js.map +1 -0
  80. package/dist/src/mcp/mcp.module.js +5 -0
  81. package/dist/src/mcp/mcp.module.js.map +1 -1
  82. package/dist/src/mcp/sse-auth.guard.js +4 -6
  83. package/dist/src/mcp/sse-auth.guard.js.map +1 -1
  84. package/dist/src/parallel-validation/extract-file-paths.d.ts +1 -0
  85. package/dist/src/parallel-validation/extract-file-paths.js +19 -0
  86. package/dist/src/parallel-validation/extract-file-paths.js.map +1 -0
  87. package/dist/src/parallel-validation/index.d.ts +5 -0
  88. package/dist/src/parallel-validation/index.js +12 -0
  89. package/dist/src/parallel-validation/index.js.map +1 -0
  90. package/dist/src/parallel-validation/overlap-matrix.d.ts +10 -0
  91. package/dist/src/parallel-validation/overlap-matrix.js +23 -0
  92. package/dist/src/parallel-validation/overlap-matrix.js.map +1 -0
  93. package/dist/src/parallel-validation/parallel-validation.handler.d.ts +8 -0
  94. package/dist/src/parallel-validation/parallel-validation.handler.js +84 -0
  95. package/dist/src/parallel-validation/parallel-validation.handler.js.map +1 -0
  96. package/dist/src/parallel-validation/parallel-validation.types.d.ts +12 -0
  97. package/dist/src/parallel-validation/parallel-validation.types.js +3 -0
  98. package/dist/src/parallel-validation/parallel-validation.types.js.map +1 -0
  99. package/dist/src/parallel-validation/wave-splitter.d.ts +2 -0
  100. package/dist/src/parallel-validation/wave-splitter.js +39 -0
  101. package/dist/src/parallel-validation/wave-splitter.js.map +1 -0
  102. package/dist/src/pipeline/index.d.ts +5 -0
  103. package/dist/src/pipeline/index.js +14 -0
  104. package/dist/src/pipeline/index.js.map +1 -0
  105. package/dist/src/pipeline/pipeline.executors.d.ts +2 -0
  106. package/dist/src/pipeline/pipeline.executors.js +79 -0
  107. package/dist/src/pipeline/pipeline.executors.js.map +1 -0
  108. package/dist/src/pipeline/pipeline.module.d.ts +2 -0
  109. package/dist/src/pipeline/pipeline.module.js +21 -0
  110. package/dist/src/pipeline/pipeline.module.js.map +1 -0
  111. package/dist/src/pipeline/pipeline.service.d.ts +8 -0
  112. package/dist/src/pipeline/pipeline.service.js +89 -0
  113. package/dist/src/pipeline/pipeline.service.js.map +1 -0
  114. package/dist/src/pipeline/pipeline.types.d.ts +47 -0
  115. package/dist/src/pipeline/pipeline.types.js +33 -0
  116. package/dist/src/pipeline/pipeline.types.js.map +1 -0
  117. package/dist/src/rules/rule-tracker.d.ts +24 -0
  118. package/dist/src/rules/rule-tracker.js +74 -0
  119. package/dist/src/rules/rule-tracker.js.map +1 -0
  120. package/dist/src/shared/event-bridge-reader.d.ts +17 -0
  121. package/dist/src/shared/event-bridge-reader.js +56 -0
  122. package/dist/src/shared/event-bridge-reader.js.map +1 -0
  123. package/dist/src/shared/version.d.ts +1 -1
  124. package/dist/src/shared/version.js +1 -1
  125. package/dist/src/tui/components/AgentDiscussionPanel.d.ts +8 -0
  126. package/dist/src/tui/components/AgentDiscussionPanel.js +21 -0
  127. package/dist/src/tui/components/AgentDiscussionPanel.js.map +1 -0
  128. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +85 -0
  129. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +1 -0
  130. package/dist/src/tui/components/FlowMap.d.ts +3 -1
  131. package/dist/src/tui/components/FlowMap.js +30 -3
  132. package/dist/src/tui/components/FlowMap.js.map +1 -1
  133. package/dist/src/tui/components/FlowMap.spec.js +88 -0
  134. package/dist/src/tui/components/FlowMap.spec.js.map +1 -1
  135. package/dist/src/tui/components/FocusedAgentPanel.d.ts +3 -1
  136. package/dist/src/tui/components/FocusedAgentPanel.js +8 -3
  137. package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
  138. package/dist/src/tui/components/FocusedAgentPanel.spec.js +76 -0
  139. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
  140. package/dist/src/tui/components/HeaderBar.d.ts +3 -1
  141. package/dist/src/tui/components/HeaderBar.js +12 -6
  142. package/dist/src/tui/components/HeaderBar.js.map +1 -1
  143. package/dist/src/tui/components/HeaderBar.spec.js +31 -13
  144. package/dist/src/tui/components/HeaderBar.spec.js.map +1 -1
  145. package/dist/src/tui/components/StageHealthBar.d.ts +5 -1
  146. package/dist/src/tui/components/StageHealthBar.js +6 -1
  147. package/dist/src/tui/components/StageHealthBar.js.map +1 -1
  148. package/dist/src/tui/components/StageHealthBar.spec.js +22 -0
  149. package/dist/src/tui/components/StageHealthBar.spec.js.map +1 -1
  150. package/dist/src/tui/components/agent-discussion-panel.pure.d.ts +10 -0
  151. package/dist/src/tui/components/agent-discussion-panel.pure.js +94 -0
  152. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +1 -0
  153. package/dist/src/tui/components/focused-agent.pure.d.ts +1 -0
  154. package/dist/src/tui/components/focused-agent.pure.js +11 -0
  155. package/dist/src/tui/components/focused-agent.pure.js.map +1 -1
  156. package/dist/src/tui/components/index.d.ts +5 -1
  157. package/dist/src/tui/components/index.js +18 -1
  158. package/dist/src/tui/components/index.js.map +1 -1
  159. package/dist/src/tui/components/live.pure.d.ts +9 -0
  160. package/dist/src/tui/components/live.pure.js +70 -0
  161. package/dist/src/tui/components/live.pure.js.map +1 -0
  162. package/dist/src/tui/dashboard-app.js +10 -6
  163. package/dist/src/tui/dashboard-app.js.map +1 -1
  164. package/dist/src/tui/dashboard-app.spec.js +14 -0
  165. package/dist/src/tui/dashboard-app.spec.js.map +1 -1
  166. package/dist/src/tui/dashboard-types.d.ts +8 -0
  167. package/dist/src/tui/dashboard-types.js.map +1 -1
  168. package/dist/src/tui/eventbus-ui.integration.spec.js +3 -0
  169. package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
  170. package/dist/src/tui/events/index.d.ts +1 -1
  171. package/dist/src/tui/events/index.js.map +1 -1
  172. package/dist/src/tui/events/types.d.ts +6 -0
  173. package/dist/src/tui/events/types.js +1 -0
  174. package/dist/src/tui/events/types.js.map +1 -1
  175. package/dist/src/tui/hooks/index.d.ts +1 -1
  176. package/dist/src/tui/hooks/index.js +3 -3
  177. package/dist/src/tui/hooks/index.js.map +1 -1
  178. package/dist/src/tui/hooks/use-dashboard-state.d.ts +4 -1
  179. package/dist/src/tui/hooks/use-dashboard-state.js +26 -0
  180. package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
  181. package/dist/src/tui/hooks/use-tick.d.ts +1 -0
  182. package/dist/src/tui/hooks/use-tick.js +15 -0
  183. package/dist/src/tui/hooks/use-tick.js.map +1 -0
  184. package/dist/src/tui/hooks/use-tick.spec.d.ts +1 -0
  185. package/dist/src/tui/hooks/use-tick.spec.js +70 -0
  186. package/dist/src/tui/hooks/use-tick.spec.js.map +1 -0
  187. package/dist/src/tui/index.d.ts +1 -1
  188. package/dist/src/tui/index.js +2 -2
  189. package/dist/src/tui/index.js.map +1 -1
  190. package/dist/src/tui-bundle.mjs +468 -133
  191. package/dist/tsconfig.build.tsbuildinfo +1 -1
  192. package/package.json +15 -14
  193. package/dist/src/tui/components/header-bar.pure.d.ts +0 -1
  194. package/dist/src/tui/components/header-bar.pure.js +0 -9
  195. package/dist/src/tui/components/header-bar.pure.js.map +0 -1
  196. package/dist/src/tui/hooks/use-clock.d.ts +0 -1
  197. package/dist/src/tui/hooks/use-clock.js +0 -16
  198. package/dist/src/tui/hooks/use-clock.js.map +0 -1
  199. package/dist/src/tui/hooks/use-clock.spec.js +0 -43
  200. package/dist/src/tui/hooks/use-clock.spec.js.map +0 -1
  201. /package/dist/src/tui/{hooks/use-clock.spec.d.ts → components/AgentDiscussionPanel.spec.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codingbuddy",
3
- "version": "4.4.0",
3
+ "version": "5.0.0",
4
4
  "description": "Multi-AI Rules MCP Server - One source of truth for AI coding rules across all AI assistants",
5
5
  "author": "JeremyDev87",
6
6
  "license": "MIT",
@@ -41,23 +41,24 @@
41
41
  },
42
42
  "scripts": {
43
43
  "prepublishOnly": "yarn build && chmod +x dist/src/main.js dist/src/cli/cli.js",
44
- "build": "yarn tsc -p tsconfig.build.json && node scripts/build-tui.js",
44
+ "clean": "rm -rf dist/",
45
+ "build": "rm -rf dist/ && tsc -p tsconfig.build.json && node scripts/build-tui.js",
45
46
  "build:tui": "node scripts/build-tui.js",
46
47
  "start": "node dist/src/main.js",
47
- "start:dev": "yarn ts-node src/main.ts",
48
+ "start:dev": "ts-node src/main.ts",
48
49
  "start:tui": "yarn build && node dist/src/cli/cli.js tui",
49
50
  "start:sse:tui": "yarn build && MCP_TRANSPORT=sse node dist/src/main.js --tui",
50
51
  "tui": "node dist/src/cli/cli.js tui",
51
- "test": "yarn vitest run",
52
- "test:watch": "yarn vitest",
53
- "test:coverage": "yarn vitest run --coverage",
54
- "lint": "yarn eslint src/",
55
- "lint:fix": "yarn eslint src/ --fix",
56
- "format": "yarn prettier --write 'src/**/*.ts'",
57
- "format:check": "yarn prettier --check 'src/**/*.ts'",
58
- "typecheck": "yarn tsc --noEmit",
59
- "circular": "yarn madge --circular --extensions ts src/",
60
- "validate": "yarn lint && yarn format:check && yarn typecheck && yarn test && yarn circular",
52
+ "test": "vitest run",
53
+ "test:watch": "vitest",
54
+ "test:coverage": "vitest run --coverage",
55
+ "lint": "eslint src/",
56
+ "lint:fix": "eslint src/ --fix",
57
+ "format": "prettier --write 'src/**/*.ts'",
58
+ "format:check": "prettier --check 'src/**/*.ts'",
59
+ "typecheck": "tsc --noEmit",
60
+ "circular": "madge --circular --extensions ts src/",
61
+ "validate": "eslint src/ && prettier --check 'src/**/*.ts' && tsc --noEmit && vitest run && madge --circular --extensions ts src/",
61
62
  "validate:rules": "cd ../.. && ./scripts/validate-rules.sh",
62
63
  "validate:rules:schema": "cd ../.. && ./scripts/validate-rules.sh --schema-only",
63
64
  "validate:rules:markdown": "cd ../.. && ./scripts/validate-rules.sh --markdown-only"
@@ -71,7 +72,7 @@
71
72
  "@nestjs/core": "11.1.9",
72
73
  "@nestjs/platform-express": "11.1.9",
73
74
  "chalk": "5.4.1",
74
- "codingbuddy-rules": "4.4.0",
75
+ "codingbuddy-rules": "5.0.0",
75
76
  "eventemitter2": "6.4.9",
76
77
  "ink": "6.7.0",
77
78
  "minimatch": "10.2.3",
@@ -1 +0,0 @@
1
- export declare function formatTime(date: Date): string;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatTime = formatTime;
4
- function formatTime(date) {
5
- const hours = String(date.getHours()).padStart(2, '0');
6
- const minutes = String(date.getMinutes()).padStart(2, '0');
7
- return `${hours}:${minutes}`;
8
- }
9
- //# sourceMappingURL=header-bar.pure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-bar.pure.js","sourceRoot":"","sources":["../../../../src/tui/components/header-bar.pure.ts"],"names":[],"mappings":";;AAIA,gCAIC;AAJD,SAAgB,UAAU,CAAC,IAAU;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -1 +0,0 @@
1
- export declare function useClock(): string;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useClock = useClock;
4
- const react_1 = require("react");
5
- const header_bar_pure_1 = require("../components/header-bar.pure");
6
- function useClock() {
7
- const [time, setTime] = (0, react_1.useState)(() => (0, header_bar_pure_1.formatTime)(new Date()));
8
- (0, react_1.useEffect)(() => {
9
- const interval = setInterval(() => {
10
- setTime((0, header_bar_pure_1.formatTime)(new Date()));
11
- }, 1000);
12
- return () => clearInterval(interval);
13
- }, []);
14
- return time;
15
- }
16
- //# sourceMappingURL=use-clock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-clock.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-clock.ts"],"names":[],"mappings":";;AAGA,4BAYC;AAfD,iCAA4C;AAC5C,mEAA2D;AAE3D,SAAgB,QAAQ;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAA,4BAAU,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,IAAA,4BAAU,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- const vitest_1 = require("vitest");
5
- const ink_testing_library_1 = require("ink-testing-library");
6
- const ink_1 = require("ink");
7
- const use_clock_1 = require("./use-clock");
8
- function TestComponent() {
9
- const time = (0, use_clock_1.useClock)();
10
- return react_1.default.createElement(ink_1.Text, null, time);
11
- }
12
- (0, vitest_1.describe)('tui/hooks/useClock', () => {
13
- (0, vitest_1.beforeEach)(() => {
14
- vitest_1.vi.useFakeTimers();
15
- });
16
- (0, vitest_1.afterEach)(() => {
17
- vitest_1.vi.useRealTimers();
18
- });
19
- (0, vitest_1.it)('should return initial formatted time', () => {
20
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 30, 0));
21
- const { lastFrame } = (0, ink_testing_library_1.render)(react_1.default.createElement(TestComponent, null));
22
- (0, vitest_1.expect)(lastFrame()).toBe('14:30');
23
- });
24
- (0, vitest_1.it)('should update time every second', () => {
25
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 30, 0));
26
- const { lastFrame } = (0, ink_testing_library_1.render)(react_1.default.createElement(TestComponent, null));
27
- (0, vitest_1.expect)(lastFrame()).toBe('14:30');
28
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 31, 0));
29
- (0, react_1.act)(() => {
30
- vitest_1.vi.advanceTimersByTime(1000);
31
- });
32
- (0, vitest_1.expect)(lastFrame()).toBe('14:31');
33
- });
34
- (0, vitest_1.it)('should cleanup interval on unmount', () => {
35
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 30, 0));
36
- const clearIntervalSpy = vitest_1.vi.spyOn(global, 'clearInterval');
37
- const { unmount } = (0, ink_testing_library_1.render)(react_1.default.createElement(TestComponent, null));
38
- unmount();
39
- (0, vitest_1.expect)(clearIntervalSpy).toHaveBeenCalled();
40
- clearIntervalSpy.mockRestore();
41
- });
42
- });
43
- //# sourceMappingURL=use-clock.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-clock.spec.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-clock.spec.tsx"],"names":[],"mappings":";;AAAA,iCAAmC;AACnC,mCAAyE;AACzE,6DAA6C;AAC7C,6BAA2B;AAE3B,2CAAuC;AAEvC,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAQ,GAAE,CAAC;IACxB,OAAO,8BAAC,UAAI,QAAE,IAAI,CAAQ,CAAC;AAC7B,CAAC;AAED,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,4BAAM,EAAC,8BAAC,aAAa,OAAG,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,4BAAM,EAAC,8BAAC,aAAa,OAAG,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,IAAA,WAAG,EAAC,GAAG,EAAE;YACP,WAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,WAAE,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAM,EAAC,8BAAC,aAAa,OAAG,CAAC,CAAC;QAE9C,OAAO,EAAE,CAAC;QACV,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC5C,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}