@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,165 @@
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 const RateLimitStrategySchema = z.enum([
18
+ 'reject', // Immediately reject request
19
+ 'queue', // Queue request for later
20
+ 'backoff', // Wait with exponential backoff
21
+ ]);
22
+ /**
23
+ * Rate limit state
24
+ */
25
+ export const RateLimitStateEnumSchema = z.enum([
26
+ 'normal', // Operating normally
27
+ 'throttled', // Rate limited but requests allowed
28
+ 'blocked', // All requests blocked
29
+ ]);
30
+ /**
31
+ * Rate limit configuration
32
+ */
33
+ export const RateLimitConfigSchema = z.object({
34
+ /** Requests per minute per provider */
35
+ requestsPerMinute: z.number().int().min(1).max(10000).default(60),
36
+ /** Tokens per minute per provider */
37
+ tokensPerMinute: z.number().int().min(1000).max(10000000).default(100000),
38
+ /** Burst allowance multiplier (INV-RL-001) */
39
+ burstMultiplier: z.number().min(1).max(5).default(1.5),
40
+ /** Strategy when limit reached (INV-RL-003) */
41
+ strategy: RateLimitStrategySchema.default('backoff'),
42
+ /** Max queue size if strategy is 'queue' (INV-RL-004) */
43
+ maxQueueSize: z.number().int().min(0).max(1000).default(100),
44
+ /** Backoff base delay in ms */
45
+ backoffBaseMs: z.number().int().min(100).max(10000).default(1000),
46
+ /** Backoff multiplier for exponential backoff */
47
+ backoffMultiplier: z.number().min(1).max(4).default(2),
48
+ /** Maximum backoff delay in ms */
49
+ maxBackoffMs: z.number().int().min(1000).max(60000).default(30000),
50
+ /** Enable token-based rate limiting */
51
+ enableTokenLimit: z.boolean().default(true),
52
+ /** Enable request-based rate limiting */
53
+ enableRequestLimit: z.boolean().default(true),
54
+ });
55
+ /**
56
+ * Rate limit state snapshot
57
+ */
58
+ export const RateLimitStateSchema = z.object({
59
+ /** Current available request tokens */
60
+ requestTokens: z.number().min(0),
61
+ /** Current available output tokens */
62
+ outputTokens: z.number().min(0),
63
+ /** Requests in current window */
64
+ requestCount: z.number().int().min(0),
65
+ /** Tokens used in current window */
66
+ tokenCount: z.number().int().min(0),
67
+ /** Start of current rate limit window */
68
+ windowStart: z.string().datetime(),
69
+ /** Current queue size */
70
+ queueSize: z.number().int().min(0),
71
+ /** Next allowed request time (if rate limited) */
72
+ nextAllowedTime: z.string().datetime().optional(),
73
+ /** Current state */
74
+ state: RateLimitStateEnumSchema,
75
+ /** Last refill timestamp */
76
+ lastRefillTime: z.string().datetime(),
77
+ });
78
+ /**
79
+ * Rate limit result
80
+ */
81
+ export const RateLimitResultSchema = z.object({
82
+ /** Whether request is allowed */
83
+ allowed: z.boolean(),
84
+ /** Wait time in ms (for backoff strategy) */
85
+ waitMs: z.number().int().min(0),
86
+ /** Whether request was queued */
87
+ queued: z.boolean().optional(),
88
+ /** Queue position if queued */
89
+ queuePosition: z.number().int().min(0).optional(),
90
+ /** Error code if rejected */
91
+ error: z.string().optional(),
92
+ /** Remaining requests in window */
93
+ remainingRequests: z.number().int().min(0).optional(),
94
+ /** Remaining tokens in window */
95
+ remainingTokens: z.number().int().min(0).optional(),
96
+ /** Time until rate limit resets */
97
+ resetInMs: z.number().int().min(0).optional(),
98
+ });
99
+ /**
100
+ * Rate limit event types
101
+ */
102
+ export const RateLimitEventTypeSchema = z.enum([
103
+ 'rateLimit.acquired',
104
+ 'rateLimit.rejected',
105
+ 'rateLimit.queued',
106
+ 'rateLimit.dequeued',
107
+ 'rateLimit.refilled',
108
+ 'rateLimit.stateChanged',
109
+ ]);
110
+ /**
111
+ * Rate limit event
112
+ */
113
+ export const RateLimitEventSchema = z.object({
114
+ eventId: z.string().uuid(),
115
+ type: RateLimitEventTypeSchema,
116
+ providerId: z.string(),
117
+ timestamp: z.string().datetime(),
118
+ requestId: z.string().uuid().optional(),
119
+ details: z.record(z.unknown()).optional(),
120
+ });
121
+ /**
122
+ * Error codes for rate limit operations
123
+ */
124
+ export const RateLimitErrorCodes = {
125
+ RATE_LIMITED: 'RATE_LIMIT_EXCEEDED',
126
+ QUEUE_FULL: 'RATE_LIMIT_QUEUE_FULL',
127
+ TOKEN_LIMIT: 'RATE_LIMIT_TOKEN_EXCEEDED',
128
+ REQUEST_LIMIT: 'RATE_LIMIT_REQUEST_EXCEEDED',
129
+ INVALID_CONFIG: 'RATE_LIMIT_INVALID_CONFIG',
130
+ };
131
+ /**
132
+ * Validates rate limit configuration
133
+ */
134
+ export function validateRateLimitConfig(data) {
135
+ return RateLimitConfigSchema.parse(data);
136
+ }
137
+ /**
138
+ * Validates rate limit state
139
+ */
140
+ export function validateRateLimitState(data) {
141
+ return RateLimitStateSchema.parse(data);
142
+ }
143
+ /**
144
+ * Creates default rate limit configuration
145
+ */
146
+ export function createDefaultRateLimitConfig() {
147
+ return RateLimitConfigSchema.parse({});
148
+ }
149
+ /**
150
+ * Creates initial rate limit state
151
+ */
152
+ export function createInitialRateLimitState(config) {
153
+ const now = new Date().toISOString();
154
+ return {
155
+ requestTokens: config.requestsPerMinute * config.burstMultiplier,
156
+ outputTokens: config.tokensPerMinute * config.burstMultiplier,
157
+ requestCount: 0,
158
+ tokenCount: 0,
159
+ windowStart: now,
160
+ queueSize: 0,
161
+ state: 'normal',
162
+ lastRefillTime: now,
163
+ };
164
+ }
165
+ //# sourceMappingURL=rate-limit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/provider/v1/rate-limit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Circuit Breaker Contract
3
+ *
4
+ * Prevents cascade failures by stopping calls to unhealthy providers.
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const CircuitBreakerStateSchema: z.ZodEnum<["closed", "open", "half-open"]>;
8
+ export type CircuitBreakerState = z.infer<typeof CircuitBreakerStateSchema>;
9
+ export declare const CircuitBreakerConfigSchema: z.ZodObject<{
10
+ /** Number of failures before opening circuit */
11
+ failureThreshold: z.ZodDefault<z.ZodNumber>;
12
+ /** Time in ms before attempting recovery (half-open) */
13
+ resetTimeoutMs: z.ZodDefault<z.ZodNumber>;
14
+ /** Number of test requests allowed in half-open state */
15
+ halfOpenMaxAttempts: z.ZodDefault<z.ZodNumber>;
16
+ /** Time window for counting failures in ms */
17
+ failureWindowMs: z.ZodDefault<z.ZodNumber>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ failureThreshold: number;
20
+ resetTimeoutMs: number;
21
+ halfOpenMaxAttempts: number;
22
+ failureWindowMs: number;
23
+ }, {
24
+ failureThreshold?: number | undefined;
25
+ resetTimeoutMs?: number | undefined;
26
+ halfOpenMaxAttempts?: number | undefined;
27
+ failureWindowMs?: number | undefined;
28
+ }>;
29
+ export type CircuitBreakerConfig = z.infer<typeof CircuitBreakerConfigSchema>;
30
+ export declare const CircuitBreakerStatsSchema: z.ZodObject<{
31
+ /** Current state */
32
+ state: z.ZodEnum<["closed", "open", "half-open"]>;
33
+ /** Total successful calls */
34
+ successCount: z.ZodNumber;
35
+ /** Total failed calls */
36
+ failureCount: z.ZodNumber;
37
+ /** Failures in current window */
38
+ recentFailures: z.ZodNumber;
39
+ /** Last failure timestamp */
40
+ lastFailureAt: z.ZodOptional<z.ZodString>;
41
+ /** Last success timestamp */
42
+ lastSuccessAt: z.ZodOptional<z.ZodString>;
43
+ /** When circuit opened (if open) */
44
+ openedAt: z.ZodOptional<z.ZodString>;
45
+ /** Consecutive successes in half-open */
46
+ halfOpenSuccesses: z.ZodNumber;
47
+ }, "strip", z.ZodTypeAny, {
48
+ successCount: number;
49
+ failureCount: number;
50
+ state: "open" | "closed" | "half-open";
51
+ recentFailures: number;
52
+ halfOpenSuccesses: number;
53
+ lastFailureAt?: string | undefined;
54
+ lastSuccessAt?: string | undefined;
55
+ openedAt?: string | undefined;
56
+ }, {
57
+ successCount: number;
58
+ failureCount: number;
59
+ state: "open" | "closed" | "half-open";
60
+ recentFailures: number;
61
+ halfOpenSuccesses: number;
62
+ lastFailureAt?: string | undefined;
63
+ lastSuccessAt?: string | undefined;
64
+ openedAt?: string | undefined;
65
+ }>;
66
+ export type CircuitBreakerStats = z.infer<typeof CircuitBreakerStatsSchema>;
67
+ export declare const CircuitBreakerEventSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
68
+ type: z.ZodLiteral<"state-change">;
69
+ from: z.ZodEnum<["closed", "open", "half-open"]>;
70
+ to: z.ZodEnum<["closed", "open", "half-open"]>;
71
+ timestamp: z.ZodString;
72
+ }, "strip", z.ZodTypeAny, {
73
+ type: "state-change";
74
+ timestamp: string;
75
+ from: "open" | "closed" | "half-open";
76
+ to: "open" | "closed" | "half-open";
77
+ }, {
78
+ type: "state-change";
79
+ timestamp: string;
80
+ from: "open" | "closed" | "half-open";
81
+ to: "open" | "closed" | "half-open";
82
+ }>, z.ZodObject<{
83
+ type: z.ZodLiteral<"call-success">;
84
+ durationMs: z.ZodNumber;
85
+ timestamp: z.ZodString;
86
+ }, "strip", z.ZodTypeAny, {
87
+ type: "call-success";
88
+ timestamp: string;
89
+ durationMs: number;
90
+ }, {
91
+ type: "call-success";
92
+ timestamp: string;
93
+ durationMs: number;
94
+ }>, z.ZodObject<{
95
+ type: z.ZodLiteral<"call-failure">;
96
+ error: z.ZodString;
97
+ timestamp: z.ZodString;
98
+ }, "strip", z.ZodTypeAny, {
99
+ type: "call-failure";
100
+ timestamp: string;
101
+ error: string;
102
+ }, {
103
+ type: "call-failure";
104
+ timestamp: string;
105
+ error: string;
106
+ }>, z.ZodObject<{
107
+ type: z.ZodLiteral<"call-rejected">;
108
+ reason: z.ZodString;
109
+ timestamp: z.ZodString;
110
+ }, "strip", z.ZodTypeAny, {
111
+ type: "call-rejected";
112
+ timestamp: string;
113
+ reason: string;
114
+ }, {
115
+ type: "call-rejected";
116
+ timestamp: string;
117
+ reason: string;
118
+ }>]>;
119
+ export type CircuitBreakerEvent = z.infer<typeof CircuitBreakerEventSchema>;
120
+ export declare const CircuitBreakerErrorCodes: {
121
+ readonly CIRCUIT_OPEN: "CIRCUIT_BREAKER_OPEN";
122
+ readonly EXECUTION_FAILED: "CIRCUIT_BREAKER_EXECUTION_FAILED";
123
+ };
124
+ export type CircuitBreakerErrorCode = (typeof CircuitBreakerErrorCodes)[keyof typeof CircuitBreakerErrorCodes];
125
+ export declare function validateCircuitBreakerConfig(data: unknown): CircuitBreakerConfig;
126
+ export declare function safeValidateCircuitBreakerConfig(data: unknown): {
127
+ success: true;
128
+ data: CircuitBreakerConfig;
129
+ } | {
130
+ success: false;
131
+ error: z.ZodError;
132
+ };
133
+ export declare function createDefaultCircuitBreakerConfig(): CircuitBreakerConfig;
134
+ export declare function createCircuitBreakerStats(): CircuitBreakerStats;
135
+ //# sourceMappingURL=circuit-breaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../../../src/resilience/v1/circuit-breaker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,yBAAyB,4CAA0C,CAAC;AACjF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E,eAAO,MAAM,0BAA0B;IACrC,gDAAgD;;IAGhD,wDAAwD;;IAGxD,yDAAyD;;IAGzD,8CAA8C;;;;;;;;;;;;EAE9C,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E,eAAO,MAAM,yBAAyB;IACpC,oBAAoB;;IAGpB,6BAA6B;;IAG7B,yBAAyB;;IAGzB,iCAAiC;;IAGjC,6BAA6B;;IAG7B,6BAA6B;;IAG7B,oCAAoC;;IAGpC,yCAAyC;;;;;;;;;;;;;;;;;;;;EAEzC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM5E,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAM3E,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,GAAG,oBAAoB,CAEhF;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,OAAO,GACZ;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAIvF;AAMD,wBAAgB,iCAAiC,IAAI,oBAAoB,CAExE;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,CAQ/D"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Circuit Breaker Contract
3
+ *
4
+ * Prevents cascade failures by stopping calls to unhealthy providers.
5
+ */
6
+ import { z } from 'zod';
7
+ // ============================================================================
8
+ // Circuit Breaker State
9
+ // ============================================================================
10
+ export const CircuitBreakerStateSchema = z.enum(['closed', 'open', 'half-open']);
11
+ // ============================================================================
12
+ // Configuration
13
+ // ============================================================================
14
+ export const CircuitBreakerConfigSchema = z.object({
15
+ /** Number of failures before opening circuit */
16
+ failureThreshold: z.number().int().min(1).max(100).default(5),
17
+ /** Time in ms before attempting recovery (half-open) */
18
+ resetTimeoutMs: z.number().int().min(1000).max(300000).default(30000),
19
+ /** Number of test requests allowed in half-open state */
20
+ halfOpenMaxAttempts: z.number().int().min(1).max(10).default(1),
21
+ /** Time window for counting failures in ms */
22
+ failureWindowMs: z.number().int().min(1000).max(300000).default(60000),
23
+ });
24
+ // ============================================================================
25
+ // Stats
26
+ // ============================================================================
27
+ export const CircuitBreakerStatsSchema = z.object({
28
+ /** Current state */
29
+ state: CircuitBreakerStateSchema,
30
+ /** Total successful calls */
31
+ successCount: z.number().int().min(0),
32
+ /** Total failed calls */
33
+ failureCount: z.number().int().min(0),
34
+ /** Failures in current window */
35
+ recentFailures: z.number().int().min(0),
36
+ /** Last failure timestamp */
37
+ lastFailureAt: z.string().datetime().optional(),
38
+ /** Last success timestamp */
39
+ lastSuccessAt: z.string().datetime().optional(),
40
+ /** When circuit opened (if open) */
41
+ openedAt: z.string().datetime().optional(),
42
+ /** Consecutive successes in half-open */
43
+ halfOpenSuccesses: z.number().int().min(0),
44
+ });
45
+ // ============================================================================
46
+ // Events
47
+ // ============================================================================
48
+ export const CircuitBreakerEventSchema = z.discriminatedUnion('type', [
49
+ z.object({
50
+ type: z.literal('state-change'),
51
+ from: CircuitBreakerStateSchema,
52
+ to: CircuitBreakerStateSchema,
53
+ timestamp: z.string().datetime(),
54
+ }),
55
+ z.object({
56
+ type: z.literal('call-success'),
57
+ durationMs: z.number().int().min(0),
58
+ timestamp: z.string().datetime(),
59
+ }),
60
+ z.object({
61
+ type: z.literal('call-failure'),
62
+ error: z.string(),
63
+ timestamp: z.string().datetime(),
64
+ }),
65
+ z.object({
66
+ type: z.literal('call-rejected'),
67
+ reason: z.string(),
68
+ timestamp: z.string().datetime(),
69
+ }),
70
+ ]);
71
+ // ============================================================================
72
+ // Error Codes
73
+ // ============================================================================
74
+ export const CircuitBreakerErrorCodes = {
75
+ CIRCUIT_OPEN: 'CIRCUIT_BREAKER_OPEN',
76
+ EXECUTION_FAILED: 'CIRCUIT_BREAKER_EXECUTION_FAILED',
77
+ };
78
+ // ============================================================================
79
+ // Validation Functions
80
+ // ============================================================================
81
+ export function validateCircuitBreakerConfig(data) {
82
+ return CircuitBreakerConfigSchema.parse(data);
83
+ }
84
+ export function safeValidateCircuitBreakerConfig(data) {
85
+ const result = CircuitBreakerConfigSchema.safeParse(data);
86
+ if (result.success)
87
+ return { success: true, data: result.data };
88
+ return { success: false, error: result.error };
89
+ }
90
+ // ============================================================================
91
+ // Factory Functions
92
+ // ============================================================================
93
+ export function createDefaultCircuitBreakerConfig() {
94
+ return CircuitBreakerConfigSchema.parse({});
95
+ }
96
+ export function createCircuitBreakerStats() {
97
+ return {
98
+ state: 'closed',
99
+ successCount: 0,
100
+ failureCount: 0,
101
+ recentFailures: 0,
102
+ halfOpenSuccesses: 0,
103
+ };
104
+ }
105
+ //# sourceMappingURL=circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../../../src/resilience/v1/circuit-breaker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Resilience Contracts v1
3
+ *
4
+ * Production-grade resilience patterns: circuit breaker, rate limiter,
5
+ * loop guard, resource limits, and metrics.
6
+ */
7
+ export { CircuitBreakerStateSchema, CircuitBreakerConfigSchema, CircuitBreakerStatsSchema, CircuitBreakerEventSchema, CircuitBreakerErrorCodes, validateCircuitBreakerConfig, safeValidateCircuitBreakerConfig, createDefaultCircuitBreakerConfig, createCircuitBreakerStats, } from './circuit-breaker.js';
8
+ export type { CircuitBreakerState, CircuitBreakerConfig, CircuitBreakerStats, CircuitBreakerEvent, CircuitBreakerErrorCode, } from './circuit-breaker.js';
9
+ export { RateLimiterConfigSchema, RateLimiterStatsSchema, RateLimiterAcquireResultSchema, RateLimiterErrorCodes, validateRateLimiterConfig, safeValidateRateLimiterConfig, createDefaultRateLimiterConfig, createRateLimiterStats, DEFAULT_TOKEN_WINDOW_MS, DEFAULT_CHECK_INTERVAL_MS, TIME_MULTIPLIERS, DEFAULT_TIME_RANGE_MS, } from './rate-limiter.js';
10
+ export type { RateLimiterConfig, RateLimiterStats, RateLimiterAcquireResult, RateLimiterErrorCode, } from './rate-limiter.js';
11
+ export { LoopGuardConfigSchema, LoopGuardContextSchema, LoopGuardResultSchema, LoopGuardErrorCodes, validateLoopGuardConfig, safeValidateLoopGuardConfig, createDefaultLoopGuardConfig, createLoopGuardContext, } from './loop-guard.js';
12
+ export type { LoopGuardConfig, LoopGuardContext, LoopGuardResult, LoopGuardErrorCode, } from './loop-guard.js';
13
+ export { ResourceLimitsConfigSchema, ResourceUsageSchema, ResourceCheckResultSchema, ResourceRequestInfoSchema, ResourceLimitsErrorCodes, validateResourceLimitsConfig, safeValidateResourceLimitsConfig, createDefaultResourceLimitsConfig, createResourceUsage, estimateCost, } from './resource-limits.js';
14
+ export type { ResourceLimitsConfig, ResourceUsage, ResourceCheckResult, ResourceRequestInfo, ResourceLimitsErrorCode, } from './resource-limits.js';
15
+ export { MetricsTimeRangeSchema, RequestMetricSchema, ErrorMetricSchema, LatencyStatsSchema, MetricsSnapshotSchema, validateRequestMetric, validateErrorMetric, validateMetricsSnapshot, createEmptyMetricsSnapshot, createRequestMetric, createErrorMetric, } from './metrics.js';
16
+ export type { MetricsTimeRange, RequestMetric, ErrorMetric, LatencyStats, MetricsSnapshot, } from './metrics.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/resilience/v1/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Resilience Contracts v1
3
+ *
4
+ * Production-grade resilience patterns: circuit breaker, rate limiter,
5
+ * loop guard, resource limits, and metrics.
6
+ */
7
+ // Circuit Breaker
8
+ export { CircuitBreakerStateSchema, CircuitBreakerConfigSchema, CircuitBreakerStatsSchema, CircuitBreakerEventSchema, CircuitBreakerErrorCodes, validateCircuitBreakerConfig, safeValidateCircuitBreakerConfig, createDefaultCircuitBreakerConfig, createCircuitBreakerStats, } from './circuit-breaker.js';
9
+ // Rate Limiter
10
+ export { RateLimiterConfigSchema, RateLimiterStatsSchema, RateLimiterAcquireResultSchema, RateLimiterErrorCodes, validateRateLimiterConfig, safeValidateRateLimiterConfig, createDefaultRateLimiterConfig, createRateLimiterStats, DEFAULT_TOKEN_WINDOW_MS, DEFAULT_CHECK_INTERVAL_MS, TIME_MULTIPLIERS, DEFAULT_TIME_RANGE_MS, } from './rate-limiter.js';
11
+ // Loop Guard
12
+ export { LoopGuardConfigSchema, LoopGuardContextSchema, LoopGuardResultSchema, LoopGuardErrorCodes, validateLoopGuardConfig, safeValidateLoopGuardConfig, createDefaultLoopGuardConfig, createLoopGuardContext, } from './loop-guard.js';
13
+ // Resource Limits
14
+ export { ResourceLimitsConfigSchema, ResourceUsageSchema, ResourceCheckResultSchema, ResourceRequestInfoSchema, ResourceLimitsErrorCodes, validateResourceLimitsConfig, safeValidateResourceLimitsConfig, createDefaultResourceLimitsConfig, createResourceUsage, estimateCost, } from './resource-limits.js';
15
+ // Metrics
16
+ export { MetricsTimeRangeSchema, RequestMetricSchema, ErrorMetricSchema, LatencyStatsSchema, MetricsSnapshotSchema, validateRequestMetric, validateErrorMetric, validateMetricsSnapshot, createEmptyMetricsSnapshot, createRequestMetric, createErrorMetric, } from './metrics.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resilience/v1/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kBAAkB;AAClB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAU9B,eAAe;AACf,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAS3B,aAAa;AACb,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AASzB,kBAAkB;AAClB,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EACjC,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAU9B,UAAU;AACV,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Loop Guard Contract
3
+ *
4
+ * Prevents infinite loops and runaway execution that burns resources.
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const LoopGuardConfigSchema: z.ZodObject<{
8
+ /** Maximum iterations before hard stop */
9
+ maxIterations: z.ZodDefault<z.ZodNumber>;
10
+ /** Iteration count that triggers warning */
11
+ warnAtIterations: z.ZodDefault<z.ZodNumber>;
12
+ /** Maximum execution duration in ms */
13
+ maxDurationMs: z.ZodDefault<z.ZodNumber>;
14
+ /** Duration that triggers warning in ms */
15
+ warnAtDurationMs: z.ZodDefault<z.ZodNumber>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ maxIterations: number;
18
+ warnAtIterations: number;
19
+ maxDurationMs: number;
20
+ warnAtDurationMs: number;
21
+ }, {
22
+ maxIterations?: number | undefined;
23
+ warnAtIterations?: number | undefined;
24
+ maxDurationMs?: number | undefined;
25
+ warnAtDurationMs?: number | undefined;
26
+ }>;
27
+ export type LoopGuardConfig = z.infer<typeof LoopGuardConfigSchema>;
28
+ export declare const LoopGuardContextSchema: z.ZodObject<{
29
+ /** Unique context identifier */
30
+ contextId: z.ZodString;
31
+ /** Current iteration count */
32
+ iterations: z.ZodNumber;
33
+ /** Start time */
34
+ startedAt: z.ZodString;
35
+ /** Elapsed time in ms */
36
+ elapsedMs: z.ZodNumber;
37
+ /** Whether warning was already issued */
38
+ warningIssued: z.ZodBoolean;
39
+ /** Context metadata */
40
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ startedAt: string;
43
+ iterations: number;
44
+ contextId: string;
45
+ elapsedMs: number;
46
+ warningIssued: boolean;
47
+ metadata?: Record<string, unknown> | undefined;
48
+ }, {
49
+ startedAt: string;
50
+ iterations: number;
51
+ contextId: string;
52
+ elapsedMs: number;
53
+ warningIssued: boolean;
54
+ metadata?: Record<string, unknown> | undefined;
55
+ }>;
56
+ export type LoopGuardContext = z.infer<typeof LoopGuardContextSchema>;
57
+ export declare const LoopGuardResultSchema: z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
58
+ status: z.ZodLiteral<"ok">;
59
+ iteration: z.ZodNumber;
60
+ elapsedMs: z.ZodNumber;
61
+ }, "strip", z.ZodTypeAny, {
62
+ status: "ok";
63
+ iteration: number;
64
+ elapsedMs: number;
65
+ }, {
66
+ status: "ok";
67
+ iteration: number;
68
+ elapsedMs: number;
69
+ }>, z.ZodObject<{
70
+ status: z.ZodLiteral<"warning">;
71
+ iteration: z.ZodNumber;
72
+ elapsedMs: z.ZodNumber;
73
+ message: z.ZodString;
74
+ warningType: z.ZodEnum<["iteration", "duration"]>;
75
+ }, "strip", z.ZodTypeAny, {
76
+ message: string;
77
+ status: "warning";
78
+ iteration: number;
79
+ elapsedMs: number;
80
+ warningType: "duration" | "iteration";
81
+ }, {
82
+ message: string;
83
+ status: "warning";
84
+ iteration: number;
85
+ elapsedMs: number;
86
+ warningType: "duration" | "iteration";
87
+ }>, z.ZodObject<{
88
+ status: z.ZodLiteral<"blocked">;
89
+ iteration: z.ZodNumber;
90
+ elapsedMs: z.ZodNumber;
91
+ reason: z.ZodString;
92
+ blockType: z.ZodEnum<["max-iterations", "max-duration"]>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ status: "blocked";
95
+ reason: string;
96
+ iteration: number;
97
+ elapsedMs: number;
98
+ blockType: "max-iterations" | "max-duration";
99
+ }, {
100
+ status: "blocked";
101
+ reason: string;
102
+ iteration: number;
103
+ elapsedMs: number;
104
+ blockType: "max-iterations" | "max-duration";
105
+ }>]>;
106
+ export type LoopGuardResult = z.infer<typeof LoopGuardResultSchema>;
107
+ export declare const LoopGuardErrorCodes: {
108
+ readonly MAX_ITERATIONS: "LOOP_GUARD_MAX_ITERATIONS";
109
+ readonly MAX_DURATION: "LOOP_GUARD_MAX_DURATION";
110
+ readonly CONTEXT_NOT_FOUND: "LOOP_GUARD_CONTEXT_NOT_FOUND";
111
+ };
112
+ export type LoopGuardErrorCode = (typeof LoopGuardErrorCodes)[keyof typeof LoopGuardErrorCodes];
113
+ export declare function validateLoopGuardConfig(data: unknown): LoopGuardConfig;
114
+ export declare function safeValidateLoopGuardConfig(data: unknown): {
115
+ success: true;
116
+ data: LoopGuardConfig;
117
+ } | {
118
+ success: false;
119
+ error: z.ZodError;
120
+ };
121
+ export declare function createDefaultLoopGuardConfig(): LoopGuardConfig;
122
+ export declare function createLoopGuardContext(contextId: string): LoopGuardContext;
123
+ //# sourceMappingURL=loop-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-guard.d.ts","sourceRoot":"","sources":["../../../src/resilience/v1/loop-guard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,qBAAqB;IAChC,0CAA0C;;IAG1C,4CAA4C;;IAG5C,uCAAuC;;IAGvC,2CAA2C;;;;;;;;;;;;EAE3C,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE,eAAO,MAAM,sBAAsB;IACjC,gCAAgC;;IAGhC,8BAA8B;;IAG9B,iBAAiB;;IAGjB,yBAAyB;;IAGzB,yCAAyC;;IAGzC,uBAAuB;;;;;;;;;;;;;;;;EAEvB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAMjE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAEtE;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,OAAO,GACZ;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAIlF;AAMD,wBAAgB,4BAA4B,IAAI,eAAe,CAE9D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAQ1E"}