@revealui/ai 0.1.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 (397) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +112 -0
  3. package/README.md +314 -0
  4. package/dist/a2a/card.d.ts +26 -0
  5. package/dist/a2a/card.d.ts.map +1 -0
  6. package/dist/a2a/card.js +173 -0
  7. package/dist/a2a/handler.d.ts +26 -0
  8. package/dist/a2a/handler.d.ts.map +1 -0
  9. package/dist/a2a/handler.js +170 -0
  10. package/dist/a2a/index.d.ts +10 -0
  11. package/dist/a2a/index.d.ts.map +1 -0
  12. package/dist/a2a/index.js +9 -0
  13. package/dist/a2a/task-store.d.ts +42 -0
  14. package/dist/a2a/task-store.d.ts.map +1 -0
  15. package/dist/a2a/task-store.js +99 -0
  16. package/dist/audit/emitter.d.ts +34 -0
  17. package/dist/audit/emitter.d.ts.map +1 -0
  18. package/dist/audit/emitter.js +34 -0
  19. package/dist/audit/index.d.ts +44 -0
  20. package/dist/audit/index.d.ts.map +1 -0
  21. package/dist/audit/index.js +48 -0
  22. package/dist/audit/observer.d.ts +108 -0
  23. package/dist/audit/observer.d.ts.map +1 -0
  24. package/dist/audit/observer.js +271 -0
  25. package/dist/audit/policy.d.ts +70 -0
  26. package/dist/audit/policy.d.ts.map +1 -0
  27. package/dist/audit/policy.js +209 -0
  28. package/dist/audit/store.d.ts +42 -0
  29. package/dist/audit/store.d.ts.map +1 -0
  30. package/dist/audit/store.js +80 -0
  31. package/dist/audit/types.d.ts +169 -0
  32. package/dist/audit/types.d.ts.map +1 -0
  33. package/dist/audit/types.js +80 -0
  34. package/dist/client/hooks/index.d.ts +22 -0
  35. package/dist/client/hooks/index.d.ts.map +1 -0
  36. package/dist/client/hooks/index.js +21 -0
  37. package/dist/client/hooks/useAgentContext.d.ts +30 -0
  38. package/dist/client/hooks/useAgentContext.d.ts.map +1 -0
  39. package/dist/client/hooks/useAgentContext.js +161 -0
  40. package/dist/client/hooks/useAgentEvents.d.ts +126 -0
  41. package/dist/client/hooks/useAgentEvents.d.ts.map +1 -0
  42. package/dist/client/hooks/useAgentEvents.js +232 -0
  43. package/dist/client/hooks/useAgentStream.d.ts +44 -0
  44. package/dist/client/hooks/useAgentStream.d.ts.map +1 -0
  45. package/dist/client/hooks/useAgentStream.js +101 -0
  46. package/dist/client/hooks/useEpisodicMemory.d.ts +25 -0
  47. package/dist/client/hooks/useEpisodicMemory.d.ts.map +1 -0
  48. package/dist/client/hooks/useEpisodicMemory.js +174 -0
  49. package/dist/client/hooks/useWorkingMemory.d.ts +57 -0
  50. package/dist/client/hooks/useWorkingMemory.d.ts.map +1 -0
  51. package/dist/client/hooks/useWorkingMemory.js +276 -0
  52. package/dist/client/index.d.ts +14 -0
  53. package/dist/client/index.d.ts.map +1 -0
  54. package/dist/client/index.js +13 -0
  55. package/dist/embeddings/index.d.ts +51 -0
  56. package/dist/embeddings/index.d.ts.map +1 -0
  57. package/dist/embeddings/index.js +73 -0
  58. package/dist/index.d.ts +83 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +103 -0
  61. package/dist/inference/context-assembly.d.ts +27 -0
  62. package/dist/inference/context-assembly.d.ts.map +1 -0
  63. package/dist/inference/context-assembly.js +81 -0
  64. package/dist/inference/overflow-compressor.d.ts +17 -0
  65. package/dist/inference/overflow-compressor.d.ts.map +1 -0
  66. package/dist/inference/overflow-compressor.js +40 -0
  67. package/dist/inference/runRag.d.ts +35 -0
  68. package/dist/inference/runRag.d.ts.map +1 -0
  69. package/dist/inference/runRag.js +53 -0
  70. package/dist/ingestion/bm25.d.ts +29 -0
  71. package/dist/ingestion/bm25.d.ts.map +1 -0
  72. package/dist/ingestion/bm25.js +161 -0
  73. package/dist/ingestion/cms-indexer.d.ts +39 -0
  74. package/dist/ingestion/cms-indexer.d.ts.map +1 -0
  75. package/dist/ingestion/cms-indexer.js +74 -0
  76. package/dist/ingestion/file-parsers.d.ts +51 -0
  77. package/dist/ingestion/file-parsers.d.ts.map +1 -0
  78. package/dist/ingestion/file-parsers.js +247 -0
  79. package/dist/ingestion/hybrid-search.d.ts +22 -0
  80. package/dist/ingestion/hybrid-search.d.ts.map +1 -0
  81. package/dist/ingestion/hybrid-search.js +63 -0
  82. package/dist/ingestion/index.d.ts +9 -0
  83. package/dist/ingestion/index.d.ts.map +1 -0
  84. package/dist/ingestion/index.js +8 -0
  85. package/dist/ingestion/pipeline.d.ts +35 -0
  86. package/dist/ingestion/pipeline.d.ts.map +1 -0
  87. package/dist/ingestion/pipeline.js +114 -0
  88. package/dist/ingestion/rag-vector-service.d.ts +34 -0
  89. package/dist/ingestion/rag-vector-service.d.ts.map +1 -0
  90. package/dist/ingestion/rag-vector-service.js +98 -0
  91. package/dist/ingestion/reranker.d.ts +10 -0
  92. package/dist/ingestion/reranker.d.ts.map +1 -0
  93. package/dist/ingestion/reranker.js +41 -0
  94. package/dist/ingestion/text-splitter.d.ts +25 -0
  95. package/dist/ingestion/text-splitter.d.ts.map +1 -0
  96. package/dist/ingestion/text-splitter.js +119 -0
  97. package/dist/llm/cache-utils.d.ts +146 -0
  98. package/dist/llm/cache-utils.d.ts.map +1 -0
  99. package/dist/llm/cache-utils.js +204 -0
  100. package/dist/llm/client.d.ts +134 -0
  101. package/dist/llm/client.d.ts.map +1 -0
  102. package/dist/llm/client.js +497 -0
  103. package/dist/llm/key-validator.d.ts +25 -0
  104. package/dist/llm/key-validator.d.ts.map +1 -0
  105. package/dist/llm/key-validator.js +101 -0
  106. package/dist/llm/provider-health.d.ts +40 -0
  107. package/dist/llm/provider-health.d.ts.map +1 -0
  108. package/dist/llm/provider-health.js +97 -0
  109. package/dist/llm/providers/anthropic.d.ts +31 -0
  110. package/dist/llm/providers/anthropic.d.ts.map +1 -0
  111. package/dist/llm/providers/anthropic.js +248 -0
  112. package/dist/llm/providers/base.d.ts +111 -0
  113. package/dist/llm/providers/base.d.ts.map +1 -0
  114. package/dist/llm/providers/base.js +6 -0
  115. package/dist/llm/providers/groq.d.ts +23 -0
  116. package/dist/llm/providers/groq.d.ts.map +1 -0
  117. package/dist/llm/providers/groq.js +27 -0
  118. package/dist/llm/providers/ollama.d.ts +27 -0
  119. package/dist/llm/providers/ollama.d.ts.map +1 -0
  120. package/dist/llm/providers/ollama.js +48 -0
  121. package/dist/llm/providers/openai.d.ts +19 -0
  122. package/dist/llm/providers/openai.d.ts.map +1 -0
  123. package/dist/llm/providers/openai.js +245 -0
  124. package/dist/llm/providers/vultr.d.ts +18 -0
  125. package/dist/llm/providers/vultr.d.ts.map +1 -0
  126. package/dist/llm/providers/vultr.js +168 -0
  127. package/dist/llm/response-cache.d.ts +166 -0
  128. package/dist/llm/response-cache.d.ts.map +1 -0
  129. package/dist/llm/response-cache.js +233 -0
  130. package/dist/llm/semantic-cache.d.ts +179 -0
  131. package/dist/llm/semantic-cache.d.ts.map +1 -0
  132. package/dist/llm/semantic-cache.js +306 -0
  133. package/dist/llm/server.d.ts +14 -0
  134. package/dist/llm/server.d.ts.map +1 -0
  135. package/dist/llm/server.js +15 -0
  136. package/dist/llm/token-counter.d.ts +48 -0
  137. package/dist/llm/token-counter.d.ts.map +1 -0
  138. package/dist/llm/token-counter.js +77 -0
  139. package/dist/llm/workspace-provider-config.d.ts +38 -0
  140. package/dist/llm/workspace-provider-config.d.ts.map +1 -0
  141. package/dist/llm/workspace-provider-config.js +47 -0
  142. package/dist/memory/agent/context-manager.d.ts +148 -0
  143. package/dist/memory/agent/context-manager.d.ts.map +1 -0
  144. package/dist/memory/agent/context-manager.js +284 -0
  145. package/dist/memory/agent/index.d.ts +7 -0
  146. package/dist/memory/agent/index.d.ts.map +1 -0
  147. package/dist/memory/agent/index.js +6 -0
  148. package/dist/memory/crdt/index.d.ts +13 -0
  149. package/dist/memory/crdt/index.d.ts.map +1 -0
  150. package/dist/memory/crdt/index.js +12 -0
  151. package/dist/memory/crdt/lww-register.d.ts +108 -0
  152. package/dist/memory/crdt/lww-register.d.ts.map +1 -0
  153. package/dist/memory/crdt/lww-register.js +169 -0
  154. package/dist/memory/crdt/or-set.d.ts +141 -0
  155. package/dist/memory/crdt/or-set.d.ts.map +1 -0
  156. package/dist/memory/crdt/or-set.js +291 -0
  157. package/dist/memory/crdt/pn-counter.d.ts +116 -0
  158. package/dist/memory/crdt/pn-counter.d.ts.map +1 -0
  159. package/dist/memory/crdt/pn-counter.js +174 -0
  160. package/dist/memory/crdt/vector-clock.d.ts +115 -0
  161. package/dist/memory/crdt/vector-clock.d.ts.map +1 -0
  162. package/dist/memory/crdt/vector-clock.js +179 -0
  163. package/dist/memory/errors/index.d.ts +56 -0
  164. package/dist/memory/errors/index.d.ts.map +1 -0
  165. package/dist/memory/errors/index.js +85 -0
  166. package/dist/memory/index.d.ts +21 -0
  167. package/dist/memory/index.d.ts.map +1 -0
  168. package/dist/memory/index.js +20 -0
  169. package/dist/memory/persistence/crdt-persistence.d.ts +85 -0
  170. package/dist/memory/persistence/crdt-persistence.d.ts.map +1 -0
  171. package/dist/memory/persistence/crdt-persistence.js +204 -0
  172. package/dist/memory/persistence/index.d.ts +7 -0
  173. package/dist/memory/persistence/index.d.ts.map +1 -0
  174. package/dist/memory/persistence/index.js +6 -0
  175. package/dist/memory/preferences/index.d.ts +7 -0
  176. package/dist/memory/preferences/index.d.ts.map +1 -0
  177. package/dist/memory/preferences/index.js +6 -0
  178. package/dist/memory/preferences/user-preferences-manager.d.ts +133 -0
  179. package/dist/memory/preferences/user-preferences-manager.d.ts.map +1 -0
  180. package/dist/memory/preferences/user-preferences-manager.js +342 -0
  181. package/dist/memory/services/index.d.ts +8 -0
  182. package/dist/memory/services/index.d.ts.map +1 -0
  183. package/dist/memory/services/index.js +6 -0
  184. package/dist/memory/services/node-id-service.d.ts +75 -0
  185. package/dist/memory/services/node-id-service.d.ts.map +1 -0
  186. package/dist/memory/services/node-id-service.js +190 -0
  187. package/dist/memory/stores/episodic-memory.d.ts +182 -0
  188. package/dist/memory/stores/episodic-memory.d.ts.map +1 -0
  189. package/dist/memory/stores/episodic-memory.js +378 -0
  190. package/dist/memory/stores/index.d.ts +16 -0
  191. package/dist/memory/stores/index.d.ts.map +1 -0
  192. package/dist/memory/stores/index.js +15 -0
  193. package/dist/memory/stores/procedural-memory.d.ts +89 -0
  194. package/dist/memory/stores/procedural-memory.d.ts.map +1 -0
  195. package/dist/memory/stores/procedural-memory.js +152 -0
  196. package/dist/memory/stores/semantic-memory.d.ts +92 -0
  197. package/dist/memory/stores/semantic-memory.d.ts.map +1 -0
  198. package/dist/memory/stores/semantic-memory.js +155 -0
  199. package/dist/memory/stores/working-memory.d.ts +225 -0
  200. package/dist/memory/stores/working-memory.d.ts.map +1 -0
  201. package/dist/memory/stores/working-memory.js +336 -0
  202. package/dist/memory/utils/deep-clone.d.ts +10 -0
  203. package/dist/memory/utils/deep-clone.d.ts.map +1 -0
  204. package/dist/memory/utils/deep-clone.js +9 -0
  205. package/dist/memory/utils/index.d.ts +8 -0
  206. package/dist/memory/utils/index.d.ts.map +1 -0
  207. package/dist/memory/utils/index.js +7 -0
  208. package/dist/memory/utils/logger.d.ts +21 -0
  209. package/dist/memory/utils/logger.d.ts.map +1 -0
  210. package/dist/memory/utils/logger.js +62 -0
  211. package/dist/memory/utils/sql-helpers.d.ts +97 -0
  212. package/dist/memory/utils/sql-helpers.d.ts.map +1 -0
  213. package/dist/memory/utils/sql-helpers.js +214 -0
  214. package/dist/memory/utils/validation.d.ts +62 -0
  215. package/dist/memory/utils/validation.d.ts.map +1 -0
  216. package/dist/memory/utils/validation.js +244 -0
  217. package/dist/memory/vector/index.d.ts +12 -0
  218. package/dist/memory/vector/index.d.ts.map +1 -0
  219. package/dist/memory/vector/index.js +14 -0
  220. package/dist/memory/vector/vector-memory-service.d.ts +88 -0
  221. package/dist/memory/vector/vector-memory-service.d.ts.map +1 -0
  222. package/dist/memory/vector/vector-memory-service.js +335 -0
  223. package/dist/observability/logger.d.ts +79 -0
  224. package/dist/observability/logger.d.ts.map +1 -0
  225. package/dist/observability/logger.js +165 -0
  226. package/dist/observability/metrics.d.ts +43 -0
  227. package/dist/observability/metrics.d.ts.map +1 -0
  228. package/dist/observability/metrics.js +197 -0
  229. package/dist/observability/query.d.ts +150 -0
  230. package/dist/observability/query.d.ts.map +1 -0
  231. package/dist/observability/query.js +339 -0
  232. package/dist/observability/types.d.ts +140 -0
  233. package/dist/observability/types.d.ts.map +1 -0
  234. package/dist/observability/types.js +6 -0
  235. package/dist/orchestration/agent.d.ts +98 -0
  236. package/dist/orchestration/agent.d.ts.map +1 -0
  237. package/dist/orchestration/agent.js +6 -0
  238. package/dist/orchestration/defaults.d.ts +21 -0
  239. package/dist/orchestration/defaults.d.ts.map +1 -0
  240. package/dist/orchestration/defaults.js +22 -0
  241. package/dist/orchestration/memory-integration.d.ts +58 -0
  242. package/dist/orchestration/memory-integration.d.ts.map +1 -0
  243. package/dist/orchestration/memory-integration.js +130 -0
  244. package/dist/orchestration/orchestrator.d.ts +67 -0
  245. package/dist/orchestration/orchestrator.d.ts.map +1 -0
  246. package/dist/orchestration/orchestrator.js +174 -0
  247. package/dist/orchestration/runtime.d.ts +82 -0
  248. package/dist/orchestration/runtime.d.ts.map +1 -0
  249. package/dist/orchestration/runtime.js +251 -0
  250. package/dist/orchestration/streaming-runtime.d.ts +36 -0
  251. package/dist/orchestration/streaming-runtime.d.ts.map +1 -0
  252. package/dist/orchestration/streaming-runtime.js +175 -0
  253. package/dist/orchestration/ticket-agent.d.ts +70 -0
  254. package/dist/orchestration/ticket-agent.d.ts.map +1 -0
  255. package/dist/orchestration/ticket-agent.js +146 -0
  256. package/dist/skills/activation/index.d.ts +7 -0
  257. package/dist/skills/activation/index.d.ts.map +1 -0
  258. package/dist/skills/activation/index.js +6 -0
  259. package/dist/skills/activation/skill-activator.d.ts +68 -0
  260. package/dist/skills/activation/skill-activator.d.ts.map +1 -0
  261. package/dist/skills/activation/skill-activator.js +224 -0
  262. package/dist/skills/catalog/catalog-search.d.ts +55 -0
  263. package/dist/skills/catalog/catalog-search.d.ts.map +1 -0
  264. package/dist/skills/catalog/catalog-search.js +111 -0
  265. package/dist/skills/catalog/catalog-types.d.ts +81 -0
  266. package/dist/skills/catalog/catalog-types.d.ts.map +1 -0
  267. package/dist/skills/catalog/catalog-types.js +66 -0
  268. package/dist/skills/catalog/index.d.ts +9 -0
  269. package/dist/skills/catalog/index.d.ts.map +1 -0
  270. package/dist/skills/catalog/index.js +7 -0
  271. package/dist/skills/catalog/vercel-catalog.d.ts +42 -0
  272. package/dist/skills/catalog/vercel-catalog.d.ts.map +1 -0
  273. package/dist/skills/catalog/vercel-catalog.js +189 -0
  274. package/dist/skills/compat/index.d.ts +9 -0
  275. package/dist/skills/compat/index.d.ts.map +1 -0
  276. package/dist/skills/compat/index.js +8 -0
  277. package/dist/skills/compat/skill-enhancer.d.ts +37 -0
  278. package/dist/skills/compat/skill-enhancer.d.ts.map +1 -0
  279. package/dist/skills/compat/skill-enhancer.js +76 -0
  280. package/dist/skills/compat/tool-mapper.d.ts +61 -0
  281. package/dist/skills/compat/tool-mapper.d.ts.map +1 -0
  282. package/dist/skills/compat/tool-mapper.js +168 -0
  283. package/dist/skills/compat/vercel-compat.d.ts +33 -0
  284. package/dist/skills/compat/vercel-compat.d.ts.map +1 -0
  285. package/dist/skills/compat/vercel-compat.js +132 -0
  286. package/dist/skills/index.d.ts +40 -0
  287. package/dist/skills/index.d.ts.map +1 -0
  288. package/dist/skills/index.js +47 -0
  289. package/dist/skills/integration/agent-skill-provider.d.ts +94 -0
  290. package/dist/skills/integration/agent-skill-provider.d.ts.map +1 -0
  291. package/dist/skills/integration/agent-skill-provider.js +161 -0
  292. package/dist/skills/integration/index.d.ts +7 -0
  293. package/dist/skills/integration/index.d.ts.map +1 -0
  294. package/dist/skills/integration/index.js +6 -0
  295. package/dist/skills/loader/github-loader.d.ts +61 -0
  296. package/dist/skills/loader/github-loader.d.ts.map +1 -0
  297. package/dist/skills/loader/github-loader.js +176 -0
  298. package/dist/skills/loader/index.d.ts +10 -0
  299. package/dist/skills/loader/index.d.ts.map +1 -0
  300. package/dist/skills/loader/index.js +9 -0
  301. package/dist/skills/loader/local-loader.d.ts +56 -0
  302. package/dist/skills/loader/local-loader.d.ts.map +1 -0
  303. package/dist/skills/loader/local-loader.js +186 -0
  304. package/dist/skills/loader/vercel-loader.d.ts +64 -0
  305. package/dist/skills/loader/vercel-loader.d.ts.map +1 -0
  306. package/dist/skills/loader/vercel-loader.js +313 -0
  307. package/dist/skills/loader/vercel-types.d.ts +64 -0
  308. package/dist/skills/loader/vercel-types.d.ts.map +1 -0
  309. package/dist/skills/loader/vercel-types.js +55 -0
  310. package/dist/skills/parser/index.d.ts +7 -0
  311. package/dist/skills/parser/index.d.ts.map +1 -0
  312. package/dist/skills/parser/index.js +6 -0
  313. package/dist/skills/parser/skill-md-parser.d.ts +64 -0
  314. package/dist/skills/parser/skill-md-parser.d.ts.map +1 -0
  315. package/dist/skills/parser/skill-md-parser.js +242 -0
  316. package/dist/skills/registry/index.d.ts +7 -0
  317. package/dist/skills/registry/index.d.ts.map +1 -0
  318. package/dist/skills/registry/index.js +6 -0
  319. package/dist/skills/registry/skill-registry.d.ts +133 -0
  320. package/dist/skills/registry/skill-registry.d.ts.map +1 -0
  321. package/dist/skills/registry/skill-registry.js +373 -0
  322. package/dist/skills/types.d.ts +216 -0
  323. package/dist/skills/types.d.ts.map +1 -0
  324. package/dist/skills/types.js +176 -0
  325. package/dist/templates/agent-spec.d.ts +138 -0
  326. package/dist/templates/agent-spec.d.ts.map +1 -0
  327. package/dist/templates/agent-spec.js +138 -0
  328. package/dist/templates/index.d.ts +56 -0
  329. package/dist/templates/index.d.ts.map +1 -0
  330. package/dist/templates/index.js +58 -0
  331. package/dist/templates/prompt-spec.d.ts +140 -0
  332. package/dist/templates/prompt-spec.d.ts.map +1 -0
  333. package/dist/templates/prompt-spec.js +210 -0
  334. package/dist/templates/skill-spec.d.ts +106 -0
  335. package/dist/templates/skill-spec.d.ts.map +1 -0
  336. package/dist/templates/skill-spec.js +119 -0
  337. package/dist/tools/base.d.ts +74 -0
  338. package/dist/tools/base.d.ts.map +1 -0
  339. package/dist/tools/base.js +6 -0
  340. package/dist/tools/cms/collection-tools.d.ts +36 -0
  341. package/dist/tools/cms/collection-tools.d.ts.map +1 -0
  342. package/dist/tools/cms/collection-tools.js +178 -0
  343. package/dist/tools/cms/factory.d.ts +89 -0
  344. package/dist/tools/cms/factory.d.ts.map +1 -0
  345. package/dist/tools/cms/factory.js +462 -0
  346. package/dist/tools/cms/global-tools.d.ts +21 -0
  347. package/dist/tools/cms/global-tools.d.ts.map +1 -0
  348. package/dist/tools/cms/global-tools.js +92 -0
  349. package/dist/tools/cms/index.d.ts +11 -0
  350. package/dist/tools/cms/index.d.ts.map +1 -0
  351. package/dist/tools/cms/index.js +11 -0
  352. package/dist/tools/cms/media-tools.d.ts +31 -0
  353. package/dist/tools/cms/media-tools.d.ts.map +1 -0
  354. package/dist/tools/cms/media-tools.js +140 -0
  355. package/dist/tools/cms/user-tools.d.ts +31 -0
  356. package/dist/tools/cms/user-tools.d.ts.map +1 -0
  357. package/dist/tools/cms/user-tools.js +135 -0
  358. package/dist/tools/deduplicator.d.ts +19 -0
  359. package/dist/tools/deduplicator.d.ts.map +1 -0
  360. package/dist/tools/deduplicator.js +53 -0
  361. package/dist/tools/document-summarizer.d.ts +11 -0
  362. package/dist/tools/document-summarizer.d.ts.map +1 -0
  363. package/dist/tools/document-summarizer.js +82 -0
  364. package/dist/tools/mcp-adapter.d.ts +66 -0
  365. package/dist/tools/mcp-adapter.d.ts.map +1 -0
  366. package/dist/tools/mcp-adapter.js +152 -0
  367. package/dist/tools/memory/index.d.ts +3 -0
  368. package/dist/tools/memory/index.d.ts.map +1 -0
  369. package/dist/tools/memory/index.js +1 -0
  370. package/dist/tools/memory/store-memory.d.ts +39 -0
  371. package/dist/tools/memory/store-memory.d.ts.map +1 -0
  372. package/dist/tools/memory/store-memory.js +94 -0
  373. package/dist/tools/registry.d.ts +14 -0
  374. package/dist/tools/registry.d.ts.map +1 -0
  375. package/dist/tools/registry.js +48 -0
  376. package/dist/tools/ticket-tools.d.ts +31 -0
  377. package/dist/tools/ticket-tools.d.ts.map +1 -0
  378. package/dist/tools/ticket-tools.js +74 -0
  379. package/dist/tools/web/duck-duck-go.d.ts +52 -0
  380. package/dist/tools/web/duck-duck-go.d.ts.map +1 -0
  381. package/dist/tools/web/duck-duck-go.js +202 -0
  382. package/dist/tools/web/exa.d.ts +34 -0
  383. package/dist/tools/web/exa.d.ts.map +1 -0
  384. package/dist/tools/web/exa.js +80 -0
  385. package/dist/tools/web/index.d.ts +6 -0
  386. package/dist/tools/web/index.d.ts.map +1 -0
  387. package/dist/tools/web/index.js +4 -0
  388. package/dist/tools/web/scraper.d.ts +9 -0
  389. package/dist/tools/web/scraper.d.ts.map +1 -0
  390. package/dist/tools/web/scraper.js +118 -0
  391. package/dist/tools/web/tavily.d.ts +32 -0
  392. package/dist/tools/web/tavily.d.ts.map +1 -0
  393. package/dist/tools/web/tavily.js +73 -0
  394. package/dist/tools/web/types.d.ts +31 -0
  395. package/dist/tools/web/types.d.ts.map +1 -0
  396. package/dist/tools/web/types.js +9 -0
  397. package/package.json +143 -0
@@ -0,0 +1,313 @@
1
+ /**
2
+ * Vercel Skills Loader
3
+ *
4
+ * Bridge layer to load skills from the Vercel Skills ecosystem (skills.sh)
5
+ * and convert them to RevealUI's format.
6
+ */
7
+ import { exec } from 'node:child_process';
8
+ import * as fs from 'node:fs';
9
+ import * as path from 'node:path';
10
+ import { promisify } from 'node:util';
11
+ import { logger } from '@revealui/core/observability/logger';
12
+ import { parseSkillMd } from '../parser/index.js';
13
+ import { parseVercelSource } from './vercel-types.js';
14
+ const execAsync = promisify(exec);
15
+ /**
16
+ * Load a skill from the Vercel Skills ecosystem.
17
+ *
18
+ * This function:
19
+ * 1. Executes `npx skills add <source>` to install the skill
20
+ * 2. Detects the installation location
21
+ * 3. Parses the installed SKILL.md
22
+ * 4. Registers with RevealUI's SkillRegistry
23
+ * 5. Optionally generates embeddings for semantic search
24
+ *
25
+ * @param source - Vercel skill source (e.g., "vercel-labs/agent-skills/react-best-practices")
26
+ * @param options - Load options
27
+ * @returns Fully loaded Skill object
28
+ */
29
+ export async function loadFromVercelSkills(source, options) {
30
+ const parsed = parseVercelSource(source);
31
+ // Determine skill name from path or repo name
32
+ const skillName = parsed.path ? path.basename(parsed.path) : parsed.repo;
33
+ const targetPath = path.join(options.targetDir, skillName);
34
+ // Check if already exists
35
+ if (fs.existsSync(targetPath)) {
36
+ if (options.force) {
37
+ fs.rmSync(targetPath, { recursive: true });
38
+ }
39
+ else {
40
+ throw new Error(`Skill "${skillName}" already exists. Use --force to overwrite.`);
41
+ }
42
+ }
43
+ // Ensure target directory exists
44
+ if (!fs.existsSync(options.targetDir)) {
45
+ fs.mkdirSync(options.targetDir, { recursive: true });
46
+ }
47
+ // Try npx skills first, fallback to direct git clone
48
+ let installPath;
49
+ try {
50
+ const result = await installViaVercelCli(source, {
51
+ dir: options.targetDir,
52
+ force: options.force,
53
+ ref: options.ref ?? parsed.ref,
54
+ global: options.scope === 'global',
55
+ });
56
+ if (result.success && result.installPath) {
57
+ installPath = result.installPath;
58
+ }
59
+ }
60
+ catch (error) {
61
+ logger.warn('Vercel CLI installation failed, falling back to git clone', {
62
+ error: error instanceof Error ? error.message : String(error),
63
+ });
64
+ }
65
+ // Fallback to direct git clone if npx skills failed
66
+ if (!installPath) {
67
+ installPath = await fallbackGitClone(parsed, targetPath);
68
+ }
69
+ // Find and validate SKILL.md
70
+ const skillMdPath = path.join(installPath, 'SKILL.md');
71
+ if (!fs.existsSync(skillMdPath)) {
72
+ // Clean up failed install
73
+ fs.rmSync(installPath, { recursive: true });
74
+ throw new Error(`No SKILL.md found in ${source}`);
75
+ }
76
+ // Parse and validate
77
+ const content = fs.readFileSync(skillMdPath, 'utf-8');
78
+ const parsedSkill = parseSkillMd(content);
79
+ // Create skill object with Vercel source tracking
80
+ const skill = {
81
+ metadata: parsedSkill.metadata,
82
+ instructions: parsedSkill.instructions,
83
+ sourcePath: installPath,
84
+ scope: options.scope,
85
+ source: 'vercel',
86
+ sourceIdentifier: source,
87
+ installedAt: new Date().toISOString(),
88
+ };
89
+ // Register with registry
90
+ if (options.registry.has(skill.metadata.name)) {
91
+ options.registry.unregister(skill.metadata.name);
92
+ }
93
+ options.registry.register(skill);
94
+ // Load fully (with resources and optionally embedding)
95
+ return (await options.registry.loadSkill(skill.metadata.name, options.generateEmbedding)) ?? skill;
96
+ }
97
+ /**
98
+ * Install a skill using the Vercel Skills CLI (npx skills).
99
+ *
100
+ * @param source - Skill source identifier
101
+ * @param options - CLI options
102
+ * @returns Command execution result
103
+ */
104
+ async function installViaVercelCli(source, options) {
105
+ const args = ['skills', 'add', source];
106
+ if (options.global) {
107
+ args.push('--global');
108
+ }
109
+ if (options.dir) {
110
+ args.push('--dir', options.dir);
111
+ }
112
+ if (options.force) {
113
+ args.push('--force');
114
+ }
115
+ if (options.ref) {
116
+ args.push('--ref', options.ref);
117
+ }
118
+ const command = `npx ${args.join(' ')}`;
119
+ try {
120
+ const { stdout, stderr } = await execAsync(command, {
121
+ cwd: options.dir,
122
+ timeout: 60000, // 60 second timeout
123
+ });
124
+ // Parse output to detect installation path
125
+ const installPath = extractInstallPath(stdout, options.dir ?? process.cwd(), source);
126
+ return {
127
+ success: true,
128
+ stdout,
129
+ stderr,
130
+ installPath,
131
+ };
132
+ }
133
+ catch (error) {
134
+ const err = error;
135
+ return {
136
+ success: false,
137
+ stdout: err.stdout ?? '',
138
+ stderr: err.stderr ?? err.message ?? 'Unknown error',
139
+ };
140
+ }
141
+ }
142
+ /**
143
+ * Extract the installation path from npx skills output.
144
+ *
145
+ * @param output - Command stdout
146
+ * @param baseDir - Base directory where skill was installed
147
+ * @param source - Original source string
148
+ * @returns Detected installation path
149
+ */
150
+ function extractInstallPath(output, baseDir, source) {
151
+ // Try to parse the output to find installation location
152
+ // Common patterns:
153
+ // - "Installed skill to: /path/to/skill"
154
+ // - "✓ Installed skill-name"
155
+ const installMatch = output.match(/(?:Installed|installed).*?(?:to:?\s+)?([^\n]+)/i);
156
+ if (installMatch?.[1]) {
157
+ const detectedPath = installMatch[1].trim();
158
+ if (fs.existsSync(detectedPath)) {
159
+ return detectedPath;
160
+ }
161
+ }
162
+ // Fallback: try to construct path from source
163
+ const parsed = parseVercelSource(source);
164
+ const skillName = parsed.path ? path.basename(parsed.path) : parsed.repo;
165
+ const constructedPath = path.join(baseDir, skillName);
166
+ if (fs.existsSync(constructedPath)) {
167
+ return constructedPath;
168
+ }
169
+ return undefined;
170
+ }
171
+ /**
172
+ * Fallback: Clone directly from GitHub if npx skills fails.
173
+ *
174
+ * @param source - Parsed Vercel source
175
+ * @param targetPath - Target installation path
176
+ * @returns Installation path
177
+ */
178
+ async function fallbackGitClone(source, targetPath) {
179
+ const repoUrl = `https://github.com/${source.owner}/${source.repo}.git`;
180
+ if (source.path) {
181
+ // Use sparse checkout for subdirectory
182
+ await sparseClone(repoUrl, targetPath, source.path, source.ref);
183
+ }
184
+ else {
185
+ // Clone entire repo
186
+ await fullClone(repoUrl, targetPath, source.ref);
187
+ }
188
+ return targetPath;
189
+ }
190
+ /**
191
+ * Perform a sparse checkout for a specific path.
192
+ */
193
+ async function sparseClone(repoUrl, targetPath, subPath, ref) {
194
+ const tempDir = `${targetPath}.tmp`;
195
+ try {
196
+ // Initialize sparse checkout
197
+ await execAsync(`git clone --depth 1 --filter=blob:none --sparse ${repoUrl} ${tempDir}`);
198
+ // Configure sparse checkout
199
+ await execAsync(`git -C ${tempDir} sparse-checkout set ${subPath}`);
200
+ // Checkout specific ref if provided
201
+ if (ref) {
202
+ await execAsync(`git -C ${tempDir} fetch --depth 1 origin ${ref}`);
203
+ await execAsync(`git -C ${tempDir} checkout ${ref}`);
204
+ }
205
+ // Move the skill directory to target
206
+ const sourcePath = path.join(tempDir, subPath);
207
+ if (!fs.existsSync(sourcePath)) {
208
+ throw new Error(`Path "${subPath}" not found in repository`);
209
+ }
210
+ fs.renameSync(sourcePath, targetPath);
211
+ }
212
+ finally {
213
+ // Clean up temp directory
214
+ if (fs.existsSync(tempDir)) {
215
+ fs.rmSync(tempDir, { recursive: true });
216
+ }
217
+ }
218
+ }
219
+ /**
220
+ * Perform a full shallow clone.
221
+ */
222
+ async function fullClone(repoUrl, targetPath, ref) {
223
+ const refArg = ref ? `--branch ${ref}` : '';
224
+ await execAsync(`git clone --depth 1 ${refArg} ${repoUrl} ${targetPath}`);
225
+ // Remove .git directory to save space
226
+ const gitDir = path.join(targetPath, '.git');
227
+ if (fs.existsSync(gitDir)) {
228
+ fs.rmSync(gitDir, { recursive: true });
229
+ }
230
+ }
231
+ /**
232
+ * Check for updates to an installed Vercel skill.
233
+ *
234
+ * @param skillName - Name of the installed skill
235
+ * @param registry - Skill registry
236
+ * @returns Update information
237
+ */
238
+ export async function checkVercelSkillUpdates(skillName, registry) {
239
+ const skill = registry.get(skillName);
240
+ if (!skill) {
241
+ throw new Error(`Skill "${skillName}" is not installed`);
242
+ }
243
+ if (skill.source !== 'vercel') {
244
+ throw new Error(`Skill "${skillName}" is not a Vercel skill`);
245
+ }
246
+ if (!skill.sourceIdentifier) {
247
+ throw new Error(`Skill "${skillName}" does not have source identifier`);
248
+ }
249
+ // For now, we'll use a simple approach:
250
+ // 1. Check if the GitHub repo has newer commits
251
+ // 2. Compare version in SKILL.md if available
252
+ try {
253
+ const parsed = parseVercelSource(skill.sourceIdentifier);
254
+ const repoUrl = `https://github.com/${parsed.owner}/${parsed.repo}.git`;
255
+ const currentVersion = skill.metadata.version ?? 'unknown';
256
+ // Version comparison requires fetching and parsing the remote SKILL.md,
257
+ // which is not yet implemented. Return false to avoid misleading prompts.
258
+ return {
259
+ available: false,
260
+ currentVersion,
261
+ changelog: `Check ${repoUrl} for changes`,
262
+ };
263
+ }
264
+ catch (error) {
265
+ logger.error('Error checking for updates', error instanceof Error ? error : new Error(String(error)));
266
+ return {
267
+ available: false,
268
+ currentVersion: skill.metadata.version,
269
+ };
270
+ }
271
+ }
272
+ /**
273
+ * Update an installed Vercel skill to the latest version.
274
+ *
275
+ * @param skillName - Name of the skill to update
276
+ * @param registry - Skill registry
277
+ * @returns Updated skill object
278
+ */
279
+ export async function updateVercelSkill(skillName, registry) {
280
+ const skill = registry.get(skillName);
281
+ if (!skill) {
282
+ throw new Error(`Skill "${skillName}" is not installed`);
283
+ }
284
+ if (skill.source !== 'vercel') {
285
+ throw new Error(`Skill "${skillName}" is not a Vercel skill`);
286
+ }
287
+ if (!skill.sourceIdentifier) {
288
+ throw new Error(`Skill "${skillName}" does not have source identifier`);
289
+ }
290
+ // Reinstall with force flag
291
+ const options = {
292
+ targetDir: path.dirname(skill.sourcePath),
293
+ scope: skill.scope,
294
+ registry,
295
+ generateEmbedding: !!skill.embedding,
296
+ force: true,
297
+ };
298
+ return loadFromVercelSkills(skill.sourceIdentifier, options);
299
+ }
300
+ /**
301
+ * Check if npx skills CLI is available.
302
+ *
303
+ * @returns True if available, false otherwise
304
+ */
305
+ export async function isVercelCliAvailable() {
306
+ try {
307
+ await execAsync('npx skills --version', { timeout: 5000 });
308
+ return true;
309
+ }
310
+ catch {
311
+ return false;
312
+ }
313
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Vercel Skills Types
3
+ *
4
+ * Type definitions for interacting with the Vercel Skills ecosystem (skills.sh).
5
+ */
6
+ import { z } from 'zod/v4';
7
+ /**
8
+ * Vercel skill source specification.
9
+ *
10
+ * Formats supported:
11
+ * - owner/repo - Install from GitHub via Vercel Skills
12
+ * - owner/repo/path/to/skill - Install specific skill from monorepo
13
+ * - @scope/package - Install from npm (future)
14
+ */
15
+ export interface VercelSource {
16
+ owner: string;
17
+ repo: string;
18
+ path?: string;
19
+ ref?: string;
20
+ }
21
+ /**
22
+ * Parse a Vercel source string into components.
23
+ *
24
+ * @example
25
+ * parseVercelSource("vercel-labs/agent-skills")
26
+ * // { owner: "vercel-labs", repo: "agent-skills" }
27
+ *
28
+ * parseVercelSource("vercel-labs/agent-skills/skills/react-best-practices")
29
+ * // { owner: "vercel-labs", repo: "agent-skills", path: "skills/react-best-practices" }
30
+ */
31
+ export declare function parseVercelSource(source: string): VercelSource;
32
+ /**
33
+ * Vercel Skills CLI installation options.
34
+ */
35
+ export interface VercelCliOptions {
36
+ /** Install globally or locally */
37
+ global?: boolean;
38
+ /** Target directory override */
39
+ dir?: string;
40
+ /** Force reinstall */
41
+ force?: boolean;
42
+ /** Specific version/ref to install */
43
+ ref?: string;
44
+ }
45
+ /**
46
+ * Result of npx skills command execution.
47
+ */
48
+ export interface VercelCommandResult {
49
+ success: boolean;
50
+ stdout: string;
51
+ stderr: string;
52
+ installPath?: string;
53
+ }
54
+ /**
55
+ * Update information for a Vercel skill.
56
+ */
57
+ export declare const UpdateInfoSchema: z.ZodObject<{
58
+ available: z.ZodBoolean;
59
+ currentVersion: z.ZodOptional<z.ZodString>;
60
+ latestVersion: z.ZodOptional<z.ZodString>;
61
+ changelog: z.ZodOptional<z.ZodString>;
62
+ }, z.core.$strip>;
63
+ export type UpdateInfo = z.infer<typeof UpdateInfoSchema>;
64
+ //# sourceMappingURL=vercel-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-types.d.ts","sourceRoot":"","sources":["../../../src/skills/loader/vercel-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CA+B9D;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;iBAY3B,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Vercel Skills Types
3
+ *
4
+ * Type definitions for interacting with the Vercel Skills ecosystem (skills.sh).
5
+ */
6
+ import { z } from 'zod/v4';
7
+ /**
8
+ * Parse a Vercel source string into components.
9
+ *
10
+ * @example
11
+ * parseVercelSource("vercel-labs/agent-skills")
12
+ * // { owner: "vercel-labs", repo: "agent-skills" }
13
+ *
14
+ * parseVercelSource("vercel-labs/agent-skills/skills/react-best-practices")
15
+ * // { owner: "vercel-labs", repo: "agent-skills", path: "skills/react-best-practices" }
16
+ */
17
+ export function parseVercelSource(source) {
18
+ // Handle @ref suffix for specific branch/tag
19
+ let ref;
20
+ let sourcePath = source;
21
+ if (source.includes('@')) {
22
+ const atIndex = source.lastIndexOf('@');
23
+ ref = source.slice(atIndex + 1);
24
+ sourcePath = source.slice(0, atIndex);
25
+ }
26
+ const parts = sourcePath.split('/');
27
+ if (parts.length < 2) {
28
+ throw new Error(`Invalid Vercel source: ${source}. Expected format: owner/repo[/path][@ref]`);
29
+ }
30
+ const owner = parts[0];
31
+ const repo = parts[1];
32
+ const pathParts = parts.slice(2);
33
+ if (!(owner && repo)) {
34
+ throw new Error(`Invalid Vercel source: ${source}. Expected format: owner/repo[/path][@ref]`);
35
+ }
36
+ return {
37
+ owner,
38
+ repo,
39
+ path: pathParts.length > 0 ? pathParts.join('/') : undefined,
40
+ ref,
41
+ };
42
+ }
43
+ /**
44
+ * Update information for a Vercel skill.
45
+ */
46
+ export const UpdateInfoSchema = z.object({
47
+ /** Whether an update is available */
48
+ available: z.boolean(),
49
+ /** Current installed version */
50
+ currentVersion: z.string().optional(),
51
+ /** Latest available version */
52
+ latestVersion: z.string().optional(),
53
+ /** Changes in the update */
54
+ changelog: z.string().optional(),
55
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SKILL.md Parser
3
+ *
4
+ * Utilities for parsing and validating SKILL.md files.
5
+ */
6
+ export { generateSkillMd, type ParsedSkillMd, parseAllowedToolsString, parseSkillMd, parseSkillMetadataOnly, validateSkillMd, } from './skill-md-parser.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skills/parser/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,uBAAuB,EACvB,YAAY,EACZ,sBAAsB,EACtB,eAAe,GAChB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * SKILL.md Parser
3
+ *
4
+ * Utilities for parsing and validating SKILL.md files.
5
+ */
6
+ export { generateSkillMd, parseAllowedToolsString, parseSkillMd, parseSkillMetadataOnly, validateSkillMd, } from './skill-md-parser.js';
@@ -0,0 +1,64 @@
1
+ /**
2
+ * SKILL.md Parser
3
+ *
4
+ * Parses SKILL.md files to extract YAML frontmatter and markdown instructions.
5
+ */
6
+ import { type SkillMetadata } from '../types.js';
7
+ /**
8
+ * Result of parsing a SKILL.md file.
9
+ */
10
+ export interface ParsedSkillMd {
11
+ metadata: SkillMetadata;
12
+ instructions: string;
13
+ rawFrontmatter: string;
14
+ }
15
+ /**
16
+ * Parse a SKILL.md file content into metadata and instructions.
17
+ *
18
+ * SKILL.md format:
19
+ * ```
20
+ * ---
21
+ * name: skill-name
22
+ * description: What this skill does
23
+ * ---
24
+ *
25
+ * # Instructions
26
+ *
27
+ * Markdown content here...
28
+ * ```
29
+ *
30
+ * @param content - Raw SKILL.md file content
31
+ * @returns Parsed skill metadata and instructions
32
+ * @throws Error if frontmatter is missing or invalid
33
+ */
34
+ export declare function parseSkillMd(content: string): ParsedSkillMd;
35
+ /**
36
+ * Parse allowed-tools string format into array.
37
+ *
38
+ * Example: "Bash(git:*) Read Write(*.ts)" -> ["Bash(git:*)", "Read", "Write(*.ts)"]
39
+ */
40
+ export declare function parseAllowedToolsString(spec: string): string[];
41
+ /**
42
+ * Extract only the metadata from a SKILL.md file (lightweight parsing).
43
+ * Used for loading skill listings without full content.
44
+ *
45
+ * @param content - Raw SKILL.md file content
46
+ * @returns Just the metadata portion
47
+ */
48
+ export declare function parseSkillMetadataOnly(content: string): SkillMetadata;
49
+ /**
50
+ * Validate that a string is valid SKILL.md format.
51
+ *
52
+ * @param content - Content to validate
53
+ * @returns true if valid, error message if invalid
54
+ */
55
+ export declare function validateSkillMd(content: string): true | string;
56
+ /**
57
+ * Generate a SKILL.md file from metadata and instructions.
58
+ *
59
+ * @param metadata - Skill metadata
60
+ * @param instructions - Markdown instructions
61
+ * @returns SKILL.md file content
62
+ */
63
+ export declare function generateSkillMd(metadata: SkillMetadata, instructions: string): string;
64
+ //# sourceMappingURL=skill-md-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-md-parser.d.ts","sourceRoot":"","sources":["../../../src/skills/parser/skill-md-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,aAAa,CAAA;AAyGrE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA6C3D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B9D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAO9D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAGrF"}