@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,189 @@
1
+ /**
2
+ * Vercel Skills Catalog
3
+ *
4
+ * Fetch and cache the skills.sh catalog for discovery.
5
+ */
6
+ import * as fs from 'node:fs';
7
+ import * as os from 'node:os';
8
+ import * as path from 'node:path';
9
+ import { logger } from '@revealui/core/observability/logger';
10
+ /**
11
+ * Get the default cache directory.
12
+ */
13
+ function getDefaultCacheDir() {
14
+ return path.join(os.homedir(), '.revealui', 'cache');
15
+ }
16
+ /**
17
+ * Get the catalog cache file path.
18
+ */
19
+ function getCatalogCachePath(cacheDir) {
20
+ const dir = cacheDir ?? getDefaultCacheDir();
21
+ return path.join(dir, 'vercel-catalog.json');
22
+ }
23
+ /**
24
+ * Fetch the Vercel Skills catalog.
25
+ *
26
+ * This function fetches the catalog from skills.sh (or a known GitHub source)
27
+ * and caches it locally. The cache is invalidated after 24 hours by default.
28
+ *
29
+ * @param config - Configuration options
30
+ * @returns The catalog of available skills
31
+ */
32
+ export async function fetchVercelCatalog(config = {}) {
33
+ const cachePath = getCatalogCachePath(config.cacheDir);
34
+ const cacheTtl = config.cacheTtl ?? 24 * 60 * 60 * 1000; // 24 hours
35
+ // Try to load from cache if not forcing refresh
36
+ if (!config.forceRefresh) {
37
+ try {
38
+ const cached = loadFromCache(cachePath, cacheTtl);
39
+ if (cached) {
40
+ return cached;
41
+ }
42
+ }
43
+ catch (error) {
44
+ // Ignore cache errors, fetch fresh
45
+ logger.warn('Error loading catalog cache', {
46
+ error: error instanceof Error ? error.message : String(error),
47
+ });
48
+ }
49
+ }
50
+ // Fetch fresh catalog
51
+ const catalog = await fetchFreshCatalog();
52
+ // Save to cache
53
+ try {
54
+ saveToCache(cachePath, catalog);
55
+ }
56
+ catch (error) {
57
+ logger.warn('Error saving catalog cache', {
58
+ error: error instanceof Error ? error.message : String(error),
59
+ });
60
+ }
61
+ return catalog;
62
+ }
63
+ /**
64
+ * Load catalog from cache if valid.
65
+ */
66
+ function loadFromCache(cachePath, ttl) {
67
+ if (!fs.existsSync(cachePath)) {
68
+ return null;
69
+ }
70
+ const stats = fs.statSync(cachePath);
71
+ const age = Date.now() - stats.mtimeMs;
72
+ if (age > ttl) {
73
+ return null;
74
+ }
75
+ const content = fs.readFileSync(cachePath, 'utf-8');
76
+ return JSON.parse(content);
77
+ }
78
+ /**
79
+ * Save catalog to cache.
80
+ */
81
+ function saveToCache(cachePath, catalog) {
82
+ const dir = path.dirname(cachePath);
83
+ if (!fs.existsSync(dir)) {
84
+ fs.mkdirSync(dir, { recursive: true });
85
+ }
86
+ fs.writeFileSync(cachePath, JSON.stringify(catalog, null, 2), 'utf-8');
87
+ }
88
+ /**
89
+ * Fetch fresh catalog from Vercel Skills ecosystem.
90
+ *
91
+ * Since skills.sh doesn't have a public API yet, we'll fetch from known sources:
92
+ * 1. vercel-labs/agent-skills repository (official Vercel skills)
93
+ * 2. Community aggregated lists
94
+ */
95
+ async function fetchFreshCatalog() {
96
+ // For now, we'll create a curated list of known Vercel skills
97
+ // In the future, this could fetch from a public API
98
+ const skills = [
99
+ {
100
+ id: 'vercel-labs/agent-skills/react-best-practices',
101
+ name: 'react-best-practices',
102
+ owner: 'vercel-labs',
103
+ repo: 'agent-skills',
104
+ path: 'skills/react-best-practices',
105
+ description: 'React optimization patterns and best practices from Vercel Engineering',
106
+ installs: 81700,
107
+ tags: ['react', 'optimization', 'best-practices'],
108
+ compatibility: ['claude-code', 'cursor', 'copilot'],
109
+ },
110
+ {
111
+ id: 'vercel-labs/agent-skills/web-design-guidelines',
112
+ name: 'web-design-guidelines',
113
+ owner: 'vercel-labs',
114
+ repo: 'agent-skills',
115
+ path: 'skills/web-design-guidelines',
116
+ description: '100+ accessibility and performance rules for web design',
117
+ installs: 61900,
118
+ tags: ['design', 'accessibility', 'performance'],
119
+ compatibility: ['universal'],
120
+ },
121
+ {
122
+ id: 'vercel-labs/agent-skills/find-skills',
123
+ name: 'find-skills',
124
+ owner: 'vercel-labs',
125
+ repo: 'agent-skills',
126
+ path: 'skills/find-skills',
127
+ description: 'Meta-skill for discovering other skills',
128
+ installs: 78800,
129
+ tags: ['discovery', 'meta'],
130
+ compatibility: ['universal'],
131
+ },
132
+ {
133
+ id: 'vercel-labs/agent-skills/nextjs-best-practices',
134
+ name: 'nextjs-best-practices',
135
+ owner: 'vercel-labs',
136
+ repo: 'agent-skills',
137
+ path: 'skills/nextjs-best-practices',
138
+ description: 'Next.js App Router best practices and optimization patterns',
139
+ installs: 45200,
140
+ tags: ['nextjs', 'react', 'best-practices'],
141
+ compatibility: ['claude-code', 'cursor', 'copilot'],
142
+ },
143
+ {
144
+ id: 'vercel-labs/agent-skills/typescript-patterns',
145
+ name: 'typescript-patterns',
146
+ owner: 'vercel-labs',
147
+ repo: 'agent-skills',
148
+ path: 'skills/typescript-patterns',
149
+ description: 'TypeScript design patterns and type safety best practices',
150
+ installs: 38900,
151
+ tags: ['typescript', 'patterns', 'types'],
152
+ compatibility: ['universal'],
153
+ },
154
+ ];
155
+ const metadata = {
156
+ totalSkills: skills.length,
157
+ fetchedAt: new Date().toISOString(),
158
+ version: '1.0.0',
159
+ };
160
+ return {
161
+ metadata,
162
+ skills,
163
+ };
164
+ }
165
+ /**
166
+ * Get trending skills from the catalog (sorted by installs).
167
+ *
168
+ * @param limit - Maximum number of skills to return
169
+ * @param config - Catalog configuration
170
+ * @returns Trending skills
171
+ */
172
+ export async function getTrendingSkills(limit = 10, config = {}) {
173
+ const catalog = await fetchVercelCatalog(config);
174
+ return catalog.skills
175
+ .filter((skill) => skill.installs !== undefined)
176
+ .sort((a, b) => (b.installs ?? 0) - (a.installs ?? 0))
177
+ .slice(0, limit);
178
+ }
179
+ /**
180
+ * Clear the catalog cache.
181
+ *
182
+ * @param cacheDir - Cache directory
183
+ */
184
+ export function clearCatalogCache(cacheDir) {
185
+ const cachePath = getCatalogCachePath(cacheDir);
186
+ if (fs.existsSync(cachePath)) {
187
+ fs.unlinkSync(cachePath);
188
+ }
189
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Compatibility and Enhancement Layer
3
+ *
4
+ * Ensure Vercel Skills work seamlessly with RevealUI's enhanced features.
5
+ */
6
+ export { batchGenerateEmbeddings, enhanceSkillMetadata, generateEmbeddingsForVercelSkill, } from './skill-enhancer.js';
7
+ export { formatAllowedToolsString, isToolSupported, mapRevealUIToolsToVercel, mapVercelToolsToRevealUI, parseAllowedToolsString, REVEALUI_TO_VERCEL, REVEALUI_TOOLS, type RevealUITool, VERCEL_TO_REVEALUI, VERCEL_TOOLS, type VercelTool, } from './tool-mapper.js';
8
+ export { checkVercelCompatibility, normalizeVercelSkill, toVercelFormat, } from './vercel-compat.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skills/compat/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,KAAK,YAAY,EACjB,kBAAkB,EAClB,YAAY,EACZ,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,GACf,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Compatibility and Enhancement Layer
3
+ *
4
+ * Ensure Vercel Skills work seamlessly with RevealUI's enhanced features.
5
+ */
6
+ export { batchGenerateEmbeddings, enhanceSkillMetadata, generateEmbeddingsForVercelSkill, } from './skill-enhancer.js';
7
+ export { formatAllowedToolsString, isToolSupported, mapRevealUIToolsToVercel, mapVercelToolsToRevealUI, parseAllowedToolsString, REVEALUI_TO_VERCEL, REVEALUI_TOOLS, VERCEL_TO_REVEALUI, VERCEL_TOOLS, } from './tool-mapper.js';
8
+ export { checkVercelCompatibility, normalizeVercelSkill, toVercelFormat, } from './vercel-compat.js';
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Skill Enhancer
3
+ *
4
+ * Add RevealUI-specific enhancements to Vercel skills.
5
+ */
6
+ import type { Skill } from '../types.js';
7
+ /**
8
+ * Generate embeddings for a Vercel skill.
9
+ *
10
+ * Vercel skills don't have embeddings by default, but RevealUI uses them
11
+ * for semantic search. This function adds that capability.
12
+ *
13
+ * @param skill - Skill to enhance
14
+ * @returns Skill with embedding
15
+ */
16
+ export declare function generateEmbeddingsForVercelSkill(skill: Skill): Promise<Skill>;
17
+ /**
18
+ * Enhance multiple skills with embeddings.
19
+ *
20
+ * @param skills - Skills to enhance
21
+ * @param concurrency - Number of concurrent embedding generations
22
+ * @returns Enhanced skills
23
+ */
24
+ export declare function batchGenerateEmbeddings(skills: Skill[], concurrency?: number): Promise<Skill[]>;
25
+ /**
26
+ * Enhance a skill with additional metadata.
27
+ *
28
+ * @param skill - Skill to enhance
29
+ * @param enhancements - Additional metadata to add
30
+ * @returns Enhanced skill
31
+ */
32
+ export declare function enhanceSkillMetadata(skill: Skill, enhancements: {
33
+ tags?: string[];
34
+ compatibility?: Array<'claude-code' | 'cursor' | 'windsurf' | 'cline' | 'copilot' | 'openai' | 'anthropic' | 'universal'>;
35
+ minContextWindow?: number;
36
+ }): Skill;
37
+ //# sourceMappingURL=skill-enhancer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-enhancer.d.ts","sourceRoot":"","sources":["../../../src/skills/compat/skill-enhancer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAuBnF;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,SAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAahG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,KAAK,CACjB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,WAAW,CACd,CAAA;IACD,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B,GACA,KAAK,CAmBP"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Skill Enhancer
3
+ *
4
+ * Add RevealUI-specific enhancements to Vercel skills.
5
+ */
6
+ import { generateEmbedding } from '../../embeddings/index.js';
7
+ /**
8
+ * Generate embeddings for a Vercel skill.
9
+ *
10
+ * Vercel skills don't have embeddings by default, but RevealUI uses them
11
+ * for semantic search. This function adds that capability.
12
+ *
13
+ * @param skill - Skill to enhance
14
+ * @returns Skill with embedding
15
+ */
16
+ export async function generateEmbeddingsForVercelSkill(skill) {
17
+ // Skip if already has embedding
18
+ if (skill.embedding) {
19
+ return skill;
20
+ }
21
+ // Create text representation for embedding
22
+ const textForEmbedding = [
23
+ skill.metadata.name,
24
+ skill.metadata.description,
25
+ skill.metadata.tags?.join(' ') ?? '',
26
+ skill.instructions.slice(0, 1000), // First 1000 chars of instructions
27
+ ]
28
+ .filter(Boolean)
29
+ .join('\n');
30
+ // Generate embedding
31
+ const result = await generateEmbedding(textForEmbedding);
32
+ return {
33
+ ...skill,
34
+ embedding: result.vector,
35
+ };
36
+ }
37
+ /**
38
+ * Enhance multiple skills with embeddings.
39
+ *
40
+ * @param skills - Skills to enhance
41
+ * @param concurrency - Number of concurrent embedding generations
42
+ * @returns Enhanced skills
43
+ */
44
+ export async function batchGenerateEmbeddings(skills, concurrency = 5) {
45
+ const enhanced = [];
46
+ // Process in batches
47
+ for (let i = 0; i < skills.length; i += concurrency) {
48
+ const batch = skills.slice(i, i + concurrency);
49
+ const enhancedBatch = await Promise.all(batch.map((skill) => generateEmbeddingsForVercelSkill(skill)));
50
+ enhanced.push(...enhancedBatch);
51
+ }
52
+ return enhanced;
53
+ }
54
+ /**
55
+ * Enhance a skill with additional metadata.
56
+ *
57
+ * @param skill - Skill to enhance
58
+ * @param enhancements - Additional metadata to add
59
+ * @returns Enhanced skill
60
+ */
61
+ export function enhanceSkillMetadata(skill, enhancements) {
62
+ const enhanced = { ...skill };
63
+ if (enhancements.tags) {
64
+ enhanced.metadata.tags = [...(enhanced.metadata.tags ?? []), ...enhancements.tags];
65
+ }
66
+ if (enhancements.compatibility) {
67
+ enhanced.metadata.compatibility = [
68
+ ...(enhanced.metadata.compatibility ?? []),
69
+ ...enhancements.compatibility,
70
+ ];
71
+ }
72
+ if (enhancements.minContextWindow !== undefined) {
73
+ enhanced.metadata.minContextWindow = enhancements.minContextWindow;
74
+ }
75
+ return enhanced;
76
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Tool Mapper
3
+ *
4
+ * Map allowed-tools between Vercel and RevealUI formats.
5
+ */
6
+ /**
7
+ * Vercel Skills CLI tool names.
8
+ */
9
+ export declare const VERCEL_TOOLS: readonly ["bash", "read", "write", "edit", "glob", "grep", "web-fetch", "web-search", "ask-user"];
10
+ export type VercelTool = (typeof VERCEL_TOOLS)[number];
11
+ /**
12
+ * RevealUI tool names.
13
+ */
14
+ export declare const REVEALUI_TOOLS: readonly ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch", "AskUserQuestion"];
15
+ export type RevealUITool = (typeof REVEALUI_TOOLS)[number];
16
+ /**
17
+ * Mapping from Vercel tool names to RevealUI tool names.
18
+ */
19
+ export declare const VERCEL_TO_REVEALUI: Record<VercelTool, RevealUITool>;
20
+ /**
21
+ * Mapping from RevealUI tool names to Vercel tool names.
22
+ */
23
+ export declare const REVEALUI_TO_VERCEL: Record<RevealUITool, VercelTool>;
24
+ /**
25
+ * Convert Vercel allowed-tools to RevealUI format.
26
+ *
27
+ * @param vercelTools - Array of Vercel tool specifications
28
+ * @returns Array of RevealUI tool specifications
29
+ */
30
+ export declare function mapVercelToolsToRevealUI(vercelTools: string[]): string[];
31
+ /**
32
+ * Convert RevealUI allowed-tools to Vercel format.
33
+ *
34
+ * @param revealuiTools - Array of RevealUI tool specifications
35
+ * @returns Array of Vercel tool specifications
36
+ */
37
+ export declare function mapRevealUIToolsToVercel(revealuiTools: string[]): string[];
38
+ /**
39
+ * Check if a tool is supported by both Vercel and RevealUI.
40
+ *
41
+ * @param tool - Tool name (either format)
42
+ * @returns true if supported
43
+ */
44
+ export declare function isToolSupported(tool: string): boolean;
45
+ /**
46
+ * Parse an allowed-tools string (space-separated) into array.
47
+ *
48
+ * Handles tool specifications like "bash(git:*) read write".
49
+ *
50
+ * @param toolsString - Space-separated tool specifications
51
+ * @returns Array of tool specifications
52
+ */
53
+ export declare function parseAllowedToolsString(toolsString: string): string[];
54
+ /**
55
+ * Convert array of tool specifications to space-separated string.
56
+ *
57
+ * @param tools - Array of tool specifications
58
+ * @returns Space-separated tool specifications
59
+ */
60
+ export declare function formatAllowedToolsString(tools: string[]): string;
61
+ //# sourceMappingURL=tool-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-mapper.d.ts","sourceRoot":"","sources":["../../../src/skills/compat/tool-mapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,mGAUf,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD;;GAEG;AACH,eAAO,MAAM,cAAc,wGAUjB,CAAA;AAEV,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAU/D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAU/D,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiBxE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiB1E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASrD;AASD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BrE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Tool Mapper
3
+ *
4
+ * Map allowed-tools between Vercel and RevealUI formats.
5
+ */
6
+ /**
7
+ * Vercel Skills CLI tool names.
8
+ */
9
+ export const VERCEL_TOOLS = [
10
+ 'bash',
11
+ 'read',
12
+ 'write',
13
+ 'edit',
14
+ 'glob',
15
+ 'grep',
16
+ 'web-fetch',
17
+ 'web-search',
18
+ 'ask-user',
19
+ ];
20
+ /**
21
+ * RevealUI tool names.
22
+ */
23
+ export const REVEALUI_TOOLS = [
24
+ 'Bash',
25
+ 'Read',
26
+ 'Write',
27
+ 'Edit',
28
+ 'Glob',
29
+ 'Grep',
30
+ 'WebFetch',
31
+ 'WebSearch',
32
+ 'AskUserQuestion',
33
+ ];
34
+ /**
35
+ * Mapping from Vercel tool names to RevealUI tool names.
36
+ */
37
+ export const VERCEL_TO_REVEALUI = {
38
+ bash: 'Bash',
39
+ read: 'Read',
40
+ write: 'Write',
41
+ edit: 'Edit',
42
+ glob: 'Glob',
43
+ grep: 'Grep',
44
+ 'web-fetch': 'WebFetch',
45
+ 'web-search': 'WebSearch',
46
+ 'ask-user': 'AskUserQuestion',
47
+ };
48
+ /**
49
+ * Mapping from RevealUI tool names to Vercel tool names.
50
+ */
51
+ export const REVEALUI_TO_VERCEL = {
52
+ Bash: 'bash',
53
+ Read: 'read',
54
+ Write: 'write',
55
+ Edit: 'edit',
56
+ Glob: 'glob',
57
+ Grep: 'grep',
58
+ WebFetch: 'web-fetch',
59
+ WebSearch: 'web-search',
60
+ AskUserQuestion: 'ask-user',
61
+ };
62
+ /**
63
+ * Convert Vercel allowed-tools to RevealUI format.
64
+ *
65
+ * @param vercelTools - Array of Vercel tool specifications
66
+ * @returns Array of RevealUI tool specifications
67
+ */
68
+ export function mapVercelToolsToRevealUI(vercelTools) {
69
+ return vercelTools.map((tool) => {
70
+ // Extract tool name and filter
71
+ const match = tool.match(/^([^(]+)(\(.*\))?$/);
72
+ if (!match) {
73
+ return tool;
74
+ }
75
+ const [, toolName, filter] = match;
76
+ const name = toolName?.trim().toLowerCase();
77
+ // Map to RevealUI tool name
78
+ const mappedName = VERCEL_TO_REVEALUI[name] ?? capitalize(name);
79
+ // Reconstruct with filter if present
80
+ return filter ? `${mappedName}${filter}` : mappedName;
81
+ });
82
+ }
83
+ /**
84
+ * Convert RevealUI allowed-tools to Vercel format.
85
+ *
86
+ * @param revealuiTools - Array of RevealUI tool specifications
87
+ * @returns Array of Vercel tool specifications
88
+ */
89
+ export function mapRevealUIToolsToVercel(revealuiTools) {
90
+ return revealuiTools.map((tool) => {
91
+ // Extract tool name and filter
92
+ const match = tool.match(/^([^(]+)(\(.*\))?$/);
93
+ if (!match) {
94
+ return tool.toLowerCase();
95
+ }
96
+ const [, toolName, filter] = match;
97
+ const name = toolName?.trim();
98
+ // Map to Vercel tool name
99
+ const mappedName = REVEALUI_TO_VERCEL[name] ?? toolName?.toLowerCase() ?? '';
100
+ // Reconstruct with filter if present
101
+ return filter ? `${mappedName}${filter}` : mappedName;
102
+ });
103
+ }
104
+ /**
105
+ * Check if a tool is supported by both Vercel and RevealUI.
106
+ *
107
+ * @param tool - Tool name (either format)
108
+ * @returns true if supported
109
+ */
110
+ export function isToolSupported(tool) {
111
+ const normalizedTool = tool
112
+ .toLowerCase()
113
+ .replace(/\(.*\)/, '')
114
+ .trim();
115
+ return (VERCEL_TOOLS.includes(normalizedTool) ||
116
+ REVEALUI_TOOLS.some((t) => t.toLowerCase() === normalizedTool));
117
+ }
118
+ /**
119
+ * Capitalize first letter of a string.
120
+ */
121
+ function capitalize(str) {
122
+ return str.charAt(0).toUpperCase() + str.slice(1);
123
+ }
124
+ /**
125
+ * Parse an allowed-tools string (space-separated) into array.
126
+ *
127
+ * Handles tool specifications like "bash(git:*) read write".
128
+ *
129
+ * @param toolsString - Space-separated tool specifications
130
+ * @returns Array of tool specifications
131
+ */
132
+ export function parseAllowedToolsString(toolsString) {
133
+ const tools = [];
134
+ let current = '';
135
+ let parenDepth = 0;
136
+ for (const char of toolsString) {
137
+ if (char === '(') {
138
+ parenDepth++;
139
+ current += char;
140
+ }
141
+ else if (char === ')') {
142
+ parenDepth--;
143
+ current += char;
144
+ }
145
+ else if (char === ' ' && parenDepth === 0) {
146
+ if (current.trim()) {
147
+ tools.push(current.trim());
148
+ }
149
+ current = '';
150
+ }
151
+ else {
152
+ current += char;
153
+ }
154
+ }
155
+ if (current.trim()) {
156
+ tools.push(current.trim());
157
+ }
158
+ return tools;
159
+ }
160
+ /**
161
+ * Convert array of tool specifications to space-separated string.
162
+ *
163
+ * @param tools - Array of tool specifications
164
+ * @returns Space-separated tool specifications
165
+ */
166
+ export function formatAllowedToolsString(tools) {
167
+ return tools.join(' ');
168
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Vercel Skills Compatibility Layer
3
+ *
4
+ * Ensures Vercel Skills work seamlessly with RevealUI's skill system.
5
+ */
6
+ import type { Skill, SkillMetadata } from '../types.js';
7
+ /**
8
+ * Check if a skill from Vercel is compatible with RevealUI.
9
+ *
10
+ * @param skill - Skill to check
11
+ * @returns true if compatible, error message if not
12
+ */
13
+ export declare function checkVercelCompatibility(skill: Skill): true | string;
14
+ /**
15
+ * Normalize a Vercel skill to RevealUI format.
16
+ *
17
+ * Some Vercel skills may use different conventions or formats.
18
+ * This function ensures they work with RevealUI's expectations.
19
+ *
20
+ * @param skill - Skill to normalize
21
+ * @returns Normalized skill
22
+ */
23
+ export declare function normalizeVercelSkill(skill: Skill): Skill;
24
+ /**
25
+ * Convert RevealUI skill metadata to Vercel format.
26
+ *
27
+ * Useful if we want to export RevealUI skills to the Vercel ecosystem.
28
+ *
29
+ * @param metadata - RevealUI skill metadata
30
+ * @returns Vercel-compatible metadata
31
+ */
32
+ export declare function toVercelFormat(metadata: SkillMetadata): Record<string, unknown>;
33
+ //# sourceMappingURL=vercel-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-compat.d.ts","sourceRoot":"","sources":["../../../src/skills/compat/vercel-compat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEvD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,MAAM,CAuBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAiBxD;AAoDD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoC/E"}