@defai.digital/contracts 13.0.3

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 (388) hide show
  1. package/LICENSE +214 -0
  2. package/dist/ability/v1/index.d.ts +5 -0
  3. package/dist/ability/v1/index.d.ts.map +1 -0
  4. package/dist/ability/v1/index.js +5 -0
  5. package/dist/ability/v1/index.js.map +1 -0
  6. package/dist/ability/v1/schema.d.ts +288 -0
  7. package/dist/ability/v1/schema.d.ts.map +1 -0
  8. package/dist/ability/v1/schema.js +138 -0
  9. package/dist/ability/v1/schema.js.map +1 -0
  10. package/dist/agent/v1/index.d.ts +8 -0
  11. package/dist/agent/v1/index.d.ts.map +1 -0
  12. package/dist/agent/v1/index.js +31 -0
  13. package/dist/agent/v1/index.js.map +1 -0
  14. package/dist/agent/v1/schema.d.ts +4055 -0
  15. package/dist/agent/v1/schema.d.ts.map +1 -0
  16. package/dist/agent/v1/schema.js +970 -0
  17. package/dist/agent/v1/schema.js.map +1 -0
  18. package/dist/agent/v1/storage-port.d.ts +172 -0
  19. package/dist/agent/v1/storage-port.d.ts.map +1 -0
  20. package/dist/agent/v1/storage-port.js +10 -0
  21. package/dist/agent/v1/storage-port.js.map +1 -0
  22. package/dist/analysis/v1/index.d.ts +7 -0
  23. package/dist/analysis/v1/index.d.ts.map +1 -0
  24. package/dist/analysis/v1/index.js +21 -0
  25. package/dist/analysis/v1/index.js.map +1 -0
  26. package/dist/analysis/v1/schema.d.ts +348 -0
  27. package/dist/analysis/v1/schema.d.ts.map +1 -0
  28. package/dist/analysis/v1/schema.js +252 -0
  29. package/dist/analysis/v1/schema.js.map +1 -0
  30. package/dist/cli/v1/index.d.ts +8 -0
  31. package/dist/cli/v1/index.d.ts.map +1 -0
  32. package/dist/cli/v1/index.js +46 -0
  33. package/dist/cli/v1/index.js.map +1 -0
  34. package/dist/cli/v1/output.d.ts +347 -0
  35. package/dist/cli/v1/output.d.ts.map +1 -0
  36. package/dist/cli/v1/output.js +288 -0
  37. package/dist/cli/v1/output.js.map +1 -0
  38. package/dist/cli/v1/schema.d.ts +494 -0
  39. package/dist/cli/v1/schema.d.ts.map +1 -0
  40. package/dist/cli/v1/schema.js +342 -0
  41. package/dist/cli/v1/schema.js.map +1 -0
  42. package/dist/config/v1/config.d.ts +887 -0
  43. package/dist/config/v1/config.d.ts.map +1 -0
  44. package/dist/config/v1/config.js +348 -0
  45. package/dist/config/v1/config.js.map +1 -0
  46. package/dist/config/v1/errors.d.ts +84 -0
  47. package/dist/config/v1/errors.d.ts.map +1 -0
  48. package/dist/config/v1/errors.js +150 -0
  49. package/dist/config/v1/errors.js.map +1 -0
  50. package/dist/config/v1/events.d.ts +416 -0
  51. package/dist/config/v1/events.d.ts.map +1 -0
  52. package/dist/config/v1/events.js +204 -0
  53. package/dist/config/v1/events.js.map +1 -0
  54. package/dist/config/v1/index.d.ts +11 -0
  55. package/dist/config/v1/index.d.ts.map +1 -0
  56. package/dist/config/v1/index.js +49 -0
  57. package/dist/config/v1/index.js.map +1 -0
  58. package/dist/config/v1/operations.d.ts +293 -0
  59. package/dist/config/v1/operations.d.ts.map +1 -0
  60. package/dist/config/v1/operations.js +172 -0
  61. package/dist/config/v1/operations.js.map +1 -0
  62. package/dist/config/v1/provider-config.d.ts +124 -0
  63. package/dist/config/v1/provider-config.d.ts.map +1 -0
  64. package/dist/config/v1/provider-config.js +123 -0
  65. package/dist/config/v1/provider-config.js.map +1 -0
  66. package/dist/constants.d.ts +292 -0
  67. package/dist/constants.d.ts.map +1 -0
  68. package/dist/constants.js +370 -0
  69. package/dist/constants.js.map +1 -0
  70. package/dist/context/v1/index.d.ts +5 -0
  71. package/dist/context/v1/index.d.ts.map +1 -0
  72. package/dist/context/v1/index.js +13 -0
  73. package/dist/context/v1/index.js.map +1 -0
  74. package/dist/context/v1/schema.d.ts +289 -0
  75. package/dist/context/v1/schema.d.ts.map +1 -0
  76. package/dist/context/v1/schema.js +145 -0
  77. package/dist/context/v1/schema.js.map +1 -0
  78. package/dist/cross-cutting/v1/dead-letter.d.ts +305 -0
  79. package/dist/cross-cutting/v1/dead-letter.d.ts.map +1 -0
  80. package/dist/cross-cutting/v1/dead-letter.js +172 -0
  81. package/dist/cross-cutting/v1/dead-letter.js.map +1 -0
  82. package/dist/cross-cutting/v1/idempotency.d.ts +222 -0
  83. package/dist/cross-cutting/v1/idempotency.d.ts.map +1 -0
  84. package/dist/cross-cutting/v1/idempotency.js +170 -0
  85. package/dist/cross-cutting/v1/idempotency.js.map +1 -0
  86. package/dist/cross-cutting/v1/index.d.ts +14 -0
  87. package/dist/cross-cutting/v1/index.d.ts.map +1 -0
  88. package/dist/cross-cutting/v1/index.js +18 -0
  89. package/dist/cross-cutting/v1/index.js.map +1 -0
  90. package/dist/cross-cutting/v1/retention.d.ts +347 -0
  91. package/dist/cross-cutting/v1/retention.d.ts.map +1 -0
  92. package/dist/cross-cutting/v1/retention.js +178 -0
  93. package/dist/cross-cutting/v1/retention.js.map +1 -0
  94. package/dist/cross-cutting/v1/saga.d.ts +358 -0
  95. package/dist/cross-cutting/v1/saga.d.ts.map +1 -0
  96. package/dist/cross-cutting/v1/saga.js +219 -0
  97. package/dist/cross-cutting/v1/saga.js.map +1 -0
  98. package/dist/design/v1/index.d.ts +5 -0
  99. package/dist/design/v1/index.d.ts.map +1 -0
  100. package/dist/design/v1/index.js +5 -0
  101. package/dist/design/v1/index.js.map +1 -0
  102. package/dist/design/v1/schema.d.ts +748 -0
  103. package/dist/design/v1/schema.d.ts.map +1 -0
  104. package/dist/design/v1/schema.js +316 -0
  105. package/dist/design/v1/schema.js.map +1 -0
  106. package/dist/discussion/v1/index.d.ts +10 -0
  107. package/dist/discussion/v1/index.d.ts.map +1 -0
  108. package/dist/discussion/v1/index.js +21 -0
  109. package/dist/discussion/v1/index.js.map +1 -0
  110. package/dist/discussion/v1/schema.d.ts +1186 -0
  111. package/dist/discussion/v1/schema.d.ts.map +1 -0
  112. package/dist/discussion/v1/schema.js +560 -0
  113. package/dist/discussion/v1/schema.js.map +1 -0
  114. package/dist/file-system/v1/index.d.ts +7 -0
  115. package/dist/file-system/v1/index.d.ts.map +1 -0
  116. package/dist/file-system/v1/index.js +7 -0
  117. package/dist/file-system/v1/index.js.map +1 -0
  118. package/dist/file-system/v1/schema.d.ts +644 -0
  119. package/dist/file-system/v1/schema.d.ts.map +1 -0
  120. package/dist/file-system/v1/schema.js +278 -0
  121. package/dist/file-system/v1/schema.js.map +1 -0
  122. package/dist/guard/v1/index.d.ts +9 -0
  123. package/dist/guard/v1/index.d.ts.map +1 -0
  124. package/dist/guard/v1/index.js +10 -0
  125. package/dist/guard/v1/index.js.map +1 -0
  126. package/dist/guard/v1/schema.d.ts +308 -0
  127. package/dist/guard/v1/schema.d.ts.map +1 -0
  128. package/dist/guard/v1/schema.js +267 -0
  129. package/dist/guard/v1/schema.js.map +1 -0
  130. package/dist/index.d.ts +68 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +117 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/iterate/v1/index.d.ts +5 -0
  135. package/dist/iterate/v1/index.d.ts.map +1 -0
  136. package/dist/iterate/v1/index.js +13 -0
  137. package/dist/iterate/v1/index.js.map +1 -0
  138. package/dist/iterate/v1/schema.d.ts +693 -0
  139. package/dist/iterate/v1/schema.d.ts.map +1 -0
  140. package/dist/iterate/v1/schema.js +244 -0
  141. package/dist/iterate/v1/schema.js.map +1 -0
  142. package/dist/mcp/v1/index.d.ts +8 -0
  143. package/dist/mcp/v1/index.d.ts.map +1 -0
  144. package/dist/mcp/v1/index.js +20 -0
  145. package/dist/mcp/v1/index.js.map +1 -0
  146. package/dist/mcp/v1/prompts/index.d.ts +5 -0
  147. package/dist/mcp/v1/prompts/index.d.ts.map +1 -0
  148. package/dist/mcp/v1/prompts/index.js +5 -0
  149. package/dist/mcp/v1/prompts/index.js.map +1 -0
  150. package/dist/mcp/v1/prompts/schema.d.ts +266 -0
  151. package/dist/mcp/v1/prompts/schema.d.ts.map +1 -0
  152. package/dist/mcp/v1/prompts/schema.js +138 -0
  153. package/dist/mcp/v1/prompts/schema.js.map +1 -0
  154. package/dist/mcp/v1/rate-limit.schema.d.ts +175 -0
  155. package/dist/mcp/v1/rate-limit.schema.d.ts.map +1 -0
  156. package/dist/mcp/v1/rate-limit.schema.js +164 -0
  157. package/dist/mcp/v1/rate-limit.schema.js.map +1 -0
  158. package/dist/mcp/v1/resources/index.d.ts +5 -0
  159. package/dist/mcp/v1/resources/index.d.ts.map +1 -0
  160. package/dist/mcp/v1/resources/index.js +5 -0
  161. package/dist/mcp/v1/resources/index.js.map +1 -0
  162. package/dist/mcp/v1/resources/schema.d.ts +169 -0
  163. package/dist/mcp/v1/resources/schema.d.ts.map +1 -0
  164. package/dist/mcp/v1/resources/schema.js +118 -0
  165. package/dist/mcp/v1/resources/schema.js.map +1 -0
  166. package/dist/mcp/v1/runtime/cache.d.ts +204 -0
  167. package/dist/mcp/v1/runtime/cache.d.ts.map +1 -0
  168. package/dist/mcp/v1/runtime/cache.js +92 -0
  169. package/dist/mcp/v1/runtime/cache.js.map +1 -0
  170. package/dist/mcp/v1/runtime/index.d.ts +5 -0
  171. package/dist/mcp/v1/runtime/index.d.ts.map +1 -0
  172. package/dist/mcp/v1/runtime/index.js +9 -0
  173. package/dist/mcp/v1/runtime/index.js.map +1 -0
  174. package/dist/mcp/v1/runtime/limits.d.ts +113 -0
  175. package/dist/mcp/v1/runtime/limits.d.ts.map +1 -0
  176. package/dist/mcp/v1/runtime/limits.js +95 -0
  177. package/dist/mcp/v1/runtime/limits.js.map +1 -0
  178. package/dist/mcp/v1/runtime/response.d.ts +467 -0
  179. package/dist/mcp/v1/runtime/response.d.ts.map +1 -0
  180. package/dist/mcp/v1/runtime/response.js +130 -0
  181. package/dist/mcp/v1/runtime/response.js.map +1 -0
  182. package/dist/mcp/v1/runtime/timeout.d.ts +116 -0
  183. package/dist/mcp/v1/runtime/timeout.d.ts.map +1 -0
  184. package/dist/mcp/v1/runtime/timeout.js +116 -0
  185. package/dist/mcp/v1/runtime/timeout.js.map +1 -0
  186. package/dist/mcp/v1/schema.d.ts +171 -0
  187. package/dist/mcp/v1/schema.d.ts.map +1 -0
  188. package/dist/mcp/v1/schema.js +97 -0
  189. package/dist/mcp/v1/schema.js.map +1 -0
  190. package/dist/mcp/v1/tools/agent.d.ts +485 -0
  191. package/dist/mcp/v1/tools/agent.d.ts.map +1 -0
  192. package/dist/mcp/v1/tools/agent.js +264 -0
  193. package/dist/mcp/v1/tools/agent.js.map +1 -0
  194. package/dist/mcp/v1/tools/guard.d.ts +243 -0
  195. package/dist/mcp/v1/tools/guard.d.ts.map +1 -0
  196. package/dist/mcp/v1/tools/guard.js +136 -0
  197. package/dist/mcp/v1/tools/guard.js.map +1 -0
  198. package/dist/mcp/v1/tools/index.d.ts +15 -0
  199. package/dist/mcp/v1/tools/index.d.ts.map +1 -0
  200. package/dist/mcp/v1/tools/index.js +22 -0
  201. package/dist/mcp/v1/tools/index.js.map +1 -0
  202. package/dist/mcp/v1/tools/memory.d.ts +569 -0
  203. package/dist/mcp/v1/tools/memory.d.ts.map +1 -0
  204. package/dist/mcp/v1/tools/memory.js +319 -0
  205. package/dist/mcp/v1/tools/memory.js.map +1 -0
  206. package/dist/mcp/v1/tools/session.d.ts +545 -0
  207. package/dist/mcp/v1/tools/session.d.ts.map +1 -0
  208. package/dist/mcp/v1/tools/session.js +309 -0
  209. package/dist/mcp/v1/tools/session.js.map +1 -0
  210. package/dist/mcp/v1/tools/tool-list-schemas.d.ts +354 -0
  211. package/dist/mcp/v1/tools/tool-list-schemas.d.ts.map +1 -0
  212. package/dist/mcp/v1/tools/tool-list-schemas.js +140 -0
  213. package/dist/mcp/v1/tools/tool-list-schemas.js.map +1 -0
  214. package/dist/mcp/v1/tools/trace.d.ts +282 -0
  215. package/dist/mcp/v1/tools/trace.d.ts.map +1 -0
  216. package/dist/mcp/v1/tools/trace.js +94 -0
  217. package/dist/mcp/v1/tools/trace.js.map +1 -0
  218. package/dist/mcp/v1/tools/workflow.d.ts +146 -0
  219. package/dist/mcp/v1/tools/workflow.d.ts.map +1 -0
  220. package/dist/mcp/v1/tools/workflow.js +68 -0
  221. package/dist/mcp/v1/tools/workflow.js.map +1 -0
  222. package/dist/mcp/v1/trace/index.d.ts +5 -0
  223. package/dist/mcp/v1/trace/index.d.ts.map +1 -0
  224. package/dist/mcp/v1/trace/index.js +5 -0
  225. package/dist/mcp/v1/trace/index.js.map +1 -0
  226. package/dist/mcp/v1/trace/tool-trace.d.ts +107 -0
  227. package/dist/mcp/v1/trace/tool-trace.d.ts.map +1 -0
  228. package/dist/mcp/v1/trace/tool-trace.js +91 -0
  229. package/dist/mcp/v1/trace/tool-trace.js.map +1 -0
  230. package/dist/memory/v1/index.d.ts +2 -0
  231. package/dist/memory/v1/index.d.ts.map +1 -0
  232. package/dist/memory/v1/index.js +2 -0
  233. package/dist/memory/v1/index.js.map +1 -0
  234. package/dist/memory/v1/schema.d.ts +188 -0
  235. package/dist/memory/v1/schema.d.ts.map +1 -0
  236. package/dist/memory/v1/schema.js +108 -0
  237. package/dist/memory/v1/schema.js.map +1 -0
  238. package/dist/ml-lifecycle/v1/index.d.ts +12 -0
  239. package/dist/ml-lifecycle/v1/index.d.ts.map +1 -0
  240. package/dist/ml-lifecycle/v1/index.js +12 -0
  241. package/dist/ml-lifecycle/v1/index.js.map +1 -0
  242. package/dist/ml-lifecycle/v1/schema.d.ts +1207 -0
  243. package/dist/ml-lifecycle/v1/schema.d.ts.map +1 -0
  244. package/dist/ml-lifecycle/v1/schema.js +481 -0
  245. package/dist/ml-lifecycle/v1/schema.js.map +1 -0
  246. package/dist/orchestration/v1/index.d.ts +5 -0
  247. package/dist/orchestration/v1/index.d.ts.map +1 -0
  248. package/dist/orchestration/v1/index.js +23 -0
  249. package/dist/orchestration/v1/index.js.map +1 -0
  250. package/dist/orchestration/v1/schema.d.ts +1384 -0
  251. package/dist/orchestration/v1/schema.d.ts.map +1 -0
  252. package/dist/orchestration/v1/schema.js +394 -0
  253. package/dist/orchestration/v1/schema.js.map +1 -0
  254. package/dist/provider/v1/circuit-breaker.d.ts +151 -0
  255. package/dist/provider/v1/circuit-breaker.d.ts.map +1 -0
  256. package/dist/provider/v1/circuit-breaker.js +119 -0
  257. package/dist/provider/v1/circuit-breaker.js.map +1 -0
  258. package/dist/provider/v1/health.d.ts +246 -0
  259. package/dist/provider/v1/health.d.ts.map +1 -0
  260. package/dist/provider/v1/health.js +190 -0
  261. package/dist/provider/v1/health.js.map +1 -0
  262. package/dist/provider/v1/index.d.ts +13 -0
  263. package/dist/provider/v1/index.d.ts.map +1 -0
  264. package/dist/provider/v1/index.js +17 -0
  265. package/dist/provider/v1/index.js.map +1 -0
  266. package/dist/provider/v1/port.d.ts +237 -0
  267. package/dist/provider/v1/port.d.ts.map +1 -0
  268. package/dist/provider/v1/port.js +113 -0
  269. package/dist/provider/v1/port.js.map +1 -0
  270. package/dist/provider/v1/rate-limit.d.ts +214 -0
  271. package/dist/provider/v1/rate-limit.d.ts.map +1 -0
  272. package/dist/provider/v1/rate-limit.js +165 -0
  273. package/dist/provider/v1/rate-limit.js.map +1 -0
  274. package/dist/resilience/v1/circuit-breaker.d.ts +135 -0
  275. package/dist/resilience/v1/circuit-breaker.d.ts.map +1 -0
  276. package/dist/resilience/v1/circuit-breaker.js +105 -0
  277. package/dist/resilience/v1/circuit-breaker.js.map +1 -0
  278. package/dist/resilience/v1/index.d.ts +17 -0
  279. package/dist/resilience/v1/index.d.ts.map +1 -0
  280. package/dist/resilience/v1/index.js +17 -0
  281. package/dist/resilience/v1/index.js.map +1 -0
  282. package/dist/resilience/v1/loop-guard.d.ts +123 -0
  283. package/dist/resilience/v1/loop-guard.d.ts.map +1 -0
  284. package/dist/resilience/v1/loop-guard.js +96 -0
  285. package/dist/resilience/v1/loop-guard.js.map +1 -0
  286. package/dist/resilience/v1/metrics.d.ts +323 -0
  287. package/dist/resilience/v1/metrics.d.ts.map +1 -0
  288. package/dist/resilience/v1/metrics.js +183 -0
  289. package/dist/resilience/v1/metrics.js.map +1 -0
  290. package/dist/resilience/v1/rate-limiter.d.ts +122 -0
  291. package/dist/resilience/v1/rate-limiter.d.ts.map +1 -0
  292. package/dist/resilience/v1/rate-limiter.js +119 -0
  293. package/dist/resilience/v1/rate-limiter.js.map +1 -0
  294. package/dist/resilience/v1/resource-limits.d.ts +146 -0
  295. package/dist/resilience/v1/resource-limits.d.ts.map +1 -0
  296. package/dist/resilience/v1/resource-limits.js +130 -0
  297. package/dist/resilience/v1/resource-limits.js.map +1 -0
  298. package/dist/review/v1/index.d.ts +7 -0
  299. package/dist/review/v1/index.d.ts.map +1 -0
  300. package/dist/review/v1/index.js +23 -0
  301. package/dist/review/v1/index.js.map +1 -0
  302. package/dist/review/v1/schema.d.ts +1284 -0
  303. package/dist/review/v1/schema.d.ts.map +1 -0
  304. package/dist/review/v1/schema.js +423 -0
  305. package/dist/review/v1/schema.js.map +1 -0
  306. package/dist/routing/v1/index.d.ts +2 -0
  307. package/dist/routing/v1/index.d.ts.map +1 -0
  308. package/dist/routing/v1/index.js +2 -0
  309. package/dist/routing/v1/index.js.map +1 -0
  310. package/dist/routing/v1/schema.d.ts +315 -0
  311. package/dist/routing/v1/schema.d.ts.map +1 -0
  312. package/dist/routing/v1/schema.js +103 -0
  313. package/dist/routing/v1/schema.js.map +1 -0
  314. package/dist/scaffold/v1/index.d.ts +7 -0
  315. package/dist/scaffold/v1/index.d.ts.map +1 -0
  316. package/dist/scaffold/v1/index.js +7 -0
  317. package/dist/scaffold/v1/index.js.map +1 -0
  318. package/dist/scaffold/v1/schema.d.ts +351 -0
  319. package/dist/scaffold/v1/schema.d.ts.map +1 -0
  320. package/dist/scaffold/v1/schema.js +238 -0
  321. package/dist/scaffold/v1/schema.js.map +1 -0
  322. package/dist/session/v1/index.d.ts +7 -0
  323. package/dist/session/v1/index.d.ts.map +1 -0
  324. package/dist/session/v1/index.js +23 -0
  325. package/dist/session/v1/index.js.map +1 -0
  326. package/dist/session/v1/schema.d.ts +1156 -0
  327. package/dist/session/v1/schema.d.ts.map +1 -0
  328. package/dist/session/v1/schema.js +315 -0
  329. package/dist/session/v1/schema.js.map +1 -0
  330. package/dist/storage/v1/index.d.ts +9 -0
  331. package/dist/storage/v1/index.d.ts.map +1 -0
  332. package/dist/storage/v1/index.js +21 -0
  333. package/dist/storage/v1/index.js.map +1 -0
  334. package/dist/storage/v1/schema.d.ts +411 -0
  335. package/dist/storage/v1/schema.d.ts.map +1 -0
  336. package/dist/storage/v1/schema.js +167 -0
  337. package/dist/storage/v1/schema.js.map +1 -0
  338. package/dist/telemetry/v1/index.d.ts +5 -0
  339. package/dist/telemetry/v1/index.d.ts.map +1 -0
  340. package/dist/telemetry/v1/index.js +5 -0
  341. package/dist/telemetry/v1/index.js.map +1 -0
  342. package/dist/telemetry/v1/schema.d.ts +747 -0
  343. package/dist/telemetry/v1/schema.d.ts.map +1 -0
  344. package/dist/telemetry/v1/schema.js +300 -0
  345. package/dist/telemetry/v1/schema.js.map +1 -0
  346. package/dist/token-budget/v1/index.d.ts +7 -0
  347. package/dist/token-budget/v1/index.d.ts.map +1 -0
  348. package/dist/token-budget/v1/index.js +25 -0
  349. package/dist/token-budget/v1/index.js.map +1 -0
  350. package/dist/token-budget/v1/schema.d.ts +588 -0
  351. package/dist/token-budget/v1/schema.d.ts.map +1 -0
  352. package/dist/token-budget/v1/schema.js +239 -0
  353. package/dist/token-budget/v1/schema.js.map +1 -0
  354. package/dist/trace/v1/index.d.ts +2 -0
  355. package/dist/trace/v1/index.d.ts.map +1 -0
  356. package/dist/trace/v1/index.js +4 -0
  357. package/dist/trace/v1/index.js.map +1 -0
  358. package/dist/trace/v1/schema.d.ts +531 -0
  359. package/dist/trace/v1/schema.d.ts.map +1 -0
  360. package/dist/trace/v1/schema.js +243 -0
  361. package/dist/trace/v1/schema.js.map +1 -0
  362. package/dist/workflow/v1/index.d.ts +3 -0
  363. package/dist/workflow/v1/index.d.ts.map +1 -0
  364. package/dist/workflow/v1/index.js +8 -0
  365. package/dist/workflow/v1/index.js.map +1 -0
  366. package/dist/workflow/v1/schema.d.ts +267 -0
  367. package/dist/workflow/v1/schema.d.ts.map +1 -0
  368. package/dist/workflow/v1/schema.js +95 -0
  369. package/dist/workflow/v1/schema.js.map +1 -0
  370. package/dist/workflow/v1/step-guard.d.ts +571 -0
  371. package/dist/workflow/v1/step-guard.d.ts.map +1 -0
  372. package/dist/workflow/v1/step-guard.js +305 -0
  373. package/dist/workflow/v1/step-guard.js.map +1 -0
  374. package/dist/workflow-templates/v1/index.d.ts +8 -0
  375. package/dist/workflow-templates/v1/index.d.ts.map +1 -0
  376. package/dist/workflow-templates/v1/index.js +8 -0
  377. package/dist/workflow-templates/v1/index.js.map +1 -0
  378. package/dist/workflow-templates/v1/schema.d.ts +714 -0
  379. package/dist/workflow-templates/v1/schema.d.ts.map +1 -0
  380. package/dist/workflow-templates/v1/schema.js +168 -0
  381. package/dist/workflow-templates/v1/schema.js.map +1 -0
  382. package/package.json +142 -0
  383. package/src/guard/v1/policy.schema.json +56 -0
  384. package/src/mcp/v1/tools.schema.json +108 -0
  385. package/src/memory/v1/event.schema.json +136 -0
  386. package/src/routing/v1/decision.schema.json +155 -0
  387. package/src/trace/v1/event.schema.json +197 -0
  388. package/src/workflow/v1/workflow.schema.json +142 -0
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Provider Port - Interface for LLM Provider Access
3
+ *
4
+ * This defines the contract that provider adapters implement.
5
+ * Application layers (CLI, MCP Server) should depend on these interfaces,
6
+ * not on the concrete adapter implementations.
7
+ *
8
+ * Following Ports & Adapters (Hexagonal Architecture) pattern.
9
+ */
10
+ import { z } from 'zod';
11
+ /**
12
+ * Message in a provider request
13
+ */
14
+ export declare const ProviderMessageSchema: z.ZodObject<{
15
+ role: z.ZodEnum<["system", "user", "assistant"]>;
16
+ content: z.ZodString;
17
+ }, "strip", z.ZodTypeAny, {
18
+ role: "system" | "user" | "assistant";
19
+ content: string;
20
+ }, {
21
+ role: "system" | "user" | "assistant";
22
+ content: string;
23
+ }>;
24
+ /**
25
+ * Provider request schema
26
+ */
27
+ export declare const ProviderRequestSchema: z.ZodObject<{
28
+ requestId: z.ZodString;
29
+ model: z.ZodString;
30
+ messages: z.ZodArray<z.ZodObject<{
31
+ role: z.ZodEnum<["system", "user", "assistant"]>;
32
+ content: z.ZodString;
33
+ }, "strip", z.ZodTypeAny, {
34
+ role: "system" | "user" | "assistant";
35
+ content: string;
36
+ }, {
37
+ role: "system" | "user" | "assistant";
38
+ content: string;
39
+ }>, "many">;
40
+ maxTokens: z.ZodOptional<z.ZodNumber>;
41
+ temperature: z.ZodOptional<z.ZodNumber>;
42
+ systemPrompt: z.ZodOptional<z.ZodString>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ requestId: string;
45
+ messages: {
46
+ role: "system" | "user" | "assistant";
47
+ content: string;
48
+ }[];
49
+ model: string;
50
+ maxTokens?: number | undefined;
51
+ systemPrompt?: string | undefined;
52
+ temperature?: number | undefined;
53
+ }, {
54
+ requestId: string;
55
+ messages: {
56
+ role: "system" | "user" | "assistant";
57
+ content: string;
58
+ }[];
59
+ model: string;
60
+ maxTokens?: number | undefined;
61
+ systemPrompt?: string | undefined;
62
+ temperature?: number | undefined;
63
+ }>;
64
+ /**
65
+ * Provider response schema
66
+ */
67
+ export declare const ProviderResponseSchema: z.ZodObject<{
68
+ requestId: z.ZodString;
69
+ success: z.ZodBoolean;
70
+ content: z.ZodOptional<z.ZodString>;
71
+ error: z.ZodOptional<z.ZodObject<{
72
+ code: z.ZodString;
73
+ message: z.ZodString;
74
+ }, "strip", z.ZodTypeAny, {
75
+ code: string;
76
+ message: string;
77
+ }, {
78
+ code: string;
79
+ message: string;
80
+ }>>;
81
+ usage: z.ZodOptional<z.ZodObject<{
82
+ promptTokens: z.ZodNumber;
83
+ completionTokens: z.ZodNumber;
84
+ }, "strip", z.ZodTypeAny, {
85
+ promptTokens: number;
86
+ completionTokens: number;
87
+ }, {
88
+ promptTokens: number;
89
+ completionTokens: number;
90
+ }>>;
91
+ model: z.ZodOptional<z.ZodString>;
92
+ finishReason: z.ZodOptional<z.ZodEnum<["stop", "length", "error"]>>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ success: boolean;
95
+ requestId: string;
96
+ error?: {
97
+ code: string;
98
+ message: string;
99
+ } | undefined;
100
+ content?: string | undefined;
101
+ model?: string | undefined;
102
+ usage?: {
103
+ promptTokens: number;
104
+ completionTokens: number;
105
+ } | undefined;
106
+ finishReason?: "length" | "error" | "stop" | undefined;
107
+ }, {
108
+ success: boolean;
109
+ requestId: string;
110
+ error?: {
111
+ code: string;
112
+ message: string;
113
+ } | undefined;
114
+ content?: string | undefined;
115
+ model?: string | undefined;
116
+ usage?: {
117
+ promptTokens: number;
118
+ completionTokens: number;
119
+ } | undefined;
120
+ finishReason?: "length" | "error" | "stop" | undefined;
121
+ }>;
122
+ /**
123
+ * Model info schema
124
+ */
125
+ export declare const ModelInfoSchema: z.ZodObject<{
126
+ modelId: z.ZodString;
127
+ displayName: z.ZodOptional<z.ZodString>;
128
+ contextLength: z.ZodOptional<z.ZodNumber>;
129
+ isDefault: z.ZodOptional<z.ZodBoolean>;
130
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ modelId: string;
133
+ displayName?: string | undefined;
134
+ capabilities?: string[] | undefined;
135
+ contextLength?: number | undefined;
136
+ isDefault?: boolean | undefined;
137
+ }, {
138
+ modelId: string;
139
+ displayName?: string | undefined;
140
+ capabilities?: string[] | undefined;
141
+ contextLength?: number | undefined;
142
+ isDefault?: boolean | undefined;
143
+ }>;
144
+ export type ProviderMessage = z.infer<typeof ProviderMessageSchema>;
145
+ export type ProviderRequest = z.infer<typeof ProviderRequestSchema>;
146
+ export type ProviderResponse = z.infer<typeof ProviderResponseSchema>;
147
+ export type ModelInfo = z.infer<typeof ModelInfoSchema>;
148
+ /**
149
+ * Provider Port Interface
150
+ *
151
+ * INV-PROV-PORT-001: Implementations must validate requests before execution
152
+ * INV-PROV-PORT-002: Responses must match ProviderResponseSchema
153
+ * INV-PROV-PORT-003: Errors must not throw; return error response instead
154
+ */
155
+ export interface ProviderPort {
156
+ /**
157
+ * Provider identifier
158
+ */
159
+ readonly providerId: string;
160
+ /**
161
+ * Complete a request
162
+ * INV-PROV-PORT-003: Must not throw; returns error in response
163
+ */
164
+ complete(request: ProviderRequest): Promise<ProviderResponse>;
165
+ /**
166
+ * Check if provider is available
167
+ */
168
+ isAvailable(): Promise<boolean>;
169
+ /**
170
+ * Get available models
171
+ */
172
+ getModels(): ModelInfo[];
173
+ /**
174
+ * Get provider status (open, closed, half-open for circuit breaker)
175
+ */
176
+ getStatus(): 'open' | 'closed' | 'half-open';
177
+ }
178
+ /**
179
+ * Provider Registry Port Interface
180
+ *
181
+ * INV-PROV-REG-001: getProvider returns undefined for unknown providers
182
+ * INV-PROV-REG-002: listProviders returns deterministic order
183
+ */
184
+ export interface ProviderRegistryPort {
185
+ /**
186
+ * Get a provider by ID
187
+ * Returns undefined if not found (INV-PROV-REG-001)
188
+ */
189
+ getProvider(providerId: string): ProviderPort | undefined;
190
+ /**
191
+ * Get the default provider
192
+ */
193
+ getDefaultProvider(): ProviderPort | undefined;
194
+ /**
195
+ * List all provider IDs
196
+ * Returns deterministic order (INV-PROV-REG-002)
197
+ */
198
+ listProviders(): string[];
199
+ /**
200
+ * Check if a provider exists
201
+ */
202
+ hasProvider(providerId: string): boolean;
203
+ }
204
+ /**
205
+ * Validate a provider request
206
+ */
207
+ export declare function validateProviderRequest(data: unknown): ProviderRequest;
208
+ /**
209
+ * Validate a provider response
210
+ */
211
+ export declare function validateProviderResponse(data: unknown): ProviderResponse;
212
+ /**
213
+ * Safe validation for provider request
214
+ */
215
+ export declare function safeValidateProviderRequest(data: unknown): {
216
+ success: true;
217
+ data: ProviderRequest;
218
+ } | {
219
+ success: false;
220
+ error: z.ZodError;
221
+ };
222
+ /**
223
+ * Create a success response
224
+ */
225
+ export declare function createProviderSuccessResponse(requestId: string, content: string, options?: {
226
+ model?: string;
227
+ usage?: {
228
+ promptTokens: number;
229
+ completionTokens: number;
230
+ };
231
+ finishReason?: 'stop' | 'length';
232
+ }): ProviderResponse;
233
+ /**
234
+ * Create an error response
235
+ */
236
+ export declare function createProviderErrorResponse(requestId: string, code: string, message: string): ProviderResponse;
237
+ //# sourceMappingURL=port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../../src/provider/v1/port.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAMH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAMxD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE9D;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,SAAS,IAAI,SAAS,EAAE,CAAC;IAEzB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC9C;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IAE1D;;OAEG;IACH,kBAAkB,IAAI,YAAY,GAAG,SAAS,CAAC;IAE/C;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1C;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAEtE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAExE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,GAAG;IAC1D,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACvB,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAMxC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC,GACA,gBAAgB,CASlB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,gBAAgB,CAOlB"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Provider Port - Interface for LLM Provider Access
3
+ *
4
+ * This defines the contract that provider adapters implement.
5
+ * Application layers (CLI, MCP Server) should depend on these interfaces,
6
+ * not on the concrete adapter implementations.
7
+ *
8
+ * Following Ports & Adapters (Hexagonal Architecture) pattern.
9
+ */
10
+ import { z } from 'zod';
11
+ // ============================================================================
12
+ // Provider Request/Response Schemas
13
+ // ============================================================================
14
+ /**
15
+ * Message in a provider request
16
+ */
17
+ export const ProviderMessageSchema = z.object({
18
+ role: z.enum(['system', 'user', 'assistant']),
19
+ content: z.string(),
20
+ });
21
+ /**
22
+ * Provider request schema
23
+ */
24
+ export const ProviderRequestSchema = z.object({
25
+ requestId: z.string().uuid(),
26
+ model: z.string().min(1),
27
+ messages: z.array(ProviderMessageSchema).min(1),
28
+ maxTokens: z.number().int().positive().optional(),
29
+ temperature: z.number().min(0).max(2).optional(),
30
+ systemPrompt: z.string().optional(),
31
+ });
32
+ /**
33
+ * Provider response schema
34
+ */
35
+ export const ProviderResponseSchema = z.object({
36
+ requestId: z.string().uuid(),
37
+ success: z.boolean(),
38
+ content: z.string().optional(),
39
+ error: z
40
+ .object({
41
+ code: z.string(),
42
+ message: z.string(),
43
+ })
44
+ .optional(),
45
+ usage: z
46
+ .object({
47
+ promptTokens: z.number().int().nonnegative(),
48
+ completionTokens: z.number().int().nonnegative(),
49
+ })
50
+ .optional(),
51
+ model: z.string().optional(),
52
+ finishReason: z.enum(['stop', 'length', 'error']).optional(),
53
+ });
54
+ /**
55
+ * Model info schema
56
+ */
57
+ export const ModelInfoSchema = z.object({
58
+ modelId: z.string().min(1),
59
+ displayName: z.string().optional(),
60
+ contextLength: z.number().int().positive().optional(),
61
+ isDefault: z.boolean().optional(),
62
+ capabilities: z.array(z.string()).optional(),
63
+ });
64
+ // ============================================================================
65
+ // Validation Functions
66
+ // ============================================================================
67
+ /**
68
+ * Validate a provider request
69
+ */
70
+ export function validateProviderRequest(data) {
71
+ return ProviderRequestSchema.parse(data);
72
+ }
73
+ /**
74
+ * Validate a provider response
75
+ */
76
+ export function validateProviderResponse(data) {
77
+ return ProviderResponseSchema.parse(data);
78
+ }
79
+ /**
80
+ * Safe validation for provider request
81
+ */
82
+ export function safeValidateProviderRequest(data) {
83
+ const result = ProviderRequestSchema.safeParse(data);
84
+ if (result.success) {
85
+ return { success: true, data: result.data };
86
+ }
87
+ return { success: false, error: result.error };
88
+ }
89
+ /**
90
+ * Create a success response
91
+ */
92
+ export function createProviderSuccessResponse(requestId, content, options) {
93
+ return {
94
+ requestId,
95
+ success: true,
96
+ content,
97
+ model: options?.model,
98
+ usage: options?.usage,
99
+ finishReason: options?.finishReason ?? 'stop',
100
+ };
101
+ }
102
+ /**
103
+ * Create an error response
104
+ */
105
+ export function createProviderErrorResponse(requestId, code, message) {
106
+ return {
107
+ requestId,
108
+ success: false,
109
+ error: { code, message },
110
+ finishReason: 'error',
111
+ };
112
+ }
113
+ //# sourceMappingURL=port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../src/provider/v1/port.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Rate Limit Contract V1
3
+ *
4
+ * Provides rate limiting for provider requests using token bucket algorithm.
5
+ * Prevents overwhelming providers with too many requests.
6
+ *
7
+ * Invariants:
8
+ * - INV-RL-001: Tokens never exceed burst capacity
9
+ * - INV-RL-002: Tokens refill at configured rate
10
+ * - INV-RL-003: Strategy (reject/queue/backoff) honored
11
+ * - INV-RL-004: Queue never exceeds maxQueueSize
12
+ */
13
+ import { z } from 'zod';
14
+ /**
15
+ * Rate limit strategy when limit is reached
16
+ */
17
+ export declare const RateLimitStrategySchema: z.ZodEnum<["reject", "queue", "backoff"]>;
18
+ export type RateLimitStrategy = z.infer<typeof RateLimitStrategySchema>;
19
+ /**
20
+ * Rate limit state
21
+ */
22
+ export declare const RateLimitStateEnumSchema: z.ZodEnum<["normal", "throttled", "blocked"]>;
23
+ export type RateLimitStateEnum = z.infer<typeof RateLimitStateEnumSchema>;
24
+ /**
25
+ * Rate limit configuration
26
+ */
27
+ export declare const RateLimitConfigSchema: z.ZodObject<{
28
+ /** Requests per minute per provider */
29
+ requestsPerMinute: z.ZodDefault<z.ZodNumber>;
30
+ /** Tokens per minute per provider */
31
+ tokensPerMinute: z.ZodDefault<z.ZodNumber>;
32
+ /** Burst allowance multiplier (INV-RL-001) */
33
+ burstMultiplier: z.ZodDefault<z.ZodNumber>;
34
+ /** Strategy when limit reached (INV-RL-003) */
35
+ strategy: z.ZodDefault<z.ZodEnum<["reject", "queue", "backoff"]>>;
36
+ /** Max queue size if strategy is 'queue' (INV-RL-004) */
37
+ maxQueueSize: z.ZodDefault<z.ZodNumber>;
38
+ /** Backoff base delay in ms */
39
+ backoffBaseMs: z.ZodDefault<z.ZodNumber>;
40
+ /** Backoff multiplier for exponential backoff */
41
+ backoffMultiplier: z.ZodDefault<z.ZodNumber>;
42
+ /** Maximum backoff delay in ms */
43
+ maxBackoffMs: z.ZodDefault<z.ZodNumber>;
44
+ /** Enable token-based rate limiting */
45
+ enableTokenLimit: z.ZodDefault<z.ZodBoolean>;
46
+ /** Enable request-based rate limiting */
47
+ enableRequestLimit: z.ZodDefault<z.ZodBoolean>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ backoffMultiplier: number;
50
+ requestsPerMinute: number;
51
+ tokensPerMinute: number;
52
+ burstMultiplier: number;
53
+ strategy: "queue" | "reject" | "backoff";
54
+ maxQueueSize: number;
55
+ backoffBaseMs: number;
56
+ maxBackoffMs: number;
57
+ enableTokenLimit: boolean;
58
+ enableRequestLimit: boolean;
59
+ }, {
60
+ backoffMultiplier?: number | undefined;
61
+ requestsPerMinute?: number | undefined;
62
+ tokensPerMinute?: number | undefined;
63
+ burstMultiplier?: number | undefined;
64
+ strategy?: "queue" | "reject" | "backoff" | undefined;
65
+ maxQueueSize?: number | undefined;
66
+ backoffBaseMs?: number | undefined;
67
+ maxBackoffMs?: number | undefined;
68
+ enableTokenLimit?: boolean | undefined;
69
+ enableRequestLimit?: boolean | undefined;
70
+ }>;
71
+ export type RateLimitConfig = z.infer<typeof RateLimitConfigSchema>;
72
+ /**
73
+ * Rate limit state snapshot
74
+ */
75
+ export declare const RateLimitStateSchema: z.ZodObject<{
76
+ /** Current available request tokens */
77
+ requestTokens: z.ZodNumber;
78
+ /** Current available output tokens */
79
+ outputTokens: z.ZodNumber;
80
+ /** Requests in current window */
81
+ requestCount: z.ZodNumber;
82
+ /** Tokens used in current window */
83
+ tokenCount: z.ZodNumber;
84
+ /** Start of current rate limit window */
85
+ windowStart: z.ZodString;
86
+ /** Current queue size */
87
+ queueSize: z.ZodNumber;
88
+ /** Next allowed request time (if rate limited) */
89
+ nextAllowedTime: z.ZodOptional<z.ZodString>;
90
+ /** Current state */
91
+ state: z.ZodEnum<["normal", "throttled", "blocked"]>;
92
+ /** Last refill timestamp */
93
+ lastRefillTime: z.ZodString;
94
+ }, "strip", z.ZodTypeAny, {
95
+ tokenCount: number;
96
+ requestCount: number;
97
+ windowStart: string;
98
+ state: "blocked" | "normal" | "throttled";
99
+ requestTokens: number;
100
+ outputTokens: number;
101
+ queueSize: number;
102
+ lastRefillTime: string;
103
+ nextAllowedTime?: string | undefined;
104
+ }, {
105
+ tokenCount: number;
106
+ requestCount: number;
107
+ windowStart: string;
108
+ state: "blocked" | "normal" | "throttled";
109
+ requestTokens: number;
110
+ outputTokens: number;
111
+ queueSize: number;
112
+ lastRefillTime: string;
113
+ nextAllowedTime?: string | undefined;
114
+ }>;
115
+ export type RateLimitState = z.infer<typeof RateLimitStateSchema>;
116
+ /**
117
+ * Rate limit result
118
+ */
119
+ export declare const RateLimitResultSchema: z.ZodObject<{
120
+ /** Whether request is allowed */
121
+ allowed: z.ZodBoolean;
122
+ /** Wait time in ms (for backoff strategy) */
123
+ waitMs: z.ZodNumber;
124
+ /** Whether request was queued */
125
+ queued: z.ZodOptional<z.ZodBoolean>;
126
+ /** Queue position if queued */
127
+ queuePosition: z.ZodOptional<z.ZodNumber>;
128
+ /** Error code if rejected */
129
+ error: z.ZodOptional<z.ZodString>;
130
+ /** Remaining requests in window */
131
+ remainingRequests: z.ZodOptional<z.ZodNumber>;
132
+ /** Remaining tokens in window */
133
+ remainingTokens: z.ZodOptional<z.ZodNumber>;
134
+ /** Time until rate limit resets */
135
+ resetInMs: z.ZodOptional<z.ZodNumber>;
136
+ }, "strip", z.ZodTypeAny, {
137
+ allowed: boolean;
138
+ waitMs: number;
139
+ error?: string | undefined;
140
+ queued?: boolean | undefined;
141
+ queuePosition?: number | undefined;
142
+ remainingRequests?: number | undefined;
143
+ remainingTokens?: number | undefined;
144
+ resetInMs?: number | undefined;
145
+ }, {
146
+ allowed: boolean;
147
+ waitMs: number;
148
+ error?: string | undefined;
149
+ queued?: boolean | undefined;
150
+ queuePosition?: number | undefined;
151
+ remainingRequests?: number | undefined;
152
+ remainingTokens?: number | undefined;
153
+ resetInMs?: number | undefined;
154
+ }>;
155
+ export type RateLimitResult = z.infer<typeof RateLimitResultSchema>;
156
+ /**
157
+ * Rate limit event types
158
+ */
159
+ export declare const RateLimitEventTypeSchema: z.ZodEnum<["rateLimit.acquired", "rateLimit.rejected", "rateLimit.queued", "rateLimit.dequeued", "rateLimit.refilled", "rateLimit.stateChanged"]>;
160
+ export type RateLimitEventType = z.infer<typeof RateLimitEventTypeSchema>;
161
+ /**
162
+ * Rate limit event
163
+ */
164
+ export declare const RateLimitEventSchema: z.ZodObject<{
165
+ eventId: z.ZodString;
166
+ type: z.ZodEnum<["rateLimit.acquired", "rateLimit.rejected", "rateLimit.queued", "rateLimit.dequeued", "rateLimit.refilled", "rateLimit.stateChanged"]>;
167
+ providerId: z.ZodString;
168
+ timestamp: z.ZodString;
169
+ requestId: z.ZodOptional<z.ZodString>;
170
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ type: "rateLimit.acquired" | "rateLimit.rejected" | "rateLimit.queued" | "rateLimit.dequeued" | "rateLimit.refilled" | "rateLimit.stateChanged";
173
+ timestamp: string;
174
+ eventId: string;
175
+ providerId: string;
176
+ details?: Record<string, unknown> | undefined;
177
+ requestId?: string | undefined;
178
+ }, {
179
+ type: "rateLimit.acquired" | "rateLimit.rejected" | "rateLimit.queued" | "rateLimit.dequeued" | "rateLimit.refilled" | "rateLimit.stateChanged";
180
+ timestamp: string;
181
+ eventId: string;
182
+ providerId: string;
183
+ details?: Record<string, unknown> | undefined;
184
+ requestId?: string | undefined;
185
+ }>;
186
+ export type RateLimitEvent = z.infer<typeof RateLimitEventSchema>;
187
+ /**
188
+ * Error codes for rate limit operations
189
+ */
190
+ export declare const RateLimitErrorCodes: {
191
+ readonly RATE_LIMITED: "RATE_LIMIT_EXCEEDED";
192
+ readonly QUEUE_FULL: "RATE_LIMIT_QUEUE_FULL";
193
+ readonly TOKEN_LIMIT: "RATE_LIMIT_TOKEN_EXCEEDED";
194
+ readonly REQUEST_LIMIT: "RATE_LIMIT_REQUEST_EXCEEDED";
195
+ readonly INVALID_CONFIG: "RATE_LIMIT_INVALID_CONFIG";
196
+ };
197
+ export type RateLimitErrorCode = (typeof RateLimitErrorCodes)[keyof typeof RateLimitErrorCodes];
198
+ /**
199
+ * Validates rate limit configuration
200
+ */
201
+ export declare function validateRateLimitConfig(data: unknown): RateLimitConfig;
202
+ /**
203
+ * Validates rate limit state
204
+ */
205
+ export declare function validateRateLimitState(data: unknown): RateLimitState;
206
+ /**
207
+ * Creates default rate limit configuration
208
+ */
209
+ export declare function createDefaultRateLimitConfig(): RateLimitConfig;
210
+ /**
211
+ * Creates initial rate limit state
212
+ */
213
+ export declare function createInitialRateLimitState(config: RateLimitConfig): RateLimitState;
214
+ //# sourceMappingURL=rate-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../src/provider/v1/rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,uBAAuB,2CAIlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,wBAAwB,+CAInC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,uCAAuC;;IAGvC,qCAAqC;;IAGrC,8CAA8C;;IAG9C,+CAA+C;;IAG/C,yDAAyD;;IAGzD,+BAA+B;;IAG/B,iDAAiD;;IAGjD,kCAAkC;;IAGlC,uCAAuC;;IAGvC,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;EAEzC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B,uCAAuC;;IAGvC,sCAAsC;;IAGtC,iCAAiC;;IAGjC,oCAAoC;;IAGpC,yCAAyC;;IAGzC,yBAAyB;;IAGzB,kDAAkD;;IAGlD,oBAAoB;;IAGpB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,iCAAiC;;IAGjC,6CAA6C;;IAG7C,iCAAiC;;IAGjC,+BAA+B;;IAG/B,6BAA6B;;IAG7B,mCAAmC;;IAGnC,iCAAiC;;IAGjC,mCAAmC;;;;;;;;;;;;;;;;;;;;EAEnC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,wBAAwB,mJAOnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;CAMtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAEtE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,CAEpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,eAAe,CAE9D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAYnF"}