@pcircle/memesh 2.6.6 → 2.7.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 (430) hide show
  1. package/README.md +116 -54
  2. package/README.zh-TW.md +198 -33
  3. package/dist/a2a/client/A2AClient.d.ts +7 -1
  4. package/dist/a2a/client/A2AClient.d.ts.map +1 -1
  5. package/dist/a2a/client/A2AClient.js +197 -61
  6. package/dist/a2a/client/A2AClient.js.map +1 -1
  7. package/dist/a2a/constants.d.ts +34 -0
  8. package/dist/a2a/constants.d.ts.map +1 -0
  9. package/dist/a2a/constants.js +34 -0
  10. package/dist/a2a/constants.js.map +1 -0
  11. package/dist/a2a/delegator/MCPTaskDelegator.d.ts +19 -0
  12. package/dist/a2a/delegator/MCPTaskDelegator.d.ts.map +1 -0
  13. package/dist/a2a/delegator/MCPTaskDelegator.js +184 -0
  14. package/dist/a2a/delegator/MCPTaskDelegator.js.map +1 -0
  15. package/dist/a2a/delegator/index.d.ts +3 -0
  16. package/dist/a2a/delegator/index.d.ts.map +1 -0
  17. package/dist/a2a/delegator/index.js +2 -0
  18. package/dist/a2a/delegator/index.js.map +1 -0
  19. package/dist/a2a/delegator/types.d.ts +9 -0
  20. package/dist/a2a/delegator/types.d.ts.map +1 -0
  21. package/dist/a2a/delegator/types.js +2 -0
  22. package/dist/a2a/delegator/types.js.map +1 -0
  23. package/dist/a2a/errors/ErrorCodes.d.ts +26 -0
  24. package/dist/a2a/errors/ErrorCodes.d.ts.map +1 -0
  25. package/dist/a2a/errors/ErrorCodes.js +25 -0
  26. package/dist/a2a/errors/ErrorCodes.js.map +1 -0
  27. package/dist/a2a/errors/ErrorMessages.d.ts +28 -0
  28. package/dist/a2a/errors/ErrorMessages.d.ts.map +1 -0
  29. package/dist/a2a/errors/ErrorMessages.js +51 -0
  30. package/dist/a2a/errors/ErrorMessages.js.map +1 -0
  31. package/dist/a2a/errors/index.d.ts +3 -0
  32. package/dist/a2a/errors/index.d.ts.map +1 -0
  33. package/dist/a2a/errors/index.js +3 -0
  34. package/dist/a2a/errors/index.js.map +1 -0
  35. package/dist/a2a/executor/TaskExecutor.d.ts +6 -4
  36. package/dist/a2a/executor/TaskExecutor.d.ts.map +1 -1
  37. package/dist/a2a/executor/TaskExecutor.js +8 -47
  38. package/dist/a2a/executor/TaskExecutor.js.map +1 -1
  39. package/dist/a2a/jobs/TimeoutChecker.d.ts +49 -0
  40. package/dist/a2a/jobs/TimeoutChecker.d.ts.map +1 -0
  41. package/dist/a2a/jobs/TimeoutChecker.js +176 -0
  42. package/dist/a2a/jobs/TimeoutChecker.js.map +1 -0
  43. package/dist/a2a/metrics/A2AMetrics.d.ts +38 -0
  44. package/dist/a2a/metrics/A2AMetrics.d.ts.map +1 -0
  45. package/dist/a2a/metrics/A2AMetrics.js +142 -0
  46. package/dist/a2a/metrics/A2AMetrics.js.map +1 -0
  47. package/dist/a2a/metrics/index.d.ts +3 -0
  48. package/dist/a2a/metrics/index.d.ts.map +1 -0
  49. package/dist/a2a/metrics/index.js +2 -0
  50. package/dist/a2a/metrics/index.js.map +1 -0
  51. package/dist/a2a/server/A2AServer.d.ts +2 -0
  52. package/dist/a2a/server/A2AServer.d.ts.map +1 -1
  53. package/dist/a2a/server/A2AServer.js +48 -8
  54. package/dist/a2a/server/A2AServer.js.map +1 -1
  55. package/dist/a2a/server/middleware/auth.d.ts +6 -0
  56. package/dist/a2a/server/middleware/auth.d.ts.map +1 -0
  57. package/dist/a2a/server/middleware/auth.js +64 -0
  58. package/dist/a2a/server/middleware/auth.js.map +1 -0
  59. package/dist/a2a/server/middleware/csrf.d.ts +7 -0
  60. package/dist/a2a/server/middleware/csrf.d.ts.map +1 -0
  61. package/dist/a2a/server/middleware/csrf.js +169 -0
  62. package/dist/a2a/server/middleware/csrf.js.map +1 -0
  63. package/dist/a2a/server/middleware/rateLimit.d.ts +9 -0
  64. package/dist/a2a/server/middleware/rateLimit.d.ts.map +1 -0
  65. package/dist/a2a/server/middleware/rateLimit.js +192 -0
  66. package/dist/a2a/server/middleware/rateLimit.js.map +1 -0
  67. package/dist/a2a/server/middleware/resourceProtection.d.ts +17 -0
  68. package/dist/a2a/server/middleware/resourceProtection.d.ts.map +1 -0
  69. package/dist/a2a/server/middleware/resourceProtection.js +258 -0
  70. package/dist/a2a/server/middleware/resourceProtection.js.map +1 -0
  71. package/dist/a2a/server/middleware/timeout.d.ts +4 -0
  72. package/dist/a2a/server/middleware/timeout.d.ts.map +1 -0
  73. package/dist/a2a/server/middleware/timeout.js +56 -0
  74. package/dist/a2a/server/middleware/timeout.js.map +1 -0
  75. package/dist/a2a/server/middleware.d.ts.map +1 -1
  76. package/dist/a2a/server/middleware.js +9 -6
  77. package/dist/a2a/server/middleware.js.map +1 -1
  78. package/dist/a2a/server/routes.d.ts +3 -0
  79. package/dist/a2a/server/routes.d.ts.map +1 -1
  80. package/dist/a2a/server/routes.js +24 -7
  81. package/dist/a2a/server/routes.js.map +1 -1
  82. package/dist/a2a/server/validation/index.d.ts +2 -0
  83. package/dist/a2a/server/validation/index.d.ts.map +1 -0
  84. package/dist/a2a/server/validation/index.js +2 -0
  85. package/dist/a2a/server/validation/index.js.map +1 -0
  86. package/dist/a2a/server/validation/sendMessageSchema.d.ts +112 -0
  87. package/dist/a2a/server/validation/sendMessageSchema.d.ts.map +1 -0
  88. package/dist/a2a/server/validation/sendMessageSchema.js +143 -0
  89. package/dist/a2a/server/validation/sendMessageSchema.js.map +1 -0
  90. package/dist/a2a/storage/AgentRegistry.d.ts +7 -0
  91. package/dist/a2a/storage/AgentRegistry.d.ts.map +1 -1
  92. package/dist/a2a/storage/AgentRegistry.js +95 -38
  93. package/dist/a2a/storage/AgentRegistry.js.map +1 -1
  94. package/dist/a2a/storage/TaskQueue.d.ts +3 -0
  95. package/dist/a2a/storage/TaskQueue.d.ts.map +1 -1
  96. package/dist/a2a/storage/TaskQueue.js +80 -18
  97. package/dist/a2a/storage/TaskQueue.js.map +1 -1
  98. package/dist/a2a/storage/inputValidation.d.ts +18 -0
  99. package/dist/a2a/storage/inputValidation.d.ts.map +1 -0
  100. package/dist/a2a/storage/inputValidation.js +101 -0
  101. package/dist/a2a/storage/inputValidation.js.map +1 -0
  102. package/dist/a2a/storage/schemas.sql +11 -1
  103. package/dist/a2a/types/index.d.ts +1 -0
  104. package/dist/a2a/types/index.d.ts.map +1 -1
  105. package/dist/a2a/types/rateLimit.d.ts +26 -0
  106. package/dist/a2a/types/rateLimit.d.ts.map +1 -0
  107. package/dist/a2a/types/rateLimit.js +2 -0
  108. package/dist/a2a/types/rateLimit.js.map +1 -0
  109. package/dist/a2a/types/task.d.ts +1 -1
  110. package/dist/a2a/types/task.d.ts.map +1 -1
  111. package/dist/agents/E2EHealingAgent.js +1 -1
  112. package/dist/agents/E2EHealingAgent.js.map +1 -1
  113. package/dist/agents/knowledge/storage/KnowledgeGraphStore.d.ts.map +1 -1
  114. package/dist/agents/knowledge/storage/KnowledgeGraphStore.js +5 -3
  115. package/dist/agents/knowledge/storage/KnowledgeGraphStore.js.map +1 -1
  116. package/dist/cli/config.d.ts +36 -0
  117. package/dist/cli/config.d.ts.map +1 -0
  118. package/dist/cli/config.js +398 -0
  119. package/dist/cli/config.js.map +1 -0
  120. package/dist/cli/daemon.d.ts +3 -0
  121. package/dist/cli/daemon.d.ts.map +1 -0
  122. package/dist/cli/daemon.js +413 -0
  123. package/dist/cli/daemon.js.map +1 -0
  124. package/dist/cli/dashboard.d.ts +2 -0
  125. package/dist/cli/dashboard.d.ts.map +1 -0
  126. package/dist/cli/dashboard.js +300 -0
  127. package/dist/cli/dashboard.js.map +1 -0
  128. package/dist/cli/index.d.ts +3 -0
  129. package/dist/cli/index.d.ts.map +1 -0
  130. package/dist/cli/index.js +182 -0
  131. package/dist/cli/index.js.map +1 -0
  132. package/dist/cli/setup-wizard.d.ts +18 -0
  133. package/dist/cli/setup-wizard.d.ts.map +1 -0
  134. package/dist/cli/setup-wizard.js +308 -0
  135. package/dist/cli/setup-wizard.js.map +1 -0
  136. package/dist/cli/stats.d.ts +34 -0
  137. package/dist/cli/stats.d.ts.map +1 -0
  138. package/dist/cli/stats.js +479 -0
  139. package/dist/cli/stats.js.map +1 -0
  140. package/dist/cli/tutorial.d.ts +27 -0
  141. package/dist/cli/tutorial.d.ts.map +1 -0
  142. package/dist/cli/tutorial.js +430 -0
  143. package/dist/cli/tutorial.js.map +1 -0
  144. package/dist/config/index.d.ts.map +1 -1
  145. package/dist/config/index.js +8 -7
  146. package/dist/config/index.js.map +1 -1
  147. package/dist/config/simple-config.js.map +1 -1
  148. package/dist/core/BackgroundExecutor.d.ts +6 -0
  149. package/dist/core/BackgroundExecutor.d.ts.map +1 -1
  150. package/dist/core/BackgroundExecutor.js +152 -44
  151. package/dist/core/BackgroundExecutor.js.map +1 -1
  152. package/dist/core/ClaudeMdRuleExtractor.d.ts.map +1 -1
  153. package/dist/core/ClaudeMdRuleExtractor.js +9 -14
  154. package/dist/core/ClaudeMdRuleExtractor.js.map +1 -1
  155. package/dist/core/MistakePatternManager.d.ts.map +1 -1
  156. package/dist/core/MistakePatternManager.js +29 -3
  157. package/dist/core/MistakePatternManager.js.map +1 -1
  158. package/dist/core/ResourceMonitor.d.ts.map +1 -1
  159. package/dist/core/ResourceMonitor.js +64 -2
  160. package/dist/core/ResourceMonitor.js.map +1 -1
  161. package/dist/core/ResultHandler.d.ts.map +1 -1
  162. package/dist/core/ResultHandler.js +12 -0
  163. package/dist/core/ResultHandler.js.map +1 -1
  164. package/dist/core/SessionContextMonitor.d.ts.map +1 -1
  165. package/dist/core/SessionContextMonitor.js +4 -1
  166. package/dist/core/SessionContextMonitor.js.map +1 -1
  167. package/dist/core/SessionTokenTracker.d.ts.map +1 -1
  168. package/dist/core/SessionTokenTracker.js +58 -2
  169. package/dist/core/SessionTokenTracker.js.map +1 -1
  170. package/dist/db/ConnectionPool.d.ts.map +1 -1
  171. package/dist/db/ConnectionPool.js +111 -37
  172. package/dist/db/ConnectionPool.js.map +1 -1
  173. package/dist/db/QueryCache.d.ts.map +1 -1
  174. package/dist/db/QueryCache.js +8 -5
  175. package/dist/db/QueryCache.js.map +1 -1
  176. package/dist/errors/ErrorClassifier.d.ts +60 -0
  177. package/dist/errors/ErrorClassifier.d.ts.map +1 -0
  178. package/dist/errors/ErrorClassifier.js +443 -0
  179. package/dist/errors/ErrorClassifier.js.map +1 -0
  180. package/dist/errors/index.d.ts +1 -0
  181. package/dist/errors/index.d.ts.map +1 -1
  182. package/dist/errors/index.js +3 -0
  183. package/dist/errors/index.js.map +1 -1
  184. package/dist/evolution/ABTestManager.d.ts.map +1 -1
  185. package/dist/evolution/ABTestManager.js +80 -1
  186. package/dist/evolution/ABTestManager.js.map +1 -1
  187. package/dist/evolution/EvolutionBootstrap.d.ts.map +1 -1
  188. package/dist/evolution/EvolutionBootstrap.js +4 -4
  189. package/dist/evolution/EvolutionBootstrap.js.map +1 -1
  190. package/dist/evolution/FeedbackCollector.d.ts.map +1 -1
  191. package/dist/evolution/FeedbackCollector.js +6 -0
  192. package/dist/evolution/FeedbackCollector.js.map +1 -1
  193. package/dist/evolution/LearningManager.d.ts.map +1 -1
  194. package/dist/evolution/LearningManager.js +16 -0
  195. package/dist/evolution/LearningManager.js.map +1 -1
  196. package/dist/evolution/MultiObjectiveOptimizer.d.ts.map +1 -1
  197. package/dist/evolution/MultiObjectiveOptimizer.js +18 -3
  198. package/dist/evolution/MultiObjectiveOptimizer.js.map +1 -1
  199. package/dist/evolution/PerformanceTracker.d.ts.map +1 -1
  200. package/dist/evolution/PerformanceTracker.js +83 -13
  201. package/dist/evolution/PerformanceTracker.js.map +1 -1
  202. package/dist/evolution/StatisticalAnalyzer.d.ts +1 -0
  203. package/dist/evolution/StatisticalAnalyzer.d.ts.map +1 -1
  204. package/dist/evolution/StatisticalAnalyzer.js +126 -9
  205. package/dist/evolution/StatisticalAnalyzer.js.map +1 -1
  206. package/dist/evolution/instrumentation/withEvolutionTracking.d.ts.map +1 -1
  207. package/dist/evolution/instrumentation/withEvolutionTracking.js +0 -2
  208. package/dist/evolution/instrumentation/withEvolutionTracking.js.map +1 -1
  209. package/dist/evolution/storage/SQLiteStore.d.ts +1 -0
  210. package/dist/evolution/storage/SQLiteStore.d.ts.map +1 -1
  211. package/dist/evolution/storage/SQLiteStore.js +59 -12
  212. package/dist/evolution/storage/SQLiteStore.js.map +1 -1
  213. package/dist/evolution/storage/validation.d.ts +2 -3
  214. package/dist/evolution/storage/validation.d.ts.map +1 -1
  215. package/dist/evolution/storage/validation.js +2 -6
  216. package/dist/evolution/storage/validation.js.map +1 -1
  217. package/dist/hooks/a2a-collaboration.d.ts +30 -0
  218. package/dist/hooks/a2a-collaboration.d.ts.map +1 -0
  219. package/dist/hooks/a2a-collaboration.js +400 -0
  220. package/dist/hooks/a2a-collaboration.js.map +1 -0
  221. package/dist/knowledge-graph/index.d.ts +7 -1
  222. package/dist/knowledge-graph/index.d.ts.map +1 -1
  223. package/dist/knowledge-graph/index.js +335 -52
  224. package/dist/knowledge-graph/index.js.map +1 -1
  225. package/dist/knowledge-graph/types.d.ts +1 -0
  226. package/dist/knowledge-graph/types.d.ts.map +1 -1
  227. package/dist/management/UninstallManager.d.ts.map +1 -1
  228. package/dist/management/UninstallManager.js.map +1 -1
  229. package/dist/mcp/BuddyCommands.d.ts +15 -2
  230. package/dist/mcp/BuddyCommands.d.ts.map +1 -1
  231. package/dist/mcp/BuddyCommands.js +635 -52
  232. package/dist/mcp/BuddyCommands.js.map +1 -1
  233. package/dist/mcp/ServerInitializer.d.ts +7 -1
  234. package/dist/mcp/ServerInitializer.d.ts.map +1 -1
  235. package/dist/mcp/ServerInitializer.js +121 -69
  236. package/dist/mcp/ServerInitializer.js.map +1 -1
  237. package/dist/mcp/ToolDefinitions.d.ts.map +1 -1
  238. package/dist/mcp/ToolDefinitions.js +109 -18
  239. package/dist/mcp/ToolDefinitions.js.map +1 -1
  240. package/dist/mcp/ToolRouter.d.ts +6 -0
  241. package/dist/mcp/ToolRouter.d.ts.map +1 -1
  242. package/dist/mcp/ToolRouter.js +90 -2
  243. package/dist/mcp/ToolRouter.js.map +1 -1
  244. package/dist/mcp/daemon/DaemonBootstrap.d.ts +33 -0
  245. package/dist/mcp/daemon/DaemonBootstrap.d.ts.map +1 -0
  246. package/dist/mcp/daemon/DaemonBootstrap.js +155 -0
  247. package/dist/mcp/daemon/DaemonBootstrap.js.map +1 -0
  248. package/dist/mcp/daemon/DaemonLockManager.d.ts +47 -0
  249. package/dist/mcp/daemon/DaemonLockManager.d.ts.map +1 -0
  250. package/dist/mcp/daemon/DaemonLockManager.js +417 -0
  251. package/dist/mcp/daemon/DaemonLockManager.js.map +1 -0
  252. package/dist/mcp/daemon/DaemonProtocol.d.ts +127 -0
  253. package/dist/mcp/daemon/DaemonProtocol.d.ts.map +1 -0
  254. package/dist/mcp/daemon/DaemonProtocol.js +452 -0
  255. package/dist/mcp/daemon/DaemonProtocol.js.map +1 -0
  256. package/dist/mcp/daemon/DaemonSocketServer.d.ts +71 -0
  257. package/dist/mcp/daemon/DaemonSocketServer.d.ts.map +1 -0
  258. package/dist/mcp/daemon/DaemonSocketServer.js +384 -0
  259. package/dist/mcp/daemon/DaemonSocketServer.js.map +1 -0
  260. package/dist/mcp/daemon/GracefulShutdownCoordinator.d.ts +67 -0
  261. package/dist/mcp/daemon/GracefulShutdownCoordinator.d.ts.map +1 -0
  262. package/dist/mcp/daemon/GracefulShutdownCoordinator.js +206 -0
  263. package/dist/mcp/daemon/GracefulShutdownCoordinator.js.map +1 -0
  264. package/dist/mcp/daemon/IpcTransport.d.ts +42 -0
  265. package/dist/mcp/daemon/IpcTransport.d.ts.map +1 -0
  266. package/dist/mcp/daemon/IpcTransport.js +231 -0
  267. package/dist/mcp/daemon/IpcTransport.js.map +1 -0
  268. package/dist/mcp/daemon/StdioProxyClient.d.ts +84 -0
  269. package/dist/mcp/daemon/StdioProxyClient.d.ts.map +1 -0
  270. package/dist/mcp/daemon/StdioProxyClient.js +560 -0
  271. package/dist/mcp/daemon/StdioProxyClient.js.map +1 -0
  272. package/dist/mcp/daemon/VersionManager.d.ts +35 -0
  273. package/dist/mcp/daemon/VersionManager.d.ts.map +1 -0
  274. package/dist/mcp/daemon/VersionManager.js +169 -0
  275. package/dist/mcp/daemon/VersionManager.js.map +1 -0
  276. package/dist/mcp/daemon/index.d.ts +9 -0
  277. package/dist/mcp/daemon/index.d.ts.map +1 -0
  278. package/dist/mcp/daemon/index.js +9 -0
  279. package/dist/mcp/daemon/index.js.map +1 -0
  280. package/dist/mcp/handlers/A2AToolHandlers.d.ts.map +1 -1
  281. package/dist/mcp/handlers/A2AToolHandlers.js +24 -4
  282. package/dist/mcp/handlers/A2AToolHandlers.js.map +1 -1
  283. package/dist/mcp/handlers/ToolHandlers.d.ts.map +1 -1
  284. package/dist/mcp/handlers/ToolHandlers.js.map +1 -1
  285. package/dist/mcp/resources/best-practices.md +1 -1
  286. package/dist/mcp/resources/buddy-do-skill.md +1 -1
  287. package/dist/mcp/resources/examples.md +1 -1
  288. package/dist/mcp/resources/quick-reference.md +1 -1
  289. package/dist/mcp/resources/usage-guide.md +2 -2
  290. package/dist/mcp/schemas/OutputSchemas.d.ts +16 -0
  291. package/dist/mcp/schemas/OutputSchemas.d.ts.map +1 -1
  292. package/dist/mcp/schemas/OutputSchemas.js +12 -0
  293. package/dist/mcp/schemas/OutputSchemas.js.map +1 -1
  294. package/dist/mcp/server-bootstrap.js +245 -29
  295. package/dist/mcp/server-bootstrap.js.map +1 -1
  296. package/dist/mcp/server.d.ts +11 -1
  297. package/dist/mcp/server.d.ts.map +1 -1
  298. package/dist/mcp/server.js +196 -9
  299. package/dist/mcp/server.js.map +1 -1
  300. package/dist/mcp/tools/a2a-list-tasks.d.ts +13 -0
  301. package/dist/mcp/tools/a2a-list-tasks.d.ts.map +1 -0
  302. package/dist/mcp/tools/a2a-list-tasks.js +24 -0
  303. package/dist/mcp/tools/a2a-list-tasks.js.map +1 -0
  304. package/dist/mcp/tools/a2a-report-result.d.ts +35 -0
  305. package/dist/mcp/tools/a2a-report-result.d.ts.map +1 -0
  306. package/dist/mcp/tools/a2a-report-result.js +73 -0
  307. package/dist/mcp/tools/a2a-report-result.js.map +1 -0
  308. package/dist/mcp/tools/buddy-do.d.ts.map +1 -1
  309. package/dist/mcp/tools/buddy-do.js +10 -2
  310. package/dist/mcp/tools/buddy-do.js.map +1 -1
  311. package/dist/mcp/tools/buddy-help.d.ts.map +1 -1
  312. package/dist/mcp/tools/buddy-help.js +6 -14
  313. package/dist/mcp/tools/buddy-help.js.map +1 -1
  314. package/dist/mcp/validation.d.ts +1 -1
  315. package/dist/memory/AutoMemoryRecorder.d.ts +35 -0
  316. package/dist/memory/AutoMemoryRecorder.d.ts.map +1 -0
  317. package/dist/memory/AutoMemoryRecorder.js +164 -0
  318. package/dist/memory/AutoMemoryRecorder.js.map +1 -0
  319. package/dist/memory/AutoTagger.d.ts +9 -0
  320. package/dist/memory/AutoTagger.d.ts.map +1 -0
  321. package/dist/memory/AutoTagger.js +149 -0
  322. package/dist/memory/AutoTagger.js.map +1 -0
  323. package/dist/memory/MistakePatternEngine.d.ts.map +1 -1
  324. package/dist/memory/MistakePatternEngine.js.map +1 -1
  325. package/dist/memory/ProjectMemoryCleanup.js +1 -1
  326. package/dist/memory/SecretManager.d.ts.map +1 -1
  327. package/dist/memory/SecretManager.js +48 -15
  328. package/dist/memory/SecretManager.js.map +1 -1
  329. package/dist/memory/SmartMemoryQuery.d.ts +9 -0
  330. package/dist/memory/SmartMemoryQuery.d.ts.map +1 -0
  331. package/dist/memory/SmartMemoryQuery.js +65 -0
  332. package/dist/memory/SmartMemoryQuery.js.map +1 -0
  333. package/dist/memory/UnifiedMemoryStore.d.ts +1 -0
  334. package/dist/memory/UnifiedMemoryStore.d.ts.map +1 -1
  335. package/dist/memory/UnifiedMemoryStore.js +211 -38
  336. package/dist/memory/UnifiedMemoryStore.js.map +1 -1
  337. package/dist/memory/UserPreferenceEngine.d.ts.map +1 -1
  338. package/dist/memory/UserPreferenceEngine.js +6 -5
  339. package/dist/memory/UserPreferenceEngine.js.map +1 -1
  340. package/dist/memory/types/unified-memory.d.ts +2 -0
  341. package/dist/memory/types/unified-memory.d.ts.map +1 -1
  342. package/dist/memory/types/unified-memory.js +2 -0
  343. package/dist/memory/types/unified-memory.js.map +1 -1
  344. package/dist/orchestrator/AgentRouter.d.ts.map +1 -1
  345. package/dist/orchestrator/AgentRouter.js +5 -4
  346. package/dist/orchestrator/AgentRouter.js.map +1 -1
  347. package/dist/orchestrator/CostTracker.d.ts.map +1 -1
  348. package/dist/orchestrator/CostTracker.js.map +1 -1
  349. package/dist/orchestrator/GlobalResourcePool.d.ts.map +1 -1
  350. package/dist/orchestrator/GlobalResourcePool.js +70 -3
  351. package/dist/orchestrator/GlobalResourcePool.js.map +1 -1
  352. package/dist/ui/AsciiProgressBar.d.ts.map +1 -1
  353. package/dist/ui/AsciiProgressBar.js +0 -1
  354. package/dist/ui/AsciiProgressBar.js.map +1 -1
  355. package/dist/ui/AttributionManager.js +2 -2
  356. package/dist/ui/AttributionManager.js.map +1 -1
  357. package/dist/ui/Dashboard.d.ts.map +1 -1
  358. package/dist/ui/Dashboard.js +2 -2
  359. package/dist/ui/Dashboard.js.map +1 -1
  360. package/dist/ui/MetricsStore.d.ts.map +1 -1
  361. package/dist/ui/MetricsStore.js +2 -2
  362. package/dist/ui/MetricsStore.js.map +1 -1
  363. package/dist/ui/ProgressIndicator.d.ts +35 -0
  364. package/dist/ui/ProgressIndicator.d.ts.map +1 -0
  365. package/dist/ui/ProgressIndicator.js +177 -0
  366. package/dist/ui/ProgressIndicator.js.map +1 -0
  367. package/dist/ui/ResponseFormatter.d.ts +8 -0
  368. package/dist/ui/ResponseFormatter.d.ts.map +1 -1
  369. package/dist/ui/ResponseFormatter.js +220 -35
  370. package/dist/ui/ResponseFormatter.js.map +1 -1
  371. package/dist/ui/design-tokens.d.ts +37 -0
  372. package/dist/ui/design-tokens.d.ts.map +1 -0
  373. package/dist/ui/design-tokens.js +105 -0
  374. package/dist/ui/design-tokens.js.map +1 -0
  375. package/dist/ui/theme.d.ts +14 -4
  376. package/dist/ui/theme.d.ts.map +1 -1
  377. package/dist/ui/theme.js +7 -2
  378. package/dist/ui/theme.js.map +1 -1
  379. package/dist/utils/PathResolver.d.ts.map +1 -1
  380. package/dist/utils/PathResolver.js +3 -2
  381. package/dist/utils/PathResolver.js.map +1 -1
  382. package/dist/utils/SystemResources.d.ts.map +1 -1
  383. package/dist/utils/SystemResources.js +9 -14
  384. package/dist/utils/SystemResources.js.map +1 -1
  385. package/dist/utils/errorHandler.d.ts +6 -0
  386. package/dist/utils/errorHandler.d.ts.map +1 -1
  387. package/dist/utils/errorHandler.js +50 -1
  388. package/dist/utils/errorHandler.js.map +1 -1
  389. package/dist/utils/index.d.ts +19 -0
  390. package/dist/utils/index.d.ts.map +1 -0
  391. package/dist/utils/index.js +17 -0
  392. package/dist/utils/index.js.map +1 -0
  393. package/dist/utils/json.d.ts.map +1 -1
  394. package/dist/utils/json.js +11 -1
  395. package/dist/utils/json.js.map +1 -1
  396. package/dist/utils/logger.d.ts.map +1 -1
  397. package/dist/utils/logger.js +65 -3
  398. package/dist/utils/logger.js.map +1 -1
  399. package/dist/utils/lru-cache.d.ts +7 -0
  400. package/dist/utils/lru-cache.d.ts.map +1 -1
  401. package/dist/utils/lru-cache.js +37 -7
  402. package/dist/utils/lru-cache.js.map +1 -1
  403. package/dist/utils/safeMath.d.ts +11 -0
  404. package/dist/utils/safeMath.d.ts.map +1 -0
  405. package/dist/utils/safeMath.js +92 -0
  406. package/dist/utils/safeMath.js.map +1 -0
  407. package/dist/utils/toonify-adapter.d.ts.map +1 -1
  408. package/dist/utils/toonify-adapter.js.map +1 -1
  409. package/dist/utils/tracing/TraceContext.d.ts +23 -0
  410. package/dist/utils/tracing/TraceContext.d.ts.map +1 -0
  411. package/dist/utils/tracing/TraceContext.js +127 -0
  412. package/dist/utils/tracing/TraceContext.js.map +1 -0
  413. package/dist/utils/tracing/index.d.ts +3 -0
  414. package/dist/utils/tracing/index.d.ts.map +1 -0
  415. package/dist/utils/tracing/index.js +3 -0
  416. package/dist/utils/tracing/index.js.map +1 -0
  417. package/dist/utils/tracing/middleware.d.ts +15 -0
  418. package/dist/utils/tracing/middleware.d.ts.map +1 -0
  419. package/dist/utils/tracing/middleware.js +49 -0
  420. package/dist/utils/tracing/middleware.js.map +1 -0
  421. package/dist/utils/validation.d.ts +12 -0
  422. package/dist/utils/validation.d.ts.map +1 -0
  423. package/dist/utils/validation.js +87 -0
  424. package/dist/utils/validation.js.map +1 -0
  425. package/mcp.json +10 -0
  426. package/package.json +10 -2
  427. package/plugin.json +2 -12
  428. package/scripts/postinstall.js +192 -21
  429. package/README.md.backup +0 -536
  430. package/README.zh-TW.md.backup +0 -446
@@ -0,0 +1,384 @@
1
+ import crypto from 'crypto';
2
+ import { EventEmitter } from 'events';
3
+ import { MessageType, parseMessage, serializeMessage, createHandshakeAck, createMcpResponse, createError, createShutdown, MESSAGE_DELIMITER, } from './DaemonProtocol.js';
4
+ import { DaemonLockManager } from './DaemonLockManager.js';
5
+ import { compareVersions } from './VersionManager.js';
6
+ import { logger } from '../../utils/logger.js';
7
+ export const ErrorCodes = {
8
+ INVALID_MESSAGE: 'INVALID_MESSAGE',
9
+ HANDSHAKE_REQUIRED: 'HANDSHAKE_REQUIRED',
10
+ UNKNOWN_MESSAGE_TYPE: 'UNKNOWN_MESSAGE_TYPE',
11
+ NO_HANDLER: 'NO_HANDLER',
12
+ HANDLER_ERROR: 'HANDLER_ERROR',
13
+ BUFFER_OVERFLOW: 'BUFFER_OVERFLOW',
14
+ HANDSHAKE_TIMEOUT: 'HANDSHAKE_TIMEOUT',
15
+ };
16
+ const DEFAULT_MAX_BUFFER_SIZE = 10 * 1024 * 1024;
17
+ const DEFAULT_HANDSHAKE_TIMEOUT = 10000;
18
+ export class DaemonSocketServer extends EventEmitter {
19
+ config;
20
+ server = null;
21
+ clients = new Map();
22
+ mcpHandler = null;
23
+ startTime = 0;
24
+ requestsProcessed = 0;
25
+ isRunning = false;
26
+ heartbeatCheckInterval = null;
27
+ constructor(config) {
28
+ super();
29
+ this.config = {
30
+ transport: config.transport,
31
+ version: config.version,
32
+ heartbeatInterval: config.heartbeatInterval ?? 30000,
33
+ heartbeatTimeout: config.heartbeatTimeout ?? 60000,
34
+ maxBufferSize: config.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE,
35
+ handshakeTimeout: config.handshakeTimeout ?? DEFAULT_HANDSHAKE_TIMEOUT,
36
+ };
37
+ }
38
+ async start() {
39
+ if (this.isRunning) {
40
+ throw new Error('DaemonSocketServer is already running');
41
+ }
42
+ this.server = this.config.transport.createServer();
43
+ this.startTime = Date.now();
44
+ this.server.on('connection', (socket) => this.handleConnection(socket));
45
+ this.server.on('error', (error) => {
46
+ logger.error('[DaemonSocketServer] Server error', {
47
+ error: error.message,
48
+ });
49
+ });
50
+ await this.config.transport.listen(this.server);
51
+ this.isRunning = true;
52
+ this.startHeartbeatCheck();
53
+ logger.info('[DaemonSocketServer] Server started', {
54
+ version: this.config.version,
55
+ });
56
+ }
57
+ async stop() {
58
+ if (!this.isRunning) {
59
+ return;
60
+ }
61
+ this.isRunning = false;
62
+ this.stopHeartbeatCheck();
63
+ const shutdownMsg = createShutdown('user_requested', 5000);
64
+ for (const [, clientState] of this.clients) {
65
+ try {
66
+ this.sendMessage(clientState.socket, shutdownMsg);
67
+ clientState.socket.destroy();
68
+ }
69
+ catch {
70
+ }
71
+ }
72
+ this.clients.clear();
73
+ if (this.server) {
74
+ await new Promise((resolve) => {
75
+ this.server.close(() => resolve());
76
+ });
77
+ this.server = null;
78
+ }
79
+ logger.info('[DaemonSocketServer] Server stopped');
80
+ }
81
+ getClientCount() {
82
+ return this.clients.size;
83
+ }
84
+ getClients() {
85
+ return Array.from(this.clients.values()).map((state) => ({
86
+ clientId: state.clientId,
87
+ version: state.version,
88
+ protocolVersion: state.protocolVersion,
89
+ capabilities: state.capabilities,
90
+ pid: state.pid,
91
+ connectedAt: state.connectedAt,
92
+ lastActivity: state.lastActivity,
93
+ handshakeComplete: state.handshakeComplete,
94
+ }));
95
+ }
96
+ disconnectClient(clientId) {
97
+ const clientState = this.clients.get(clientId);
98
+ if (clientState) {
99
+ logger.info('[DaemonSocketServer] Disconnecting client', { clientId });
100
+ this.clearHandshakeTimer(clientState);
101
+ clientState.socket.destroy();
102
+ }
103
+ }
104
+ setMcpHandler(handler) {
105
+ this.mcpHandler = handler;
106
+ }
107
+ on(event, listener) {
108
+ return super.on(event, listener);
109
+ }
110
+ emit(event, ...args) {
111
+ return super.emit(event, ...args);
112
+ }
113
+ handleConnection(socket) {
114
+ const tempId = `temp-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
115
+ logger.debug('[DaemonSocketServer] New connection', { tempId });
116
+ const clientState = {
117
+ clientId: tempId,
118
+ version: '',
119
+ protocolVersion: 0,
120
+ capabilities: [],
121
+ pid: 0,
122
+ connectedAt: Date.now(),
123
+ lastActivity: Date.now(),
124
+ handshakeComplete: false,
125
+ socket,
126
+ buffer: '',
127
+ handshakeTimer: null,
128
+ };
129
+ this.clients.set(tempId, clientState);
130
+ clientState.handshakeTimer = setTimeout(() => {
131
+ if (!clientState.handshakeComplete) {
132
+ logger.warn('[DaemonSocketServer] Handshake timeout, disconnecting', {
133
+ clientId: clientState.clientId,
134
+ timeout: this.config.handshakeTimeout,
135
+ });
136
+ this.sendError(socket, ErrorCodes.HANDSHAKE_TIMEOUT, `Handshake not completed within ${this.config.handshakeTimeout}ms`, undefined, undefined, clientState.clientId);
137
+ socket.destroy();
138
+ }
139
+ }, this.config.handshakeTimeout);
140
+ socket.on('data', (data) => {
141
+ this.handleData(clientState, data);
142
+ });
143
+ socket.on('close', () => {
144
+ this.handleDisconnect(clientState);
145
+ });
146
+ socket.on('error', (error) => {
147
+ logger.warn('[DaemonSocketServer] Socket error', {
148
+ clientId: clientState.clientId,
149
+ error: error.message,
150
+ });
151
+ });
152
+ }
153
+ handleData(clientState, data) {
154
+ clientState.lastActivity = Date.now();
155
+ const dataStr = data.toString();
156
+ const incomingSize = Buffer.byteLength(dataStr, 'utf8');
157
+ const currentSize = Buffer.byteLength(clientState.buffer, 'utf8');
158
+ if (currentSize + incomingSize > this.config.maxBufferSize) {
159
+ logger.error('[DaemonSocketServer] Buffer overflow - clearing buffer to recover', {
160
+ clientId: clientState.clientId,
161
+ currentBufferSize: currentSize,
162
+ incomingDataSize: incomingSize,
163
+ maxBufferSize: this.config.maxBufferSize,
164
+ bufferPreview: clientState.buffer.slice(0, 200),
165
+ });
166
+ clientState.buffer = '';
167
+ this.sendError(clientState.socket, ErrorCodes.BUFFER_OVERFLOW, `Buffer overflow: buffer size (${currentSize}) + incoming data (${incomingSize}) ` +
168
+ `exceeds limit (${this.config.maxBufferSize}). Buffer cleared.`, undefined, undefined, clientState.clientId);
169
+ return;
170
+ }
171
+ clientState.buffer += dataStr;
172
+ const lines = clientState.buffer.split(MESSAGE_DELIMITER);
173
+ clientState.buffer = lines.pop() || '';
174
+ for (const line of lines) {
175
+ if (!line.trim())
176
+ continue;
177
+ const message = parseMessage(line);
178
+ if (!message) {
179
+ this.sendError(clientState.socket, ErrorCodes.INVALID_MESSAGE, 'Invalid JSON message', undefined, undefined, clientState.clientId);
180
+ continue;
181
+ }
182
+ this.handleMessage(clientState, message);
183
+ }
184
+ }
185
+ handleMessage(clientState, message) {
186
+ if (!clientState.handshakeComplete && message.type !== MessageType.HANDSHAKE) {
187
+ this.sendError(clientState.socket, ErrorCodes.HANDSHAKE_REQUIRED, 'Handshake required before other messages', undefined, undefined, clientState.clientId);
188
+ return;
189
+ }
190
+ switch (message.type) {
191
+ case MessageType.HANDSHAKE:
192
+ this.handleHandshake(clientState, message);
193
+ break;
194
+ case MessageType.HEARTBEAT:
195
+ this.handleHeartbeat(clientState, message);
196
+ break;
197
+ case MessageType.MCP_REQUEST: {
198
+ const mcpMessage = message;
199
+ this.handleMcpRequest(clientState, mcpMessage).catch((err) => {
200
+ const errorMessage = err instanceof Error ? err.message : String(err);
201
+ logger.error('[DaemonSocketServer] Unhandled MCP request error', {
202
+ clientId: clientState.clientId,
203
+ requestId: mcpMessage.requestId,
204
+ error: errorMessage,
205
+ });
206
+ this.sendError(clientState.socket, ErrorCodes.HANDLER_ERROR, `Unhandled MCP request error: ${errorMessage}`, undefined, mcpMessage.requestId, clientState.clientId);
207
+ });
208
+ break;
209
+ }
210
+ case MessageType.DISCONNECT:
211
+ this.handleDisconnectMessage(clientState, message);
212
+ break;
213
+ case MessageType.REQUEST_UPGRADE:
214
+ this.handleUpgradeRequest(clientState, message);
215
+ break;
216
+ default:
217
+ this.sendError(clientState.socket, ErrorCodes.UNKNOWN_MESSAGE_TYPE, `Unknown message type: ${message.type}`, undefined, undefined, clientState.clientId);
218
+ }
219
+ }
220
+ handleHandshake(clientState, message) {
221
+ this.clearHandshakeTimer(clientState);
222
+ const requestedId = message.clientId;
223
+ let assignedId = requestedId;
224
+ if (this.clients.has(requestedId) && this.clients.get(requestedId) !== clientState) {
225
+ do {
226
+ assignedId = `${requestedId}-${Date.now().toString(36)}-${crypto.randomBytes(4).toString('hex')}`;
227
+ } while (this.clients.has(assignedId));
228
+ logger.debug('[DaemonSocketServer] Duplicate clientId, assigning new', {
229
+ requestedId,
230
+ assignedId,
231
+ });
232
+ }
233
+ const tempId = clientState.clientId;
234
+ this.clients.delete(tempId);
235
+ clientState.clientId = assignedId;
236
+ clientState.version = message.clientVersion;
237
+ clientState.protocolVersion = message.protocolVersion;
238
+ clientState.capabilities = message.capabilities;
239
+ clientState.pid = message.pid;
240
+ clientState.handshakeComplete = true;
241
+ this.clients.set(assignedId, clientState);
242
+ const upgradeRecommended = compareVersions(message.clientVersion, this.config.version) > 0;
243
+ const ack = createHandshakeAck(true, this.config.version, assignedId, upgradeRecommended);
244
+ this.sendMessage(clientState.socket, ack);
245
+ this.updateLockClientCount();
246
+ this.emit('client_connect', {
247
+ clientId: assignedId,
248
+ version: clientState.version,
249
+ protocolVersion: clientState.protocolVersion,
250
+ capabilities: clientState.capabilities,
251
+ pid: clientState.pid,
252
+ connectedAt: clientState.connectedAt,
253
+ lastActivity: clientState.lastActivity,
254
+ handshakeComplete: true,
255
+ });
256
+ logger.info('[DaemonSocketServer] Client connected', {
257
+ clientId: assignedId,
258
+ version: clientState.version,
259
+ upgradeRecommended,
260
+ });
261
+ }
262
+ handleHeartbeat(clientState, message) {
263
+ const ack = {
264
+ type: MessageType.HEARTBEAT_ACK,
265
+ timestamp: Date.now(),
266
+ clientId: clientState.clientId,
267
+ stats: {
268
+ clientCount: this.clients.size,
269
+ uptime: Date.now() - this.startTime,
270
+ requestsProcessed: this.requestsProcessed,
271
+ },
272
+ };
273
+ this.sendMessage(clientState.socket, ack);
274
+ }
275
+ async handleMcpRequest(clientState, message) {
276
+ const { requestId, clientId, payload } = message;
277
+ if (!this.mcpHandler) {
278
+ this.sendError(clientState.socket, ErrorCodes.NO_HANDLER, 'No MCP handler registered', undefined, requestId, clientId);
279
+ return;
280
+ }
281
+ try {
282
+ const result = await this.mcpHandler(payload);
283
+ this.requestsProcessed++;
284
+ const response = createMcpResponse(requestId, clientId, result);
285
+ this.sendMessage(clientState.socket, response);
286
+ }
287
+ catch (error) {
288
+ const errorMessage = error instanceof Error ? error.message : String(error);
289
+ this.sendError(clientState.socket, ErrorCodes.HANDLER_ERROR, `MCP handler error: ${errorMessage}`, undefined, requestId, clientId);
290
+ }
291
+ }
292
+ handleDisconnectMessage(clientState, message) {
293
+ logger.info('[DaemonSocketServer] Client disconnect message', {
294
+ clientId: clientState.clientId,
295
+ reason: message.reason,
296
+ });
297
+ clientState.socket.destroy();
298
+ }
299
+ handleUpgradeRequest(clientState, message) {
300
+ logger.info('[DaemonSocketServer] Upgrade requested', {
301
+ clientId: clientState.clientId,
302
+ newVersion: message.newVersion,
303
+ reason: message.reason,
304
+ });
305
+ this.emit('upgrade_requested', message);
306
+ }
307
+ handleDisconnect(clientState) {
308
+ const clientId = clientState.clientId;
309
+ this.clearHandshakeTimer(clientState);
310
+ if (this.clients.has(clientId)) {
311
+ this.clients.delete(clientId);
312
+ if (clientState.handshakeComplete) {
313
+ this.updateLockClientCount();
314
+ this.emit('client_disconnect', clientId);
315
+ logger.info('[DaemonSocketServer] Client disconnected', { clientId });
316
+ }
317
+ }
318
+ }
319
+ clearHandshakeTimer(clientState) {
320
+ if (clientState.handshakeTimer) {
321
+ clearTimeout(clientState.handshakeTimer);
322
+ clientState.handshakeTimer = null;
323
+ }
324
+ }
325
+ sendMessage(socket, message) {
326
+ try {
327
+ socket.write(serializeMessage(message));
328
+ }
329
+ catch (error) {
330
+ logger.warn('[DaemonSocketServer] Failed to send message', {
331
+ error: error instanceof Error ? error.message : String(error),
332
+ });
333
+ }
334
+ }
335
+ sendError(socket, code, message, details, requestId, clientId) {
336
+ const errorMsg = createError(code, message, details, requestId, clientId);
337
+ this.sendMessage(socket, errorMsg);
338
+ }
339
+ async updateLockClientCount() {
340
+ try {
341
+ await DaemonLockManager.updateLock({ clientCount: this.clients.size });
342
+ }
343
+ catch (error) {
344
+ logger.warn('[DaemonSocketServer] Failed to update lock file', {
345
+ error: error instanceof Error ? error.message : String(error),
346
+ });
347
+ }
348
+ }
349
+ startHeartbeatCheck() {
350
+ if (this.heartbeatCheckInterval) {
351
+ logger.warn('[DaemonSocketServer] Heartbeat check already running, skipping');
352
+ return;
353
+ }
354
+ this.heartbeatCheckInterval = setInterval(() => {
355
+ if (!this.isRunning) {
356
+ this.stopHeartbeatCheck();
357
+ return;
358
+ }
359
+ const now = Date.now();
360
+ const timeout = this.config.heartbeatTimeout;
361
+ for (const [clientId, clientState] of this.clients) {
362
+ if (clientState.handshakeComplete) {
363
+ const timeSinceActivity = now - clientState.lastActivity;
364
+ if (timeSinceActivity > timeout) {
365
+ logger.warn('[DaemonSocketServer] Client heartbeat timeout', {
366
+ clientId,
367
+ timeSinceActivity,
368
+ timeout,
369
+ });
370
+ this.disconnectClient(clientId);
371
+ }
372
+ }
373
+ }
374
+ }, this.config.heartbeatInterval);
375
+ this.heartbeatCheckInterval.unref();
376
+ }
377
+ stopHeartbeatCheck() {
378
+ if (this.heartbeatCheckInterval) {
379
+ clearInterval(this.heartbeatCheckInterval);
380
+ this.heartbeatCheckInterval = null;
381
+ }
382
+ }
383
+ }
384
+ //# sourceMappingURL=DaemonSocketServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaemonSocketServer.js","sourceRoot":"","sources":["../../../src/mcp/daemon/DaemonSocketServer.ts"],"names":[],"mappings":"AAeA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,iBAAiB,GAQlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK/C,MAAM,CAAC,MAAM,UAAU,GAAG;IAExB,eAAe,EAAE,iBAAiB;IAElC,kBAAkB,EAAE,oBAAoB;IAExC,oBAAoB,EAAE,sBAAsB;IAE5C,UAAU,EAAE,YAAY;IAExB,aAAa,EAAE,eAAe;IAE9B,eAAe,EAAE,iBAAiB;IAElC,iBAAiB,EAAE,mBAAmB;CAC9B,CAAC;AAGX,MAAM,uBAAuB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAGjD,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAqFxC,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAC1C,MAAM,CAAqC;IAC3C,MAAM,GAAsB,IAAI,CAAC;IACjC,OAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC9C,UAAU,GAAsB,IAAI,CAAC;IACrC,SAAS,GAAW,CAAC,CAAC;IACtB,iBAAiB,GAAW,CAAC,CAAC;IAC9B,SAAS,GAAY,KAAK,CAAC;IAC3B,sBAAsB,GAA0B,IAAI,CAAC;IAE7D,YAAY,MAAgC;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,KAAK;YACpD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,KAAK;YAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,uBAAuB;YAC9D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,yBAAyB;SACvE,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAG5B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAGxE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBAChD,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAGH,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAGtB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE;YACjD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAC;IACL,CAAC;IAKD,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAGD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAGvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAG1B,MAAM,WAAW,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAE3D,KAAK,MAAM,CAAC,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAClD,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAGrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IAgBD,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAkBD,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;SAC3C,CAAC,CAAC,CAAC;IACN,CAAC;IAgBD,gBAAgB,CAAC,QAAgB;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAE/B,CAAC;IACH,CAAC;IAKD,aAAa,CAAC,OAAmB;QAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC5B,CAAC;IAGD,EAAE,CACA,KAAQ,EACR,QAAqC;QAErC,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CACF,KAAQ,EACR,GAAG,IAA6C;QAEhD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;IASO,gBAAgB,CAAC,MAAkB;QACzC,MAAM,MAAM,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAE9E,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAGhE,MAAM,WAAW,GAAgB;YAC/B,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,EAAE;YAChB,GAAG,EAAE,CAAC;YACN,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;YACxB,iBAAiB,EAAE,KAAK;YACxB,MAAM;YACN,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,IAAI;SACrB,CAAC;QAGF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAGtC,WAAW,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3C,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE;oBACnE,QAAQ,EAAE,WAAW,CAAC,QAAQ;oBAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,SAAS,CACZ,MAAM,EACN,UAAU,CAAC,iBAAiB,EAC5B,kCAAkC,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAClE,SAAS,EACT,SAAS,EACT,WAAW,CAAC,QAAQ,CACrB,CAAC;gBACF,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAGjC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAGH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAGH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBAC/C,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAQO,UAAU,CAAC,WAAwB,EAAE,IAAY;QACvD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAGlE,IAAI,WAAW,GAAG,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,mEAAmE,EAAE;gBAChF,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,iBAAiB,EAAE,WAAW;gBAC9B,gBAAgB,EAAE,YAAY;gBAC9B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBACxC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;aAChD,CAAC,CAAC;YAGH,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;YAGxB,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,eAAe,EAC1B,iCAAiC,WAAW,sBAAsB,YAAY,IAAI;gBAChF,kBAAkB,IAAI,CAAC,MAAM,CAAC,aAAa,oBAAoB,EACjE,SAAS,EACT,SAAS,EACT,WAAW,CAAC,QAAQ,CACrB,CAAC;YAGF,OAAO;QACT,CAAC;QAED,WAAW,CAAC,MAAM,IAAI,OAAO,CAAC;QAG9B,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAG1D,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAE3B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,eAAe,EAC1B,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,WAAW,CAAC,QAAQ,CACrB,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAKO,aAAa,CAAC,WAAwB,EAAE,OAAsB;QAEpE,IAAI,CAAC,WAAW,CAAC,iBAAiB,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC7E,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,kBAAkB,EAC7B,0CAA0C,EAC1C,SAAS,EACT,SAAS,EACT,WAAW,CAAC,QAAQ,CACrB,CAAC;YACF,OAAO;QACT,CAAC;QAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,WAAW,CAAC,SAAS;gBACxB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAA2B,CAAC,CAAC;gBAC/D,MAAM;YAER,KAAK,WAAW,CAAC,SAAS;gBACxB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAA2B,CAAC,CAAC;gBAC/D,MAAM;YAER,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC7B,MAAM,UAAU,GAAG,OAA4B,CAAC;gBAChD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC3D,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtE,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE;wBAC/D,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,KAAK,EAAE,YAAY;qBACpB,CAAC,CAAC;oBAEH,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,aAAa,EACxB,gCAAgC,YAAY,EAAE,EAC9C,SAAS,EACT,UAAU,CAAC,SAAS,EACpB,WAAW,CAAC,QAAQ,CACrB,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,UAAU;gBACzB,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAA4B,CAAC,CAAC;gBACxE,MAAM;YAER,KAAK,WAAW,CAAC,eAAe;gBAC9B,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAgC,CAAC,CAAC;gBACzE,MAAM;YAER;gBACE,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,oBAAoB,EAC/B,yBAAyB,OAAO,CAAC,IAAI,EAAE,EACvC,SAAS,EACT,SAAS,EACT,WAAW,CAAC,QAAQ,CACrB,CAAC;QACN,CAAC;IACH,CAAC;IAKO,eAAe,CAAC,WAAwB,EAAE,OAAyB;QAEzE,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,IAAI,UAAU,GAAG,WAAW,CAAC;QAG7B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,WAAW,EAAE,CAAC;YAGnF,GAAG,CAAC;gBACF,UAAU,GAAG,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpG,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAEvC,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE;gBACrE,WAAW;gBACX,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAG5B,WAAW,CAAC,QAAQ,GAAG,UAAU,CAAC;QAClC,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QACtD,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAChD,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAC9B,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAG1C,MAAM,kBAAkB,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAG3F,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAE1F,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAG1C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAG7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;YACnD,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC;IAKO,eAAe,CAAC,WAAwB,EAAE,OAAyB;QACzE,MAAM,GAAG,GAAwB;YAC/B,IAAI,EAAE,WAAW,CAAC,aAAa;YAC/B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;gBACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C;SACF,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAC5B,WAAwB,EACxB,OAA0B;QAE1B,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,UAAU,EACrB,2BAA2B,EAC3B,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjD,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,IAAI,CAAC,SAAS,CACZ,WAAW,CAAC,MAAM,EAClB,UAAU,CAAC,aAAa,EACxB,sBAAsB,YAAY,EAAE,EACpC,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAKO,uBAAuB,CAC7B,WAAwB,EACxB,OAA0B;QAE1B,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;YAC5D,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAGH,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAE/B,CAAC;IAKO,oBAAoB,CAC1B,WAAwB,EACxB,OAA8B;QAE9B,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE;YACpD,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAKO,gBAAgB,CAAC,WAAwB;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QAGtC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE9B,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;gBAElC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAG7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;gBAEzC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAKO,mBAAmB,CAAC,WAAwB;QAClD,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YACzC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAKO,WAAW,CAAC,MAAkB,EAAE,OAAsB;QAC5D,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE;gBACzD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKO,SAAS,CACf,MAAkB,EAClB,IAAY,EACZ,OAAe,EACf,OAAiB,EACjB,SAAkB,EAClB,QAAiB;QAEjB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAKO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;gBAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKO,mBAAmB;QAEzB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;YAE7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAE7C,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnD,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;oBAClC,MAAM,iBAAiB,GAAG,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC;oBAEzD,IAAI,iBAAiB,GAAG,OAAO,EAAE,CAAC;wBAChC,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE;4BAC3D,QAAQ;4BACR,iBAAiB;4BACjB,OAAO;yBACR,CAAC,CAAC;wBAGH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAIlC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;IACtC,CAAC;IAKO,kBAAkB;QACxB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,67 @@
1
+ export interface RequestInfo {
2
+ requestId: string;
3
+ clientId: string;
4
+ startTime: number;
5
+ }
6
+ export declare enum ShutdownReason {
7
+ UPGRADE = "upgrade",
8
+ USER_REQUESTED = "user_requested",
9
+ IDLE_TIMEOUT = "idle_timeout",
10
+ ERROR = "error"
11
+ }
12
+ type ShutdownNotification = {
13
+ type: 'shutdown';
14
+ reason: ShutdownReason;
15
+ gracePeriod: number;
16
+ timestamp: number;
17
+ };
18
+ type UpgradePendingNotification = {
19
+ type: 'upgrade_pending';
20
+ newVersion: string;
21
+ estimatedShutdownTime: number;
22
+ initiatorClientId: string;
23
+ timestamp: number;
24
+ };
25
+ export type CoordinatorNotification = ShutdownNotification | UpgradePendingNotification;
26
+ export interface ShutdownConfig {
27
+ maxWaitTime: number;
28
+ checkInterval: number;
29
+ notifyClients: (message: CoordinatorNotification) => Promise<void>;
30
+ }
31
+ export interface ShutdownMetrics {
32
+ totalRequestsTracked: number;
33
+ totalRequestsCompleted: number;
34
+ currentPending: number;
35
+ requestsByClient: Record<string, number>;
36
+ forceShutdown: boolean;
37
+ forceKilledRequests: string[];
38
+ }
39
+ export declare class GracefulShutdownCoordinator {
40
+ private readonly config;
41
+ private pendingRequests;
42
+ private totalTracked;
43
+ private totalCompleted;
44
+ private forceShutdownTriggered;
45
+ private forceKilledRequestIds;
46
+ private shuttingDown;
47
+ private pendingUpgrade;
48
+ private upgradeVersion;
49
+ private upgradeInitiator;
50
+ private waitTimeoutId;
51
+ constructor(config: Partial<ShutdownConfig>);
52
+ trackRequest(requestId: string, clientId: string): void;
53
+ completeRequest(requestId: string): void;
54
+ getPendingRequests(): RequestInfo[];
55
+ get isShuttingDown(): boolean;
56
+ get isPendingUpgrade(): boolean;
57
+ canAcceptRequest(): boolean;
58
+ initiateShutdown(reason: ShutdownReason): Promise<void>;
59
+ initiateUpgrade(newVersion: string, initiatorClientId: string): Promise<void>;
60
+ getMetrics(): ShutdownMetrics;
61
+ private waitForPendingRequests;
62
+ cancelWaitTimeout(): void;
63
+ private notifyShutdown;
64
+ private notifyUpgradePending;
65
+ }
66
+ export {};
67
+ //# sourceMappingURL=GracefulShutdownCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GracefulShutdownCoordinator.d.ts","sourceRoot":"","sources":["../../../src/mcp/daemon/GracefulShutdownCoordinator.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,WAAW;IAE1B,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,oBAAY,cAAc;IAExB,OAAO,YAAY;IAGnB,cAAc,mBAAmB;IAGjC,YAAY,iBAAiB;IAG7B,KAAK,UAAU;CAChB;AAKD,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;AAKxF,MAAM,WAAW,cAAc;IAE7B,WAAW,EAAE,MAAM,CAAC;IAGpB,aAAa,EAAE,MAAM,CAAC;IAGtB,aAAa,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAKD,MAAM,WAAW,eAAe;IAE9B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,sBAAsB,EAAE,MAAM,CAAC;IAG/B,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGzC,aAAa,EAAE,OAAO,CAAC;IAGvB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAwCD,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAGxC,OAAO,CAAC,eAAe,CAAuC;IAG9D,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,qBAAqB,CAAgB;IAG7C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,aAAa,CAA8C;gBAOvD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;IAyB3C,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgCvD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyBxC,kBAAkB,IAAI,WAAW,EAAE;IAWnC,IAAI,cAAc,IAAI,OAAO,CAE5B;IAKD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAqBD,gBAAgB,IAAI,OAAO;IAiBrB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCvD,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnF,UAAU,IAAI,eAAe;YAwBf,sBAAsB;IA+CpC,iBAAiB,IAAI,IAAI;YAWX,cAAc;YAuBd,oBAAoB;CA0BnC"}