@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,176 @@
1
+ /**
2
+ * Skill Types
3
+ *
4
+ * Zod schemas and types for Agent Skills (skills.sh ecosystem).
5
+ * Skills are instruction packages that agents can discover and use.
6
+ */
7
+ import { z } from 'zod/v4';
8
+ /**
9
+ * Allowed tools specification.
10
+ * Format: "ToolName" or "ToolName(pattern:*)" for filtered access.
11
+ */
12
+ export const AllowedToolSchema = z.union([
13
+ z.string(), // Simple tool name like "Read"
14
+ z.object({
15
+ name: z.string(),
16
+ filter: z.string().optional(), // e.g., "git:*" for Bash(git:*)
17
+ }),
18
+ ]);
19
+ /**
20
+ * Skill metadata from SKILL.md frontmatter.
21
+ * This is the lightweight representation loaded at startup (~100 tokens).
22
+ */
23
+ export const SkillMetadataSchema = z.object({
24
+ /** Unique skill name (kebab-case) */
25
+ name: z.string().regex(/^[a-z0-9-]+$/, 'Skill name must be kebab-case'),
26
+ /** Human-readable description */
27
+ description: z.string(),
28
+ /** Version following semver */
29
+ version: z.string().optional(),
30
+ /** SPDX license identifier */
31
+ license: z.string().optional(),
32
+ /** Author or organization */
33
+ author: z.string().optional(),
34
+ /** Repository URL */
35
+ repository: z.string().url().optional(),
36
+ /** Skill tags for categorization */
37
+ tags: z.array(z.string()).optional(),
38
+ /** Compatible agent frameworks */
39
+ compatibility: z
40
+ .array(z.enum([
41
+ 'claude-code',
42
+ 'cursor',
43
+ 'windsurf',
44
+ 'cline',
45
+ 'copilot',
46
+ 'openai',
47
+ 'anthropic',
48
+ 'universal',
49
+ ]))
50
+ .optional(),
51
+ /** Allowed tools this skill can use */
52
+ allowedTools: z.array(z.string()).optional(),
53
+ /** Minimum required context window */
54
+ minContextWindow: z.number().int().positive().optional(),
55
+ /** Whether this skill requires human approval before actions */
56
+ requiresApproval: z.boolean().optional(),
57
+ });
58
+ /**
59
+ * Resource file within a skill package.
60
+ */
61
+ export const SkillResourceSchema = z.object({
62
+ /** Relative path within skill directory */
63
+ path: z.string(),
64
+ /** File type */
65
+ type: z.enum(['script', 'reference', 'asset', 'template', 'schema']),
66
+ /** File content (loaded on demand) */
67
+ content: z.string().optional(),
68
+ });
69
+ /**
70
+ * Source of a skill - where it was loaded from.
71
+ */
72
+ export const SkillSourceSchema = z.enum(['github', 'local', 'vercel']);
73
+ /**
74
+ * Full skill object with instructions and resources.
75
+ */
76
+ export const SkillSchema = z.object({
77
+ /** Skill metadata from frontmatter */
78
+ metadata: SkillMetadataSchema,
79
+ /** Markdown instructions for the agent */
80
+ instructions: z.string(),
81
+ /** Source path where skill is installed */
82
+ sourcePath: z.string(),
83
+ /** Whether this is a project-local or global skill */
84
+ scope: z.enum(['local', 'global']),
85
+ /** Source type - where this skill came from */
86
+ source: SkillSourceSchema.optional(),
87
+ /** Original source identifier (e.g., GitHub URL, Vercel package name) */
88
+ sourceIdentifier: z.string().optional(),
89
+ /** Optional resources (scripts, references, assets) */
90
+ resources: z.array(SkillResourceSchema).optional(),
91
+ /** Embedding vector for semantic search */
92
+ embedding: z.array(z.number()).optional(),
93
+ /** When the skill was installed */
94
+ installedAt: z.string().datetime().optional(),
95
+ /** When the skill was last updated */
96
+ updatedAt: z.string().datetime().optional(),
97
+ });
98
+ /**
99
+ * Skill activation context - information needed to determine which skills to activate.
100
+ */
101
+ export const SkillActivationContextSchema = z.object({
102
+ /** Current task description or user message */
103
+ taskDescription: z.string().optional(),
104
+ /** Explicit skill names requested (e.g., /skill-name) */
105
+ explicitSkills: z.array(z.string()).optional(),
106
+ /** Current file context (for file-type based activation) */
107
+ currentFiles: z.array(z.string()).optional(),
108
+ /** Project type hints */
109
+ projectType: z.string().optional(),
110
+ });
111
+ /**
112
+ * Result of skill activation.
113
+ */
114
+ export const SkillActivationResultSchema = z.object({
115
+ /** Skills that were activated */
116
+ activatedSkills: z.array(SkillSchema),
117
+ /** Reason each skill was activated */
118
+ activationReasons: z.record(z.string(), z.object({
119
+ type: z.enum(['explicit', 'semantic', 'file-match', 'project-type']),
120
+ score: z.number().optional(),
121
+ reason: z.string().optional(),
122
+ })),
123
+ });
124
+ /**
125
+ * Parse an allowed-tools string like "Bash(git:*)" into structured form.
126
+ */
127
+ export function parseAllowedTool(spec) {
128
+ // Match patterns like "Bash(git:*)" or "Bash(npm install:*)" or simple "Read"
129
+ const match = spec.match(/^(\w+)(?:\(([^)]+)\))?$/);
130
+ if (!match) {
131
+ throw new Error(`Invalid allowed-tool specification: ${spec}`);
132
+ }
133
+ const [, matchedName, filterSpec] = match;
134
+ const name = matchedName;
135
+ if (!filterSpec) {
136
+ return { name };
137
+ }
138
+ // Determine filter type
139
+ let type = 'exact';
140
+ let pattern = filterSpec;
141
+ if (filterSpec.endsWith(':*')) {
142
+ type = 'prefix';
143
+ pattern = filterSpec.slice(0, -2);
144
+ }
145
+ else if (filterSpec.includes('*')) {
146
+ type = 'glob';
147
+ }
148
+ return {
149
+ name,
150
+ filter: { pattern, type },
151
+ };
152
+ }
153
+ /**
154
+ * Check if a command matches an allowed-tool filter.
155
+ */
156
+ export function matchesAllowedTool(toolName, command, allowed) {
157
+ if (allowed.name !== toolName) {
158
+ return false;
159
+ }
160
+ if (!allowed.filter) {
161
+ return true;
162
+ }
163
+ switch (allowed.filter.type) {
164
+ case 'prefix':
165
+ return command.startsWith(allowed.filter.pattern);
166
+ case 'exact':
167
+ return command === allowed.filter.pattern;
168
+ case 'glob': {
169
+ // Simple glob matching - convert * to regex
170
+ const regex = new RegExp(`^${allowed.filter.pattern.replace(/\*/g, '.*').replace(/\?/g, '.')}$`);
171
+ return regex.test(command);
172
+ }
173
+ default:
174
+ return false;
175
+ }
176
+ }
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Agent Specification Template
3
+ *
4
+ * Zod-validated schema that every agent MUST satisfy before registration.
5
+ * Encodes security constraints, permission boundaries, guardrails, and
6
+ * quality requirements directly into the type system. Nothing can be
7
+ * registered without passing validation.
8
+ */
9
+ import { z } from 'zod';
10
+ export declare const AgentPermissionsSchema: z.ZodObject<{
11
+ allowedTools: z.ZodArray<z.ZodString>;
12
+ deniedTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
13
+ maxToolCallsPerTask: z.ZodDefault<z.ZodNumber>;
14
+ maxLLMCallsPerTask: z.ZodDefault<z.ZodNumber>;
15
+ canDelegateToAgents: z.ZodDefault<z.ZodArray<z.ZodString>>;
16
+ canAccessMemoryTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
17
+ semantic: "semantic";
18
+ working: "working";
19
+ episodic: "episodic";
20
+ }>>>;
21
+ maxMemoryWritesPerTask: z.ZodDefault<z.ZodNumber>;
22
+ }, z.core.$strip>;
23
+ export type AgentPermissions = z.infer<typeof AgentPermissionsSchema>;
24
+ export declare const AgentSecuritySchema: z.ZodObject<{
25
+ requiresHumanApproval: z.ZodDefault<z.ZodArray<z.ZodString>>;
26
+ sensitiveDataHandling: z.ZodDefault<z.ZodEnum<{
27
+ none: "none";
28
+ read_only: "read_only";
29
+ full_access: "full_access";
30
+ }>>;
31
+ allowNetworkAccess: z.ZodDefault<z.ZodBoolean>;
32
+ allowFileSystemAccess: z.ZodDefault<z.ZodBoolean>;
33
+ sandboxed: z.ZodDefault<z.ZodBoolean>;
34
+ maxOutputBytes: z.ZodDefault<z.ZodNumber>;
35
+ }, z.core.$strip>;
36
+ export type AgentSecurity = z.infer<typeof AgentSecuritySchema>;
37
+ export declare const AgentGuardrailsSchema: z.ZodObject<{
38
+ maxResponseTokens: z.ZodDefault<z.ZodNumber>;
39
+ prohibitedPatterns: z.ZodDefault<z.ZodArray<z.ZodString>>;
40
+ requiredOutputFormat: z.ZodOptional<z.ZodEnum<{
41
+ text: "text";
42
+ json: "json";
43
+ structured: "structured";
44
+ }>>;
45
+ mustCiteSource: z.ZodDefault<z.ZodBoolean>;
46
+ allowSelfModification: z.ZodDefault<z.ZodBoolean>;
47
+ maxExecutionTimeMs: z.ZodDefault<z.ZodNumber>;
48
+ maxIterations: z.ZodDefault<z.ZodNumber>;
49
+ }, z.core.$strip>;
50
+ export type AgentGuardrails = z.infer<typeof AgentGuardrailsSchema>;
51
+ export declare const AgentQualitySchema: z.ZodObject<{
52
+ minTestCoverage: z.ZodOptional<z.ZodNumber>;
53
+ requiredReviewers: z.ZodDefault<z.ZodNumber>;
54
+ changelogRequired: z.ZodDefault<z.ZodBoolean>;
55
+ }, z.core.$strip>;
56
+ export type AgentQuality = z.infer<typeof AgentQualitySchema>;
57
+ export declare const AgentSpecSchema: z.ZodObject<{
58
+ id: z.ZodString;
59
+ name: z.ZodString;
60
+ version: z.ZodString;
61
+ description: z.ZodString;
62
+ instructions: z.ZodString;
63
+ permissions: z.ZodObject<{
64
+ allowedTools: z.ZodArray<z.ZodString>;
65
+ deniedTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
66
+ maxToolCallsPerTask: z.ZodDefault<z.ZodNumber>;
67
+ maxLLMCallsPerTask: z.ZodDefault<z.ZodNumber>;
68
+ canDelegateToAgents: z.ZodDefault<z.ZodArray<z.ZodString>>;
69
+ canAccessMemoryTypes: z.ZodDefault<z.ZodArray<z.ZodEnum<{
70
+ semantic: "semantic";
71
+ working: "working";
72
+ episodic: "episodic";
73
+ }>>>;
74
+ maxMemoryWritesPerTask: z.ZodDefault<z.ZodNumber>;
75
+ }, z.core.$strip>;
76
+ security: z.ZodObject<{
77
+ requiresHumanApproval: z.ZodDefault<z.ZodArray<z.ZodString>>;
78
+ sensitiveDataHandling: z.ZodDefault<z.ZodEnum<{
79
+ none: "none";
80
+ read_only: "read_only";
81
+ full_access: "full_access";
82
+ }>>;
83
+ allowNetworkAccess: z.ZodDefault<z.ZodBoolean>;
84
+ allowFileSystemAccess: z.ZodDefault<z.ZodBoolean>;
85
+ sandboxed: z.ZodDefault<z.ZodBoolean>;
86
+ maxOutputBytes: z.ZodDefault<z.ZodNumber>;
87
+ }, z.core.$strip>;
88
+ guardrails: z.ZodObject<{
89
+ maxResponseTokens: z.ZodDefault<z.ZodNumber>;
90
+ prohibitedPatterns: z.ZodDefault<z.ZodArray<z.ZodString>>;
91
+ requiredOutputFormat: z.ZodOptional<z.ZodEnum<{
92
+ text: "text";
93
+ json: "json";
94
+ structured: "structured";
95
+ }>>;
96
+ mustCiteSource: z.ZodDefault<z.ZodBoolean>;
97
+ allowSelfModification: z.ZodDefault<z.ZodBoolean>;
98
+ maxExecutionTimeMs: z.ZodDefault<z.ZodNumber>;
99
+ maxIterations: z.ZodDefault<z.ZodNumber>;
100
+ }, z.core.$strip>;
101
+ quality: z.ZodObject<{
102
+ minTestCoverage: z.ZodOptional<z.ZodNumber>;
103
+ requiredReviewers: z.ZodDefault<z.ZodNumber>;
104
+ changelogRequired: z.ZodDefault<z.ZodBoolean>;
105
+ }, z.core.$strip>;
106
+ owner: z.ZodString;
107
+ tier: z.ZodDefault<z.ZodEnum<{
108
+ free: "free";
109
+ pro: "pro";
110
+ enterprise: "enterprise";
111
+ }>>;
112
+ tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
113
+ createdAt: z.ZodDate;
114
+ updatedAt: z.ZodDate;
115
+ }, z.core.$strip>;
116
+ export type AgentSpec = z.infer<typeof AgentSpecSchema>;
117
+ /**
118
+ * Validate an agent specification.
119
+ * Returns the validated spec or throws with detailed error messages.
120
+ */
121
+ export declare function validateAgentSpec(input: unknown): AgentSpec;
122
+ /**
123
+ * Safely validate an agent specification.
124
+ * Returns a result object with either the data or validation errors.
125
+ */
126
+ export declare function safeValidateAgentSpec(input: unknown): {
127
+ success: true;
128
+ data: AgentSpec;
129
+ } | {
130
+ success: false;
131
+ errors: string[];
132
+ };
133
+ /**
134
+ * Create a minimal agent spec with sensible defaults.
135
+ * Fills in security, permissions, guardrails, and quality with safe defaults.
136
+ */
137
+ export declare function createAgentSpec(partial: Pick<AgentSpec, 'id' | 'name' | 'version' | 'description' | 'instructions' | 'owner'> & Partial<AgentSpec>): AgentSpec;
138
+ //# sourceMappingURL=agent-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-spec.d.ts","sourceRoot":"","sources":["../../src/templates/agent-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;iBAejC,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAIrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;iBAa9B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAI/D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;iBAehC,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAInE,eAAO,MAAM,kBAAkB;;;;iBAO7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAI7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6B1B,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAIvD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAE3D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAS3E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,CAAC,GAC5F,OAAO,CAAC,SAAS,CAAC,GACnB,SAAS,CAaX"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Agent Specification Template
3
+ *
4
+ * Zod-validated schema that every agent MUST satisfy before registration.
5
+ * Encodes security constraints, permission boundaries, guardrails, and
6
+ * quality requirements directly into the type system. Nothing can be
7
+ * registered without passing validation.
8
+ */
9
+ import { z } from 'zod';
10
+ // ─── Permission Schema ──────────────────────────────────────────────────────
11
+ export const AgentPermissionsSchema = z.object({
12
+ /** Explicit whitelist of tool names this agent can use */
13
+ allowedTools: z.array(z.string().min(1)),
14
+ /** Explicit blacklist of tool names (overrides allowedTools) */
15
+ deniedTools: z.array(z.string()).default([]),
16
+ /** Maximum tool calls per single task execution */
17
+ maxToolCallsPerTask: z.number().int().positive().default(50),
18
+ /** Maximum LLM API calls per single task execution */
19
+ maxLLMCallsPerTask: z.number().int().positive().default(20),
20
+ /** Agent IDs this agent is allowed to delegate tasks to */
21
+ canDelegateToAgents: z.array(z.string()).default([]),
22
+ /** Memory types this agent can access */
23
+ canAccessMemoryTypes: z.array(z.enum(['working', 'episodic', 'semantic'])).default([]),
24
+ /** Maximum memory write operations per task */
25
+ maxMemoryWritesPerTask: z.number().int().positive().default(100),
26
+ });
27
+ // ─── Security Schema ────────────────────────────────────────────────────────
28
+ export const AgentSecuritySchema = z.object({
29
+ /** Actions that require explicit human approval before execution */
30
+ requiresHumanApproval: z.array(z.string()).default([]),
31
+ /** How this agent handles sensitive data */
32
+ sensitiveDataHandling: z.enum(['none', 'read_only', 'full_access']).default('none'),
33
+ /** Whether the agent can make external network requests */
34
+ allowNetworkAccess: z.boolean().default(false),
35
+ /** Whether the agent can read/write to the filesystem */
36
+ allowFileSystemAccess: z.boolean().default(false),
37
+ /** Whether the agent runs in a sandboxed environment */
38
+ sandboxed: z.boolean().default(true),
39
+ /** Maximum data the agent can exfiltrate per task (bytes, 0 = no limit) */
40
+ maxOutputBytes: z.number().int().min(0).default(0),
41
+ });
42
+ // ─── Guardrails Schema ──────────────────────────────────────────────────────
43
+ export const AgentGuardrailsSchema = z.object({
44
+ /** Maximum tokens in any single LLM response */
45
+ maxResponseTokens: z.number().int().positive().default(4096),
46
+ /** Regex patterns that MUST NOT appear in agent output */
47
+ prohibitedPatterns: z.array(z.string()).default([]),
48
+ /** Required output format (if any) */
49
+ requiredOutputFormat: z.enum(['text', 'json', 'structured']).optional(),
50
+ /** Whether agent outputs must cite their data source */
51
+ mustCiteSource: z.boolean().default(false),
52
+ /** Whether the agent can modify its own specification (should almost always be false) */
53
+ allowSelfModification: z.boolean().default(false),
54
+ /** Maximum task execution time in milliseconds */
55
+ maxExecutionTimeMs: z.number().int().positive().default(120_000),
56
+ /** Maximum number of agentic loop iterations per task */
57
+ maxIterations: z.number().int().positive().default(10),
58
+ });
59
+ // ─── Quality Schema ─────────────────────────────────────────────────────────
60
+ export const AgentQualitySchema = z.object({
61
+ /** Minimum test coverage percentage required for this agent's code */
62
+ minTestCoverage: z.number().min(0).max(100).optional(),
63
+ /** Number of human reviewers required before changes to this spec */
64
+ requiredReviewers: z.number().int().min(0).default(0),
65
+ /** Whether changes to this spec require a changelog entry */
66
+ changelogRequired: z.boolean().default(false),
67
+ });
68
+ // ─── Full Agent Specification ───────────────────────────────────────────────
69
+ export const AgentSpecSchema = z.object({
70
+ /** Unique agent identifier */
71
+ id: z.string().min(1).max(100),
72
+ /** Human-readable agent name */
73
+ name: z.string().min(1).max(100),
74
+ /** Semantic version */
75
+ version: z.string().regex(/^\d+\.\d+\.\d+$/, 'Must be semver (e.g., 1.0.0)'),
76
+ /** What this agent does */
77
+ description: z.string().min(10).max(1000),
78
+ /** System prompt / instructions for the agent */
79
+ instructions: z.string().min(20),
80
+ /** Permission boundaries */
81
+ permissions: AgentPermissionsSchema,
82
+ /** Security constraints */
83
+ security: AgentSecuritySchema,
84
+ /** Behavioral guardrails */
85
+ guardrails: AgentGuardrailsSchema,
86
+ /** Quality requirements */
87
+ quality: AgentQualitySchema,
88
+ /** Who owns this agent spec */
89
+ owner: z.string().min(1),
90
+ /** License tier required */
91
+ tier: z.enum(['free', 'pro', 'enterprise']).default('pro'),
92
+ /** Tags for categorization */
93
+ tags: z.array(z.string()).default([]),
94
+ /** When this spec was created */
95
+ createdAt: z.date(),
96
+ /** When this spec was last updated */
97
+ updatedAt: z.date(),
98
+ });
99
+ // ─── Validation ─────────────────────────────────────────────────────────────
100
+ /**
101
+ * Validate an agent specification.
102
+ * Returns the validated spec or throws with detailed error messages.
103
+ */
104
+ export function validateAgentSpec(input) {
105
+ return AgentSpecSchema.parse(input);
106
+ }
107
+ /**
108
+ * Safely validate an agent specification.
109
+ * Returns a result object with either the data or validation errors.
110
+ */
111
+ export function safeValidateAgentSpec(input) {
112
+ const result = AgentSpecSchema.safeParse(input);
113
+ if (result.success) {
114
+ return { success: true, data: result.data };
115
+ }
116
+ return {
117
+ success: false,
118
+ errors: result.error.issues.map((issue) => `${issue.path.join('.')}: ${issue.message}`),
119
+ };
120
+ }
121
+ /**
122
+ * Create a minimal agent spec with sensible defaults.
123
+ * Fills in security, permissions, guardrails, and quality with safe defaults.
124
+ */
125
+ export function createAgentSpec(partial) {
126
+ const now = new Date();
127
+ return AgentSpecSchema.parse({
128
+ permissions: {},
129
+ security: {},
130
+ guardrails: {},
131
+ quality: {},
132
+ tags: [],
133
+ tier: 'pro',
134
+ createdAt: now,
135
+ updatedAt: now,
136
+ ...partial,
137
+ });
138
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Agent, Skill, and Prompt Specification Templates
3
+ *
4
+ * Zod-validated schemas that enforce guardrails, security, and quality
5
+ * at registration time. Nothing can be registered in the system without
6
+ * passing these validations.
7
+ *
8
+ * ## Quick Start
9
+ *
10
+ * ```typescript
11
+ * import {
12
+ * createAgentSpec,
13
+ * createSkillSpec,
14
+ * createPromptSpec,
15
+ * renderPromptTemplate,
16
+ * } from '@revealui/ai'
17
+ *
18
+ * // Create an agent spec (enforces permissions, security, guardrails)
19
+ * const agentSpec = createAgentSpec({
20
+ * id: 'email-agent',
21
+ * name: 'Email Management Agent',
22
+ * version: '1.0.0',
23
+ * description: 'Manages email triage, drafting, and scheduling',
24
+ * instructions: 'You are an email management assistant...',
25
+ * owner: 'admin',
26
+ * permissions: {
27
+ * allowedTools: ['read_email', 'draft_email', 'send_email'],
28
+ * deniedTools: ['delete_email'],
29
+ * maxToolCallsPerTask: 20,
30
+ * },
31
+ * security: {
32
+ * sensitiveDataHandling: 'read_only',
33
+ * allowNetworkAccess: true,
34
+ * },
35
+ * })
36
+ *
37
+ * // Create a skill spec (requires test cases)
38
+ * const skillSpec = createSkillSpec({
39
+ * id: 'email-summarize',
40
+ * name: 'Email Summarizer',
41
+ * version: '1.0.0',
42
+ * description: 'Summarizes an email thread into key points',
43
+ * author: 'admin',
44
+ * category: 'email',
45
+ * inputSchema: { thread: { type: 'string' } },
46
+ * outputSchema: { summary: { type: 'string' }, keyPoints: { type: 'array' } },
47
+ * testCases: [
48
+ * { description: 'Basic thread', input: { thread: '...' }, shouldPass: true },
49
+ * ],
50
+ * })
51
+ * ```
52
+ */
53
+ export { type AgentGuardrails, AgentGuardrailsSchema, type AgentPermissions, AgentPermissionsSchema, type AgentQuality, AgentQualitySchema, type AgentSecurity, AgentSecuritySchema, type AgentSpec, AgentSpecSchema, createAgentSpec, safeValidateAgentSpec, validateAgentSpec, } from './agent-spec.js';
54
+ export { createPromptSpec, type PromptExample, PromptExampleSchema, type PromptGuardrails, PromptGuardrailsSchema, type PromptSecurity, PromptSecuritySchema, type PromptSpec, PromptSpecSchema, type PromptVariable, PromptVariableSchema, renderPromptTemplate, safeValidatePromptSpec, validatePromptSpec, } from './prompt-spec.js';
55
+ export { createSkillSpec, type SkillPermissions, SkillPermissionsSchema, type SkillSecurity, SkillSecuritySchema, type SkillSpec, SkillSpecSchema, type SkillTestCase, SkillTestCaseSchema, safeValidateSkillSpec, validateSkillSpec, } from './skill-spec.js';
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,SAAS,EACd,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,cAAc,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,SAAS,EACd,eAAe,EACf,KAAK,aAAa,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Agent, Skill, and Prompt Specification Templates
3
+ *
4
+ * Zod-validated schemas that enforce guardrails, security, and quality
5
+ * at registration time. Nothing can be registered in the system without
6
+ * passing these validations.
7
+ *
8
+ * ## Quick Start
9
+ *
10
+ * ```typescript
11
+ * import {
12
+ * createAgentSpec,
13
+ * createSkillSpec,
14
+ * createPromptSpec,
15
+ * renderPromptTemplate,
16
+ * } from '@revealui/ai'
17
+ *
18
+ * // Create an agent spec (enforces permissions, security, guardrails)
19
+ * const agentSpec = createAgentSpec({
20
+ * id: 'email-agent',
21
+ * name: 'Email Management Agent',
22
+ * version: '1.0.0',
23
+ * description: 'Manages email triage, drafting, and scheduling',
24
+ * instructions: 'You are an email management assistant...',
25
+ * owner: 'admin',
26
+ * permissions: {
27
+ * allowedTools: ['read_email', 'draft_email', 'send_email'],
28
+ * deniedTools: ['delete_email'],
29
+ * maxToolCallsPerTask: 20,
30
+ * },
31
+ * security: {
32
+ * sensitiveDataHandling: 'read_only',
33
+ * allowNetworkAccess: true,
34
+ * },
35
+ * })
36
+ *
37
+ * // Create a skill spec (requires test cases)
38
+ * const skillSpec = createSkillSpec({
39
+ * id: 'email-summarize',
40
+ * name: 'Email Summarizer',
41
+ * version: '1.0.0',
42
+ * description: 'Summarizes an email thread into key points',
43
+ * author: 'admin',
44
+ * category: 'email',
45
+ * inputSchema: { thread: { type: 'string' } },
46
+ * outputSchema: { summary: { type: 'string' }, keyPoints: { type: 'array' } },
47
+ * testCases: [
48
+ * { description: 'Basic thread', input: { thread: '...' }, shouldPass: true },
49
+ * ],
50
+ * })
51
+ * ```
52
+ */
53
+ // Agent specification
54
+ export { AgentGuardrailsSchema, AgentPermissionsSchema, AgentQualitySchema, AgentSecuritySchema, AgentSpecSchema, createAgentSpec, safeValidateAgentSpec, validateAgentSpec, } from './agent-spec.js';
55
+ // Prompt specification
56
+ export { createPromptSpec, PromptExampleSchema, PromptGuardrailsSchema, PromptSecuritySchema, PromptSpecSchema, PromptVariableSchema, renderPromptTemplate, safeValidatePromptSpec, validatePromptSpec, } from './prompt-spec.js';
57
+ // Skill specification
58
+ export { createSkillSpec, SkillPermissionsSchema, SkillSecuritySchema, SkillSpecSchema, SkillTestCaseSchema, safeValidateSkillSpec, validateSkillSpec, } from './skill-spec.js';