agent-nuvira 2.7.3 → 3.0.1

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 (369) hide show
  1. package/dist/agents/agents/writer-tool-calling.d.ts +14 -0
  2. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  3. package/dist/agents/agents/writer-tool-calling.js +20 -0
  4. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  5. package/dist/agents/agents/writer.d.ts.map +1 -1
  6. package/dist/agents/agents/writer.js +15 -4
  7. package/dist/agents/agents/writer.js.map +1 -1
  8. package/dist/agents/edit-module.d.ts +7 -0
  9. package/dist/agents/edit-module.d.ts.map +1 -1
  10. package/dist/agents/edit-module.js +21 -6
  11. package/dist/agents/edit-module.js.map +1 -1
  12. package/dist/agents/orchestrator.d.ts +40 -0
  13. package/dist/agents/orchestrator.d.ts.map +1 -1
  14. package/dist/agents/orchestrator.js +116 -27
  15. package/dist/agents/orchestrator.js.map +1 -1
  16. package/dist/agents/tool-calling-agent.d.ts +19 -0
  17. package/dist/agents/tool-calling-agent.d.ts.map +1 -1
  18. package/dist/agents/tool-calling-agent.js +42 -2
  19. package/dist/agents/tool-calling-agent.js.map +1 -1
  20. package/dist/cli/chat.d.ts +55 -1
  21. package/dist/cli/chat.d.ts.map +1 -1
  22. package/dist/cli/chat.js +278 -72
  23. package/dist/cli/chat.js.map +1 -1
  24. package/dist/cli/cli-program.d.ts +6 -0
  25. package/dist/cli/cli-program.d.ts.map +1 -0
  26. package/dist/cli/cli-program.js +242 -0
  27. package/dist/cli/cli-program.js.map +1 -0
  28. package/dist/cli/edit.d.ts.map +1 -1
  29. package/dist/cli/edit.js +18 -3
  30. package/dist/cli/edit.js.map +1 -1
  31. package/dist/cli/execute.d.ts.map +1 -1
  32. package/dist/cli/execute.js +29 -5
  33. package/dist/cli/execute.js.map +1 -1
  34. package/dist/cli/failover-runner.d.ts +13 -0
  35. package/dist/cli/failover-runner.d.ts.map +1 -1
  36. package/dist/cli/failover-runner.js +11 -0
  37. package/dist/cli/failover-runner.js.map +1 -1
  38. package/dist/cli/gateway.d.ts +16 -0
  39. package/dist/cli/gateway.d.ts.map +1 -1
  40. package/dist/cli/gateway.js +108 -2
  41. package/dist/cli/gateway.js.map +1 -1
  42. package/dist/cli/loop-executor.d.ts.map +1 -1
  43. package/dist/cli/loop-executor.js +245 -12
  44. package/dist/cli/loop-executor.js.map +1 -1
  45. package/dist/cli/plan.d.ts.map +1 -1
  46. package/dist/cli/plan.js +20 -6
  47. package/dist/cli/plan.js.map +1 -1
  48. package/dist/cli/process-control.d.ts +10 -0
  49. package/dist/cli/process-control.d.ts.map +1 -1
  50. package/dist/cli/process-control.js +73 -7
  51. package/dist/cli/process-control.js.map +1 -1
  52. package/dist/cli/router.d.ts +16 -5
  53. package/dist/cli/router.d.ts.map +1 -1
  54. package/dist/cli/router.js +31 -206
  55. package/dist/cli/router.js.map +1 -1
  56. package/dist/config/paths.d.ts +23 -0
  57. package/dist/config/paths.d.ts.map +1 -1
  58. package/dist/config/paths.js +30 -0
  59. package/dist/config/paths.js.map +1 -1
  60. package/dist/config/provider-env.d.ts +37 -0
  61. package/dist/config/provider-env.d.ts.map +1 -0
  62. package/dist/config/provider-env.js +86 -0
  63. package/dist/config/provider-env.js.map +1 -0
  64. package/dist/context/history.d.ts.map +1 -1
  65. package/dist/context/history.js +24 -8
  66. package/dist/context/history.js.map +1 -1
  67. package/dist/context/session-recall.d.ts +30 -0
  68. package/dist/context/session-recall.d.ts.map +1 -1
  69. package/dist/context/session-recall.js +61 -0
  70. package/dist/context/session-recall.js.map +1 -1
  71. package/dist/file.js +0 -1
  72. package/dist/file.js.map +1 -1
  73. package/dist/gateway/adapters.d.ts +10 -0
  74. package/dist/gateway/adapters.d.ts.map +1 -1
  75. package/dist/gateway/adapters.js +4 -1
  76. package/dist/gateway/adapters.js.map +1 -1
  77. package/dist/gateway/dedup.d.ts +105 -0
  78. package/dist/gateway/dedup.d.ts.map +1 -0
  79. package/dist/gateway/dedup.js +160 -0
  80. package/dist/gateway/dedup.js.map +1 -0
  81. package/dist/gateway/heartbeat.d.ts +99 -0
  82. package/dist/gateway/heartbeat.d.ts.map +1 -0
  83. package/dist/gateway/heartbeat.js +122 -0
  84. package/dist/gateway/heartbeat.js.map +1 -0
  85. package/dist/gateway/inbox.d.ts +14 -1
  86. package/dist/gateway/inbox.d.ts.map +1 -1
  87. package/dist/gateway/inbox.js.map +1 -1
  88. package/dist/gateway/platform-config.d.ts +5 -0
  89. package/dist/gateway/platform-config.d.ts.map +1 -1
  90. package/dist/gateway/platform-config.js +8 -13
  91. package/dist/gateway/platform-config.js.map +1 -1
  92. package/dist/gateway/registry.d.ts +47 -0
  93. package/dist/gateway/registry.d.ts.map +1 -1
  94. package/dist/gateway/registry.js +227 -21
  95. package/dist/gateway/registry.js.map +1 -1
  96. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  97. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  98. package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
  99. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  100. package/dist/gateway/whatsapp/bridge.d.ts +4 -2
  101. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  102. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/inference/factory.d.ts +16 -0
  106. package/dist/inference/factory.d.ts.map +1 -1
  107. package/dist/inference/factory.js +42 -0
  108. package/dist/inference/factory.js.map +1 -1
  109. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  110. package/dist/inference/gemini-adapter.js +3 -0
  111. package/dist/inference/gemini-adapter.js.map +1 -1
  112. package/dist/inference/interface.d.ts +12 -0
  113. package/dist/inference/interface.d.ts.map +1 -1
  114. package/dist/inference/local-adapter.d.ts +2 -0
  115. package/dist/inference/local-adapter.d.ts.map +1 -1
  116. package/dist/inference/local-adapter.js +36 -5
  117. package/dist/inference/local-adapter.js.map +1 -1
  118. package/dist/inference/native-tools.d.ts +8 -0
  119. package/dist/inference/native-tools.d.ts.map +1 -1
  120. package/dist/inference/native-tools.js +14 -3
  121. package/dist/inference/native-tools.js.map +1 -1
  122. package/dist/inference/tool-call-utils.d.ts +92 -7
  123. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  124. package/dist/inference/tool-call-utils.js +203 -13
  125. package/dist/inference/tool-call-utils.js.map +1 -1
  126. package/dist/learning/auto-router.d.ts.map +1 -1
  127. package/dist/learning/auto-router.js +90 -5
  128. package/dist/learning/auto-router.js.map +1 -1
  129. package/dist/learning/context-budget.d.ts +133 -0
  130. package/dist/learning/context-budget.d.ts.map +1 -0
  131. package/dist/learning/context-budget.js +196 -0
  132. package/dist/learning/context-budget.js.map +1 -0
  133. package/dist/learning/cost-tracker.d.ts.map +1 -1
  134. package/dist/learning/cost-tracker.js +20 -8
  135. package/dist/learning/cost-tracker.js.map +1 -1
  136. package/dist/learning/eval-framework.d.ts.map +1 -1
  137. package/dist/learning/eval-framework.js +6 -2
  138. package/dist/learning/eval-framework.js.map +1 -1
  139. package/dist/learning/failure-bookkeeping.d.ts +19 -0
  140. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  141. package/dist/learning/failure-bookkeeping.js +67 -2
  142. package/dist/learning/failure-bookkeeping.js.map +1 -1
  143. package/dist/learning/feedback.d.ts.map +1 -1
  144. package/dist/learning/feedback.js +19 -8
  145. package/dist/learning/feedback.js.map +1 -1
  146. package/dist/learning/model-harness.d.ts +76 -0
  147. package/dist/learning/model-harness.d.ts.map +1 -0
  148. package/dist/learning/model-harness.js +119 -0
  149. package/dist/learning/model-harness.js.map +1 -0
  150. package/dist/learning/model-selection.d.ts +15 -0
  151. package/dist/learning/model-selection.d.ts.map +1 -1
  152. package/dist/learning/model-selection.js +27 -1
  153. package/dist/learning/model-selection.js.map +1 -1
  154. package/dist/learning/provider-fallback.d.ts +12 -0
  155. package/dist/learning/provider-fallback.d.ts.map +1 -1
  156. package/dist/learning/provider-fallback.js +74 -0
  157. package/dist/learning/provider-fallback.js.map +1 -1
  158. package/dist/learning/provider-revival.d.ts +106 -0
  159. package/dist/learning/provider-revival.d.ts.map +1 -0
  160. package/dist/learning/provider-revival.js +154 -0
  161. package/dist/learning/provider-revival.js.map +1 -0
  162. package/dist/learning/resilient-call.d.ts.map +1 -1
  163. package/dist/learning/resilient-call.js +48 -3
  164. package/dist/learning/resilient-call.js.map +1 -1
  165. package/dist/nlu/conversation-gate.d.ts +37 -0
  166. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  167. package/dist/nlu/conversation-gate.js +49 -0
  168. package/dist/nlu/conversation-gate.js.map +1 -1
  169. package/dist/nlu/schema.d.ts +2 -2
  170. package/dist/observability/dag-bridge.d.ts +69 -0
  171. package/dist/observability/dag-bridge.d.ts.map +1 -0
  172. package/dist/observability/dag-bridge.js +56 -0
  173. package/dist/observability/dag-bridge.js.map +1 -0
  174. package/dist/observability/event-bus.d.ts +5 -10
  175. package/dist/observability/event-bus.d.ts.map +1 -1
  176. package/dist/observability/event-bus.js +10 -42
  177. package/dist/observability/event-bus.js.map +1 -1
  178. package/dist/skills/execution-audit.d.ts.map +1 -1
  179. package/dist/skills/execution-audit.js +17 -5
  180. package/dist/skills/execution-audit.js.map +1 -1
  181. package/dist/skills/sandbox-executor.d.ts +12 -1
  182. package/dist/skills/sandbox-executor.d.ts.map +1 -1
  183. package/dist/skills/sandbox-executor.js +28 -6
  184. package/dist/skills/sandbox-executor.js.map +1 -1
  185. package/dist/skills/secret-capture.d.ts +45 -1
  186. package/dist/skills/secret-capture.d.ts.map +1 -1
  187. package/dist/skills/secret-capture.js +82 -19
  188. package/dist/skills/secret-capture.js.map +1 -1
  189. package/dist/skills/skill-env-inventory.d.ts +79 -0
  190. package/dist/skills/skill-env-inventory.d.ts.map +1 -0
  191. package/dist/skills/skill-env-inventory.js +167 -0
  192. package/dist/skills/skill-env-inventory.js.map +1 -0
  193. package/dist/skills/skill-executor.d.ts +2 -0
  194. package/dist/skills/skill-executor.d.ts.map +1 -1
  195. package/dist/skills/skill-executor.js +19 -24
  196. package/dist/skills/skill-executor.js.map +1 -1
  197. package/dist/tools/ask-user.d.ts +14 -1
  198. package/dist/tools/ask-user.d.ts.map +1 -1
  199. package/dist/tools/ask-user.js +25 -1
  200. package/dist/tools/ask-user.js.map +1 -1
  201. package/dist/tools/followup-utils.d.ts +64 -0
  202. package/dist/tools/followup-utils.d.ts.map +1 -0
  203. package/dist/tools/followup-utils.js +158 -0
  204. package/dist/tools/followup-utils.js.map +1 -0
  205. package/dist/tools/loop-skill-hint.d.ts.map +1 -1
  206. package/dist/tools/loop-skill-hint.js +22 -1
  207. package/dist/tools/loop-skill-hint.js.map +1 -1
  208. package/dist/tools/memory-tools.d.ts +35 -0
  209. package/dist/tools/memory-tools.d.ts.map +1 -1
  210. package/dist/tools/memory-tools.js +76 -0
  211. package/dist/tools/memory-tools.js.map +1 -1
  212. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  213. package/dist/tools/pipeline-tool.js +8 -3
  214. package/dist/tools/pipeline-tool.js.map +1 -1
  215. package/dist/tools/registry.d.ts +25 -12
  216. package/dist/tools/registry.d.ts.map +1 -1
  217. package/dist/tools/registry.js +31 -6
  218. package/dist/tools/registry.js.map +1 -1
  219. package/dist/tools/skill-tool.d.ts.map +1 -1
  220. package/dist/tools/skill-tool.js +52 -5
  221. package/dist/tools/skill-tool.js.map +1 -1
  222. package/dist/tools/tool-loop.d.ts +63 -1
  223. package/dist/tools/tool-loop.d.ts.map +1 -1
  224. package/dist/tools/tool-loop.js +305 -66
  225. package/dist/tools/tool-loop.js.map +1 -1
  226. package/dist/tools/toolsets.d.ts +19 -3
  227. package/dist/tools/toolsets.d.ts.map +1 -1
  228. package/dist/tools/toolsets.js +21 -5
  229. package/dist/tools/toolsets.js.map +1 -1
  230. package/dist/utils/env.d.ts.map +1 -1
  231. package/dist/utils/env.js +9 -13
  232. package/dist/utils/env.js.map +1 -1
  233. package/dist/web-dashboard/chat-console.d.ts +13 -1
  234. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  235. package/dist/web-dashboard/chat-console.js +16 -2
  236. package/dist/web-dashboard/chat-console.js.map +1 -1
  237. package/dist/web-dashboard/hub-data.d.ts +2 -0
  238. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  239. package/dist/web-dashboard/hub-data.js +4 -0
  240. package/dist/web-dashboard/hub-data.js.map +1 -1
  241. package/dist/web-dashboard/server.d.ts +6 -0
  242. package/dist/web-dashboard/server.d.ts.map +1 -1
  243. package/dist/web-dashboard/server.js +192 -3
  244. package/dist/web-dashboard/server.js.map +1 -1
  245. package/dist/web-dashboard/src/types.d.ts +31 -1
  246. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  247. package/package.json +11 -1
  248. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  249. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  250. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  251. package/src/web-dashboard/public/index.html +2 -2
  252. package/dist/example.d.ts +0 -1
  253. package/dist/example.d.ts.map +0 -1
  254. package/dist/example.js +0 -3
  255. package/dist/example.js.map +0 -1
  256. package/dist/fresh.d.ts +0 -2
  257. package/dist/fresh.d.ts.map +0 -1
  258. package/dist/fresh.js +0 -2
  259. package/dist/fresh.js.map +0 -1
  260. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  261. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  262. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  263. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  264. package/dist/memory/background-sync.d.ts +0 -107
  265. package/dist/memory/background-sync.d.ts.map +0 -1
  266. package/dist/memory/background-sync.js +0 -242
  267. package/dist/memory/background-sync.js.map +0 -1
  268. package/dist/memory/cross-session.d.ts +0 -68
  269. package/dist/memory/cross-session.d.ts.map +0 -1
  270. package/dist/memory/cross-session.js +0 -153
  271. package/dist/memory/cross-session.js.map +0 -1
  272. package/dist/memory/drift-detector.d.ts +0 -76
  273. package/dist/memory/drift-detector.d.ts.map +0 -1
  274. package/dist/memory/drift-detector.js +0 -216
  275. package/dist/memory/drift-detector.js.map +0 -1
  276. package/dist/memory/enhanced-manager.d.ts +0 -105
  277. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  278. package/dist/memory/enhanced-manager.js +0 -280
  279. package/dist/memory/enhanced-manager.js.map +0 -1
  280. package/dist/memory/session-extraction.d.ts +0 -93
  281. package/dist/memory/session-extraction.d.ts.map +0 -1
  282. package/dist/memory/session-extraction.js +0 -290
  283. package/dist/memory/session-extraction.js.map +0 -1
  284. package/dist/memory/sqlite-store.d.ts +0 -208
  285. package/dist/memory/sqlite-store.d.ts.map +0 -1
  286. package/dist/memory/sqlite-store.js +0 -556
  287. package/dist/memory/sqlite-store.js.map +0 -1
  288. package/dist/skills/daytona-executor.d.ts +0 -78
  289. package/dist/skills/daytona-executor.d.ts.map +0 -1
  290. package/dist/skills/daytona-executor.js +0 -256
  291. package/dist/skills/daytona-executor.js.map +0 -1
  292. package/dist/skills/modal-executor.d.ts +0 -81
  293. package/dist/skills/modal-executor.d.ts.map +0 -1
  294. package/dist/skills/modal-executor.js +0 -285
  295. package/dist/skills/modal-executor.js.map +0 -1
  296. package/dist/sync/inventory.d.ts +0 -1
  297. package/dist/sync/inventory.d.ts.map +0 -1
  298. package/dist/sync/inventory.js +0 -3
  299. package/dist/sync/inventory.js.map +0 -1
  300. package/dist/sync/validate.d.ts +0 -1
  301. package/dist/sync/validate.d.ts.map +0 -1
  302. package/dist/sync/validate.js +0 -3
  303. package/dist/sync/validate.js.map +0 -1
  304. package/dist/test.d.ts +0 -2
  305. package/dist/test.d.ts.map +0 -1
  306. package/dist/test.js +0 -3
  307. package/dist/test.js.map +0 -1
  308. package/dist/tools/browser-tool.d.ts +0 -206
  309. package/dist/tools/browser-tool.d.ts.map +0 -1
  310. package/dist/tools/browser-tool.js +0 -726
  311. package/dist/tools/browser-tool.js.map +0 -1
  312. package/dist/tools/delegate-tool.d.ts +0 -109
  313. package/dist/tools/delegate-tool.d.ts.map +0 -1
  314. package/dist/tools/delegate-tool.js +0 -185
  315. package/dist/tools/delegate-tool.js.map +0 -1
  316. package/dist/tools/delegation-state.d.ts +0 -87
  317. package/dist/tools/delegation-state.d.ts.map +0 -1
  318. package/dist/tools/delegation-state.js +0 -278
  319. package/dist/tools/delegation-state.js.map +0 -1
  320. package/dist/tools/desktop-ui.d.ts +0 -148
  321. package/dist/tools/desktop-ui.d.ts.map +0 -1
  322. package/dist/tools/desktop-ui.js +0 -486
  323. package/dist/tools/desktop-ui.js.map +0 -1
  324. package/dist/tools/image-video-tool.d.ts +0 -88
  325. package/dist/tools/image-video-tool.d.ts.map +0 -1
  326. package/dist/tools/image-video-tool.js +0 -276
  327. package/dist/tools/image-video-tool.js.map +0 -1
  328. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  329. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  330. package/dist/tools/kanban-cron-tools.js +0 -197
  331. package/dist/tools/kanban-cron-tools.js.map +0 -1
  332. package/dist/tools/messaging-tool.d.ts +0 -127
  333. package/dist/tools/messaging-tool.d.ts.map +0 -1
  334. package/dist/tools/messaging-tool.js +0 -314
  335. package/dist/tools/messaging-tool.js.map +0 -1
  336. package/dist/tools/modality/generic-caller.d.ts +0 -43
  337. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  338. package/dist/tools/modality/generic-caller.js +0 -254
  339. package/dist/tools/modality/generic-caller.js.map +0 -1
  340. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  341. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  342. package/dist/tools/modality/modality-catalog.js +0 -445
  343. package/dist/tools/modality/modality-catalog.js.map +0 -1
  344. package/dist/tools/modality/tool-router.d.ts +0 -81
  345. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  346. package/dist/tools/modality/tool-router.js +0 -84
  347. package/dist/tools/modality/tool-router.js.map +0 -1
  348. package/dist/tools/security-tools.d.ts +0 -107
  349. package/dist/tools/security-tools.d.ts.map +0 -1
  350. package/dist/tools/security-tools.js +0 -264
  351. package/dist/tools/security-tools.js.map +0 -1
  352. package/dist/tools/ssh-tool.d.ts +0 -130
  353. package/dist/tools/ssh-tool.d.ts.map +0 -1
  354. package/dist/tools/ssh-tool.js +0 -328
  355. package/dist/tools/ssh-tool.js.map +0 -1
  356. package/dist/tools/tts-tool.d.ts +0 -91
  357. package/dist/tools/tts-tool.d.ts.map +0 -1
  358. package/dist/tools/tts-tool.js +0 -406
  359. package/dist/tools/tts-tool.js.map +0 -1
  360. package/dist/utils/shell-detection.d.ts +0 -124
  361. package/dist/utils/shell-detection.d.ts.map +0 -1
  362. package/dist/utils/shell-detection.js +0 -305
  363. package/dist/utils/shell-detection.js.map +0 -1
  364. package/dist/utils/windows-paths.d.ts +0 -185
  365. package/dist/utils/windows-paths.d.ts.map +0 -1
  366. package/dist/utils/windows-paths.js +0 -472
  367. package/dist/utils/windows-paths.js.map +0 -1
  368. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  369. package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
@@ -1,140 +0,0 @@
1
- /**
2
- * MCP Dashboard OAuth — OAuth flow for dashboard integration.
3
- *
4
- * Provides OAuth UI endpoints for the web dashboard to handle
5
- * MCP server authentication flows. This enables:
6
- * - Authorization code flow via dashboard redirect
7
- * - Token refresh in dashboard
8
- * - OAuth consent screen
9
- *
10
- * Hermes equivalent: mcp_dashboard_oauth.py
11
- */
12
- import { randomBytes } from 'node:crypto';
13
- import { logger } from '../utils/logger.js';
14
- // ─── Dashboard OAuth Manager ──────────────────────────────────────────────
15
- export class DashboardOAuthManager {
16
- sessions = new Map();
17
- tokens = new Map();
18
- /**
19
- * Start an OAuth flow for a server.
20
- * Returns the authorization URL to redirect the user to.
21
- */
22
- startFlow(config) {
23
- const state = randomBytes(16).toString('hex');
24
- const sessionId = randomBytes(8).toString('hex');
25
- const redirectUri = config.redirectUri || 'http://localhost:3456/api/mcp/oauth/callback';
26
- const params = new URLSearchParams({
27
- response_type: 'code',
28
- client_id: config.clientId,
29
- redirect_uri: redirectUri,
30
- state,
31
- scope: (config.scopes || ['read', 'write']).join(' '),
32
- });
33
- let codeVerifier;
34
- if (config.usePKCE !== false) {
35
- const { createHash } = require('node:crypto');
36
- codeVerifier = randomBytes(32).toString('base64url');
37
- const codeChallenge = createHash('sha256').update(codeVerifier).digest('base64url');
38
- params.set('code_challenge', codeChallenge);
39
- params.set('code_challenge_method', 'S256');
40
- }
41
- const authorizationUrl = `${config.authorizationEndpoint}?${params.toString()}`;
42
- const session = {
43
- sessionId,
44
- serverName: config.serverName,
45
- state,
46
- codeVerifier,
47
- authorizationUrl,
48
- createdAt: Date.now(),
49
- expiresAt: Date.now() + 600_000, // 10 minutes
50
- };
51
- this.sessions.set(sessionId, session);
52
- logger.debug(`MCP Dashboard OAuth: Started flow for '${config.serverName}' (session: ${sessionId})`);
53
- return session;
54
- }
55
- /**
56
- * Handle the OAuth callback.
57
- * Exchange the authorization code for tokens.
58
- */
59
- async handleCallback(sessionId, authorizationCode, returnedState) {
60
- const session = this.sessions.get(sessionId);
61
- if (!session) {
62
- return { success: false, error: 'Session not found' };
63
- }
64
- if (session.expiresAt < Date.now()) {
65
- this.sessions.delete(sessionId);
66
- return { success: false, error: 'Session expired' };
67
- }
68
- if (session.state !== returnedState) {
69
- return { success: false, error: 'State mismatch' };
70
- }
71
- // In a real implementation, this would call the token endpoint
72
- // For now, we'll store the code and let the caller handle token exchange
73
- logger.info(`MCP Dashboard OAuth: Callback received for '${session.serverName}'`);
74
- return { success: true };
75
- }
76
- /**
77
- * Store tokens for a server.
78
- */
79
- setTokens(serverName, accessToken, refreshToken, expiresIn) {
80
- this.tokens.set(serverName, {
81
- accessToken,
82
- refreshToken,
83
- expiresAt: Date.now() + (expiresIn || 3600_000),
84
- });
85
- }
86
- /**
87
- * Get tokens for a server.
88
- */
89
- getTokens(serverName) {
90
- const tokens = this.tokens.get(serverName);
91
- if (!tokens)
92
- return null;
93
- if (tokens.expiresAt < Date.now()) {
94
- this.tokens.delete(serverName);
95
- return null;
96
- }
97
- return { accessToken: tokens.accessToken, refreshToken: tokens.refreshToken };
98
- }
99
- /**
100
- * Clear tokens for a server.
101
- */
102
- clearTokens(serverName) {
103
- this.tokens.delete(serverName);
104
- }
105
- /**
106
- * Get all stored tokens.
107
- */
108
- getAllTokens() {
109
- return [...this.tokens.entries()].map(([name, tokens]) => ({
110
- serverName: name,
111
- hasRefreshToken: !!tokens.refreshToken,
112
- expiresAt: tokens.expiresAt,
113
- }));
114
- }
115
- /**
116
- * Clean up expired sessions.
117
- */
118
- cleanup() {
119
- let count = 0;
120
- const now = Date.now();
121
- for (const [id, session] of this.sessions) {
122
- if (session.expiresAt < now) {
123
- this.sessions.delete(id);
124
- count++;
125
- }
126
- }
127
- return count;
128
- }
129
- }
130
- // ─── Singleton ────────────────────────────────────────────────────────────
131
- let _instance = null;
132
- export function getDashboardOAuthManager() {
133
- if (!_instance)
134
- _instance = new DashboardOAuthManager();
135
- return _instance;
136
- }
137
- export function resetDashboardOAuthManager() {
138
- _instance = null;
139
- }
140
- //# sourceMappingURL=mcp-dashboard-oauth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-dashboard-oauth.js","sourceRoot":"","sources":["../../src/mcp/mcp-dashboard-oauth.ts"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- /**
2
- * BackgroundSync — Daemon thread manager for memory operations.
3
- *
4
- * Runs memory extraction and sync operations in background threads
5
- * to keep per-turn latency at zero. Uses a queue-based architecture
6
- * with configurable concurrency.
7
- *
8
- * Features:
9
- * - Zero-cost per-turn memory operations
10
- * - Configurable concurrency limits
11
- * - Graceful shutdown with drain timeout
12
- * - Error handling and retry logic
13
- * - Metrics and monitoring
14
- */
15
- import { EventEmitter } from 'events';
16
- type SyncTaskType = 'extract' | 'sync' | 'prefetch' | 'cleanup';
17
- interface SyncTask {
18
- id: string;
19
- type: SyncTaskType;
20
- data: any;
21
- priority: number;
22
- createdAt: number;
23
- startedAt?: number;
24
- completedAt?: number;
25
- status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
26
- error?: string;
27
- retries: number;
28
- maxRetries: number;
29
- }
30
- interface SyncMetrics {
31
- totalTasks: number;
32
- completedTasks: number;
33
- failedTasks: number;
34
- pendingTasks: number;
35
- runningTasks: number;
36
- averageDuration: number;
37
- totalDuration: number;
38
- }
39
- interface BackgroundSyncConfig {
40
- maxConcurrent: number;
41
- maxQueueSize: number;
42
- drainTimeoutMs: number;
43
- retryDelayMs: number;
44
- maxRetries: number;
45
- }
46
- export declare class BackgroundSyncManager extends EventEmitter {
47
- private queue;
48
- private running;
49
- private completed;
50
- private config;
51
- private isProcessing;
52
- private isShutdown;
53
- private taskCounter;
54
- private metrics;
55
- constructor(config?: Partial<BackgroundSyncConfig>);
56
- /**
57
- * Enqueue a task for background execution.
58
- */
59
- enqueue(params: {
60
- type: SyncTaskType;
61
- data: any;
62
- priority?: number;
63
- }): string;
64
- /**
65
- * Process the queue.
66
- */
67
- private processQueue;
68
- /**
69
- * Process a single task.
70
- */
71
- private processTask;
72
- /**
73
- * Execute a task (override in subclass or provide handler).
74
- */
75
- private executeTask;
76
- /**
77
- * Get task status.
78
- */
79
- getStatus(id: string): SyncTask | null;
80
- /**
81
- * Get metrics.
82
- */
83
- getMetrics(): SyncMetrics;
84
- /**
85
- * Get queue length.
86
- */
87
- getQueueLength(): number;
88
- /**
89
- * Get running count.
90
- */
91
- getRunningCount(): number;
92
- /**
93
- * Cancel a task.
94
- */
95
- cancel(id: string): boolean;
96
- /**
97
- * Drain the queue (wait for all tasks to complete).
98
- */
99
- drain(timeoutMs?: number): Promise<void>;
100
- /**
101
- * Shutdown gracefully.
102
- */
103
- shutdown(): Promise<void>;
104
- }
105
- export declare function getBackgroundSyncManager(): BackgroundSyncManager;
106
- export {};
107
- //# sourceMappingURL=background-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-sync.d.ts","sourceRoot":"","sources":["../../src/memory/background-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAEhE,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,oBAAoB;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAK;IAGxB,OAAO,CAAC,OAAO,CAQb;gBAEU,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAWlD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,YAAY,CAAC;QACnB,IAAI,EAAE,GAAG,CAAC;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;IAkCV;;OAEG;YACW,YAAY;IAwB1B;;OAEG;YACW,WAAW;IAwDzB;;OAEG;YACW,WAAW;IAOzB;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAStC;;OAEG;IACH,UAAU,IAAI,WAAW;IAIzB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAsB3B;;OAEG;IACG,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC;AAMD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAGhE"}
@@ -1,242 +0,0 @@
1
- /**
2
- * BackgroundSync — Daemon thread manager for memory operations.
3
- *
4
- * Runs memory extraction and sync operations in background threads
5
- * to keep per-turn latency at zero. Uses a queue-based architecture
6
- * with configurable concurrency.
7
- *
8
- * Features:
9
- * - Zero-cost per-turn memory operations
10
- * - Configurable concurrency limits
11
- * - Graceful shutdown with drain timeout
12
- * - Error handling and retry logic
13
- * - Metrics and monitoring
14
- */
15
- import { EventEmitter } from 'events';
16
- // ─── Background Sync Manager ────────────────────────────────────────────────
17
- export class BackgroundSyncManager extends EventEmitter {
18
- queue = [];
19
- running = new Map();
20
- completed = [];
21
- config;
22
- isProcessing = false;
23
- isShutdown = false;
24
- taskCounter = 0;
25
- // Metrics
26
- metrics = {
27
- totalTasks: 0,
28
- completedTasks: 0,
29
- failedTasks: 0,
30
- pendingTasks: 0,
31
- runningTasks: 0,
32
- averageDuration: 0,
33
- totalDuration: 0,
34
- };
35
- constructor(config) {
36
- super();
37
- this.config = {
38
- maxConcurrent: config?.maxConcurrent ?? 3,
39
- maxQueueSize: config?.maxQueueSize ?? 100,
40
- drainTimeoutMs: config?.drainTimeoutMs ?? 5000,
41
- retryDelayMs: config?.retryDelayMs ?? 1000,
42
- maxRetries: config?.maxRetries ?? 3,
43
- };
44
- }
45
- /**
46
- * Enqueue a task for background execution.
47
- */
48
- enqueue(params) {
49
- if (this.isShutdown) {
50
- throw new Error('BackgroundSyncManager is shut down');
51
- }
52
- if (this.queue.length >= this.config.maxQueueSize) {
53
- throw new Error('Queue is full');
54
- }
55
- const id = `sync_${Date.now()}_${++this.taskCounter}`;
56
- const task = {
57
- id,
58
- type: params.type,
59
- data: params.data,
60
- priority: params.priority ?? 0,
61
- createdAt: Date.now(),
62
- status: 'pending',
63
- retries: 0,
64
- maxRetries: this.config.maxRetries,
65
- };
66
- this.queue.push(task);
67
- this.metrics.totalTasks++;
68
- this.metrics.pendingTasks++;
69
- // Sort by priority (higher = more urgent)
70
- this.queue.sort((a, b) => b.priority - a.priority);
71
- // Start processing if not already
72
- this.processQueue();
73
- return id;
74
- }
75
- /**
76
- * Process the queue.
77
- */
78
- async processQueue() {
79
- if (this.isProcessing || this.isShutdown) {
80
- return;
81
- }
82
- this.isProcessing = true;
83
- while (this.queue.length > 0 && this.running.size < this.config.maxConcurrent) {
84
- const task = this.queue.shift();
85
- if (!task)
86
- break;
87
- this.metrics.pendingTasks--;
88
- this.running.set(task.id, task);
89
- this.metrics.runningTasks++;
90
- // Process task in background (non-blocking)
91
- this.processTask(task).catch((err) => {
92
- console.error(`BackgroundSync: Task ${task.id} failed:`, err);
93
- });
94
- }
95
- this.isProcessing = false;
96
- }
97
- /**
98
- * Process a single task.
99
- */
100
- async processTask(task) {
101
- task.status = 'running';
102
- task.startedAt = Date.now();
103
- try {
104
- await this.executeTask(task);
105
- task.status = 'completed';
106
- task.completedAt = Date.now();
107
- const duration = task.completedAt - task.startedAt;
108
- this.metrics.completedTasks++;
109
- this.metrics.totalDuration += duration;
110
- this.metrics.averageDuration =
111
- this.metrics.totalDuration / this.metrics.completedTasks;
112
- this.emit('task:completed', { id: task.id, type: task.type, duration });
113
- }
114
- catch (err) {
115
- task.error = err.message;
116
- if (task.retries < task.maxRetries) {
117
- // Retry after delay
118
- task.retries++;
119
- task.status = 'pending';
120
- this.running.delete(task.id);
121
- this.metrics.runningTasks--;
122
- setTimeout(() => {
123
- this.queue.unshift(task); // Add to front for retry
124
- this.metrics.pendingTasks++;
125
- this.processQueue();
126
- }, this.config.retryDelayMs);
127
- return;
128
- }
129
- task.status = 'failed';
130
- task.completedAt = Date.now();
131
- this.metrics.failedTasks++;
132
- this.emit('task:failed', { id: task.id, type: task.type, error: err.message });
133
- }
134
- finally {
135
- this.running.delete(task.id);
136
- this.metrics.runningTasks--;
137
- // Move to completed list (keep last 100)
138
- this.completed.push(task);
139
- if (this.completed.length > 100) {
140
- this.completed = this.completed.slice(-100);
141
- }
142
- // Process more tasks
143
- this.processQueue();
144
- }
145
- }
146
- /**
147
- * Execute a task (override in subclass or provide handler).
148
- */
149
- async executeTask(task) {
150
- // Emit event for external handlers
151
- return new Promise((resolve, reject) => {
152
- this.emit('task:execute', task, resolve, reject);
153
- });
154
- }
155
- /**
156
- * Get task status.
157
- */
158
- getStatus(id) {
159
- return (this.running.get(id) ||
160
- this.queue.find((t) => t.id === id) ||
161
- this.completed.find((t) => t.id === id) ||
162
- null);
163
- }
164
- /**
165
- * Get metrics.
166
- */
167
- getMetrics() {
168
- return { ...this.metrics };
169
- }
170
- /**
171
- * Get queue length.
172
- */
173
- getQueueLength() {
174
- return this.queue.length;
175
- }
176
- /**
177
- * Get running count.
178
- */
179
- getRunningCount() {
180
- return this.running.size;
181
- }
182
- /**
183
- * Cancel a task.
184
- */
185
- cancel(id) {
186
- // Check queue
187
- const queueIndex = this.queue.findIndex((t) => t.id === id);
188
- if (queueIndex >= 0) {
189
- const task = this.queue.splice(queueIndex, 1)[0];
190
- task.status = 'cancelled';
191
- this.metrics.pendingTasks--;
192
- this.emit('task:cancelled', { id: task.id, type: task.type });
193
- return true;
194
- }
195
- // Check running
196
- const runningTask = this.running.get(id);
197
- if (runningTask) {
198
- runningTask.status = 'cancelled';
199
- this.emit('task:cancelled', { id: runningTask.id, type: runningTask.type });
200
- return true;
201
- }
202
- return false;
203
- }
204
- /**
205
- * Drain the queue (wait for all tasks to complete).
206
- */
207
- async drain(timeoutMs) {
208
- const timeout = timeoutMs ?? this.config.drainTimeoutMs;
209
- const startTime = Date.now();
210
- while ((this.queue.length > 0 || this.running.size > 0) &&
211
- Date.now() - startTime < timeout) {
212
- await new Promise((resolve) => setTimeout(resolve, 100));
213
- }
214
- // Force cancel remaining tasks
215
- if (this.queue.length > 0 || this.running.size > 0) {
216
- for (const task of this.queue) {
217
- task.status = 'cancelled';
218
- }
219
- this.queue = [];
220
- for (const [id, task] of this.running) {
221
- task.status = 'cancelled';
222
- }
223
- this.running.clear();
224
- }
225
- }
226
- /**
227
- * Shutdown gracefully.
228
- */
229
- async shutdown() {
230
- this.isShutdown = true;
231
- await this.drain();
232
- this.removeAllListeners();
233
- }
234
- }
235
- // ─── Singleton ──────────────────────────────────────────────────────────────
236
- let _instance = null;
237
- export function getBackgroundSyncManager() {
238
- if (!_instance)
239
- _instance = new BackgroundSyncManager();
240
- return _instance;
241
- }
242
- //# sourceMappingURL=background-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-sync.js","sourceRoot":"","sources":["../../src/memory/background-sync.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- /**
2
- * CrossSessionPersistence — Maintain memory across sessions.
3
- *
4
- * Loads and saves memory context at session boundaries to enable
5
- * continuous learning across multiple sessions.
6
- *
7
- * Features:
8
- * - Session context loading at start
9
- * - Session context saving at end
10
- * - Session history tracking
11
- * - Automatic cleanup of old sessions
12
- */
13
- import { type SQLiteStore } from './sqlite-store.js';
14
- interface SessionContext {
15
- sessionId: string;
16
- memories: any[];
17
- trajectories: any[];
18
- patterns: any[];
19
- lessons: any[];
20
- startedAt: number;
21
- endedAt?: number;
22
- summary?: string;
23
- }
24
- interface SessionHistory {
25
- sessionId: string;
26
- startedAt: number;
27
- endedAt?: number;
28
- memoryCount: number;
29
- trajectoryCount: number;
30
- }
31
- export declare class CrossSessionPersistence {
32
- private store;
33
- private currentSessionId;
34
- constructor(store?: SQLiteStore);
35
- /**
36
- * Load session context at session start.
37
- */
38
- loadSessionContext(sessionId: string): Promise<SessionContext>;
39
- /**
40
- * Save session context at session end.
41
- */
42
- saveSessionContext(context: SessionContext): Promise<void>;
43
- /**
44
- * Get session history.
45
- */
46
- getSessionHistory(limit?: number): SessionHistory[];
47
- /**
48
- * Get context for a specific session.
49
- */
50
- getSessionContext(sessionId: string): Promise<SessionContext | null>;
51
- /**
52
- * Get memory context for prompt injection.
53
- */
54
- getMemoryContext(query: string): Promise<{
55
- facts: string;
56
- patterns: string;
57
- lessons: string;
58
- trajectories: string;
59
- }>;
60
- /**
61
- * Cleanup old sessions.
62
- */
63
- cleanupOldSessions(maxAgeDays?: number): number;
64
- }
65
- export declare function getCrossSessionPersistence(): CrossSessionPersistence;
66
- export declare function resetCrossSessionPersistence(): void;
67
- export {};
68
- //# sourceMappingURL=cross-session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cross-session.d.ts","sourceRoot":"","sources":["../../src/memory/cross-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrE,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,gBAAgB,CAAuB;gBAEnC,KAAK,CAAC,EAAE,WAAW;IAI/B;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4BpE;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE;;OAEG;IACH,iBAAiB,CAAC,KAAK,SAAK,GAAG,cAAc,EAAE;IA2B/C;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwB1E;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAiCF;;OAEG;IACH,kBAAkB,CAAC,UAAU,SAAK,GAAG,MAAM;CAK5C;AAMD,wBAAgB,0BAA0B,IAAI,uBAAuB,CAGpE;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}