@kindgi/api 0.0.0-bootstrap.0 → 0.1.1

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 (505) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +216 -1
  3. package/dist/adapter-binding.d.ts +177 -0
  4. package/dist/adapter-binding.d.ts.map +1 -0
  5. package/dist/adapter-binding.js +12 -0
  6. package/dist/adapter-binding.js.map +1 -0
  7. package/dist/agent-binding.d.ts +207 -0
  8. package/dist/agent-binding.d.ts.map +1 -0
  9. package/dist/agent-binding.js +4 -0
  10. package/dist/agent-binding.js.map +1 -0
  11. package/dist/app.d.ts +770 -0
  12. package/dist/app.d.ts.map +1 -0
  13. package/dist/app.js +397 -0
  14. package/dist/app.js.map +1 -0
  15. package/dist/capability-binding.d.ts +76 -0
  16. package/dist/capability-binding.d.ts.map +1 -0
  17. package/dist/capability-binding.js +4 -0
  18. package/dist/capability-binding.js.map +1 -0
  19. package/dist/cost-binding.d.ts +175 -0
  20. package/dist/cost-binding.d.ts.map +1 -0
  21. package/dist/cost-binding.js +13 -0
  22. package/dist/cost-binding.js.map +1 -0
  23. package/dist/deployment-binding.d.ts +201 -0
  24. package/dist/deployment-binding.d.ts.map +1 -0
  25. package/dist/deployment-binding.js +4 -0
  26. package/dist/deployment-binding.js.map +1 -0
  27. package/dist/env-binding.d.ts +132 -0
  28. package/dist/env-binding.d.ts.map +1 -0
  29. package/dist/env-binding.js +4 -0
  30. package/dist/env-binding.js.map +1 -0
  31. package/dist/errors.d.ts +37 -0
  32. package/dist/errors.d.ts.map +1 -0
  33. package/dist/errors.js +268 -0
  34. package/dist/errors.js.map +1 -0
  35. package/dist/eval-run-binding.d.ts +196 -0
  36. package/dist/eval-run-binding.d.ts.map +1 -0
  37. package/dist/eval-run-binding.js +16 -0
  38. package/dist/eval-run-binding.js.map +1 -0
  39. package/dist/eval-run-dispatcher.d.ts +131 -0
  40. package/dist/eval-run-dispatcher.d.ts.map +1 -0
  41. package/dist/eval-run-dispatcher.js +368 -0
  42. package/dist/eval-run-dispatcher.js.map +1 -0
  43. package/dist/eval-suite-binding.d.ts +227 -0
  44. package/dist/eval-suite-binding.d.ts.map +1 -0
  45. package/dist/eval-suite-binding.js +24 -0
  46. package/dist/eval-suite-binding.js.map +1 -0
  47. package/dist/event-bus-binding.d.ts +107 -0
  48. package/dist/event-bus-binding.d.ts.map +1 -0
  49. package/dist/event-bus-binding.js +5 -0
  50. package/dist/event-bus-binding.js.map +1 -0
  51. package/dist/flow-binding.d.ts +194 -0
  52. package/dist/flow-binding.d.ts.map +1 -0
  53. package/dist/flow-binding.js +4 -0
  54. package/dist/flow-binding.js.map +1 -0
  55. package/dist/guardrail-binding.d.ts +138 -0
  56. package/dist/guardrail-binding.d.ts.map +1 -0
  57. package/dist/guardrail-binding.js +4 -0
  58. package/dist/guardrail-binding.js.map +1 -0
  59. package/dist/handler-binding.d.ts +126 -0
  60. package/dist/handler-binding.d.ts.map +1 -0
  61. package/dist/handler-binding.js +4 -0
  62. package/dist/handler-binding.js.map +1 -0
  63. package/dist/hitl-binding.d.ts +115 -0
  64. package/dist/hitl-binding.d.ts.map +1 -0
  65. package/dist/hitl-binding.js +4 -0
  66. package/dist/hitl-binding.js.map +1 -0
  67. package/dist/identity-directory-binding.d.ts +116 -0
  68. package/dist/identity-directory-binding.d.ts.map +1 -0
  69. package/dist/identity-directory-binding.js +4 -0
  70. package/dist/identity-directory-binding.js.map +1 -0
  71. package/dist/identity-provider-binding.d.ts +184 -0
  72. package/dist/identity-provider-binding.d.ts.map +1 -0
  73. package/dist/identity-provider-binding.js +4 -0
  74. package/dist/identity-provider-binding.js.map +1 -0
  75. package/dist/image-registry-binding.d.ts +165 -0
  76. package/dist/image-registry-binding.d.ts.map +1 -0
  77. package/dist/image-registry-binding.js +4 -0
  78. package/dist/image-registry-binding.js.map +1 -0
  79. package/dist/index.d.ts +72 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +26 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/key-management-binding.d.ts +101 -0
  84. package/dist/key-management-binding.d.ts.map +1 -0
  85. package/dist/key-management-binding.js +4 -0
  86. package/dist/key-management-binding.js.map +1 -0
  87. package/dist/mcp-endpoint-binding.d.ts +312 -0
  88. package/dist/mcp-endpoint-binding.d.ts.map +1 -0
  89. package/dist/mcp-endpoint-binding.js +12 -0
  90. package/dist/mcp-endpoint-binding.js.map +1 -0
  91. package/dist/memory-binding.d.ts +209 -0
  92. package/dist/memory-binding.d.ts.map +1 -0
  93. package/dist/memory-binding.js +4 -0
  94. package/dist/memory-binding.js.map +1 -0
  95. package/dist/middleware/auth.d.ts +168 -0
  96. package/dist/middleware/auth.d.ts.map +1 -0
  97. package/dist/middleware/auth.js +247 -0
  98. package/dist/middleware/auth.js.map +1 -0
  99. package/dist/middleware/authorize.d.ts +26 -0
  100. package/dist/middleware/authorize.d.ts.map +1 -0
  101. package/dist/middleware/authorize.js +65 -0
  102. package/dist/middleware/authorize.js.map +1 -0
  103. package/dist/middleware/error-mapper.d.ts +20 -0
  104. package/dist/middleware/error-mapper.d.ts.map +1 -0
  105. package/dist/middleware/error-mapper.js +34 -0
  106. package/dist/middleware/error-mapper.js.map +1 -0
  107. package/dist/middleware/idempotency.d.ts +43 -0
  108. package/dist/middleware/idempotency.d.ts.map +1 -0
  109. package/dist/middleware/idempotency.js +118 -0
  110. package/dist/middleware/idempotency.js.map +1 -0
  111. package/dist/middleware/principal.d.ts +4 -0
  112. package/dist/middleware/principal.d.ts.map +1 -0
  113. package/dist/middleware/principal.js +42 -0
  114. package/dist/middleware/principal.js.map +1 -0
  115. package/dist/middleware/public-run-routes.d.ts +16 -0
  116. package/dist/middleware/public-run-routes.d.ts.map +1 -0
  117. package/dist/middleware/public-run-routes.js +43 -0
  118. package/dist/middleware/public-run-routes.js.map +1 -0
  119. package/dist/middleware/request-id.d.ts +14 -0
  120. package/dist/middleware/request-id.d.ts.map +1 -0
  121. package/dist/middleware/request-id.js +24 -0
  122. package/dist/middleware/request-id.js.map +1 -0
  123. package/dist/middleware/sigv4-verify.d.ts +64 -0
  124. package/dist/middleware/sigv4-verify.d.ts.map +1 -0
  125. package/dist/middleware/sigv4-verify.js +286 -0
  126. package/dist/middleware/sigv4-verify.js.map +1 -0
  127. package/dist/middleware/sigv4.d.ts +25 -0
  128. package/dist/middleware/sigv4.d.ts.map +1 -0
  129. package/dist/middleware/sigv4.js +120 -0
  130. package/dist/middleware/sigv4.js.map +1 -0
  131. package/dist/openapi/generate.d.ts +15 -0
  132. package/dist/openapi/generate.d.ts.map +1 -0
  133. package/dist/openapi/generate.js +241 -0
  134. package/dist/openapi/generate.js.map +1 -0
  135. package/dist/openapi/operations.d.ts +70 -0
  136. package/dist/openapi/operations.d.ts.map +1 -0
  137. package/dist/openapi/operations.js +5050 -0
  138. package/dist/openapi/operations.js.map +1 -0
  139. package/dist/openapi/schemas.d.ts +590 -0
  140. package/dist/openapi/schemas.d.ts.map +1 -0
  141. package/dist/openapi/schemas.js +5820 -0
  142. package/dist/openapi/schemas.js.map +1 -0
  143. package/dist/provenance-binding.d.ts +116 -0
  144. package/dist/provenance-binding.d.ts.map +1 -0
  145. package/dist/provenance-binding.js +31 -0
  146. package/dist/provenance-binding.js.map +1 -0
  147. package/dist/provider-binding.d.ts +174 -0
  148. package/dist/provider-binding.d.ts.map +1 -0
  149. package/dist/provider-binding.js +4 -0
  150. package/dist/provider-binding.js.map +1 -0
  151. package/dist/public-run-token.d.ts +97 -0
  152. package/dist/public-run-token.d.ts.map +1 -0
  153. package/dist/public-run-token.js +167 -0
  154. package/dist/public-run-token.js.map +1 -0
  155. package/dist/retention-binding.d.ts +69 -0
  156. package/dist/retention-binding.d.ts.map +1 -0
  157. package/dist/retention-binding.js +4 -0
  158. package/dist/retention-binding.js.map +1 -0
  159. package/dist/reviewer-binding.d.ts +84 -0
  160. package/dist/reviewer-binding.d.ts.map +1 -0
  161. package/dist/reviewer-binding.js +4 -0
  162. package/dist/reviewer-binding.js.map +1 -0
  163. package/dist/rotation-status-store.d.ts +96 -0
  164. package/dist/rotation-status-store.d.ts.map +1 -0
  165. package/dist/rotation-status-store.js +106 -0
  166. package/dist/rotation-status-store.js.map +1 -0
  167. package/dist/routes/adapters.d.ts +29 -0
  168. package/dist/routes/adapters.d.ts.map +1 -0
  169. package/dist/routes/adapters.js +230 -0
  170. package/dist/routes/adapters.js.map +1 -0
  171. package/dist/routes/agents.d.ts +17 -0
  172. package/dist/routes/agents.d.ts.map +1 -0
  173. package/dist/routes/agents.js +342 -0
  174. package/dist/routes/agents.js.map +1 -0
  175. package/dist/routes/approvals.d.ts +37 -0
  176. package/dist/routes/approvals.d.ts.map +1 -0
  177. package/dist/routes/approvals.js +551 -0
  178. package/dist/routes/approvals.js.map +1 -0
  179. package/dist/routes/artifacts.d.ts +25 -0
  180. package/dist/routes/artifacts.d.ts.map +1 -0
  181. package/dist/routes/artifacts.js +265 -0
  182. package/dist/routes/artifacts.js.map +1 -0
  183. package/dist/routes/audit.d.ts +6 -0
  184. package/dist/routes/audit.d.ts.map +1 -0
  185. package/dist/routes/audit.js +162 -0
  186. package/dist/routes/audit.js.map +1 -0
  187. package/dist/routes/auth.d.ts +47 -0
  188. package/dist/routes/auth.d.ts.map +1 -0
  189. package/dist/routes/auth.js +630 -0
  190. package/dist/routes/auth.js.map +1 -0
  191. package/dist/routes/capabilities.d.ts +14 -0
  192. package/dist/routes/capabilities.d.ts.map +1 -0
  193. package/dist/routes/capabilities.js +62 -0
  194. package/dist/routes/capabilities.js.map +1 -0
  195. package/dist/routes/compliance.d.ts +37 -0
  196. package/dist/routes/compliance.d.ts.map +1 -0
  197. package/dist/routes/compliance.js +321 -0
  198. package/dist/routes/compliance.js.map +1 -0
  199. package/dist/routes/conversations.d.ts +13 -0
  200. package/dist/routes/conversations.d.ts.map +1 -0
  201. package/dist/routes/conversations.js +295 -0
  202. package/dist/routes/conversations.js.map +1 -0
  203. package/dist/routes/cost.d.ts +24 -0
  204. package/dist/routes/cost.d.ts.map +1 -0
  205. package/dist/routes/cost.js +243 -0
  206. package/dist/routes/cost.js.map +1 -0
  207. package/dist/routes/deployments.d.ts +122 -0
  208. package/dist/routes/deployments.d.ts.map +1 -0
  209. package/dist/routes/deployments.js +1036 -0
  210. package/dist/routes/deployments.js.map +1 -0
  211. package/dist/routes/env.d.ts +62 -0
  212. package/dist/routes/env.d.ts.map +1 -0
  213. package/dist/routes/env.js +311 -0
  214. package/dist/routes/env.js.map +1 -0
  215. package/dist/routes/eval-runs.d.ts +28 -0
  216. package/dist/routes/eval-runs.d.ts.map +1 -0
  217. package/dist/routes/eval-runs.js +479 -0
  218. package/dist/routes/eval-runs.js.map +1 -0
  219. package/dist/routes/eval-suites.d.ts +24 -0
  220. package/dist/routes/eval-suites.d.ts.map +1 -0
  221. package/dist/routes/eval-suites.js +381 -0
  222. package/dist/routes/eval-suites.js.map +1 -0
  223. package/dist/routes/event-triggers.d.ts +12 -0
  224. package/dist/routes/event-triggers.d.ts.map +1 -0
  225. package/dist/routes/event-triggers.js +218 -0
  226. package/dist/routes/event-triggers.js.map +1 -0
  227. package/dist/routes/flows.d.ts +23 -0
  228. package/dist/routes/flows.d.ts.map +1 -0
  229. package/dist/routes/flows.js +344 -0
  230. package/dist/routes/flows.js.map +1 -0
  231. package/dist/routes/guardrails.d.ts +33 -0
  232. package/dist/routes/guardrails.d.ts.map +1 -0
  233. package/dist/routes/guardrails.js +236 -0
  234. package/dist/routes/guardrails.js.map +1 -0
  235. package/dist/routes/identity.d.ts +39 -0
  236. package/dist/routes/identity.d.ts.map +1 -0
  237. package/dist/routes/identity.js +138 -0
  238. package/dist/routes/identity.js.map +1 -0
  239. package/dist/routes/mcp.d.ts +23 -0
  240. package/dist/routes/mcp.d.ts.map +1 -0
  241. package/dist/routes/mcp.js +727 -0
  242. package/dist/routes/mcp.js.map +1 -0
  243. package/dist/routes/memory.d.ts +16 -0
  244. package/dist/routes/memory.d.ts.map +1 -0
  245. package/dist/routes/memory.js +353 -0
  246. package/dist/routes/memory.js.map +1 -0
  247. package/dist/routes/observations.d.ts +19 -0
  248. package/dist/routes/observations.d.ts.map +1 -0
  249. package/dist/routes/observations.js +135 -0
  250. package/dist/routes/observations.js.map +1 -0
  251. package/dist/routes/orgs.d.ts +24 -0
  252. package/dist/routes/orgs.d.ts.map +1 -0
  253. package/dist/routes/orgs.js +208 -0
  254. package/dist/routes/orgs.js.map +1 -0
  255. package/dist/routes/pagination.d.ts +18 -0
  256. package/dist/routes/pagination.d.ts.map +1 -0
  257. package/dist/routes/pagination.js +35 -0
  258. package/dist/routes/pagination.js.map +1 -0
  259. package/dist/routes/policies.d.ts +23 -0
  260. package/dist/routes/policies.d.ts.map +1 -0
  261. package/dist/routes/policies.js +314 -0
  262. package/dist/routes/policies.js.map +1 -0
  263. package/dist/routes/projects.d.ts +45 -0
  264. package/dist/routes/projects.d.ts.map +1 -0
  265. package/dist/routes/projects.js +485 -0
  266. package/dist/routes/projects.js.map +1 -0
  267. package/dist/routes/proposals.d.ts +24 -0
  268. package/dist/routes/proposals.d.ts.map +1 -0
  269. package/dist/routes/proposals.js +581 -0
  270. package/dist/routes/proposals.js.map +1 -0
  271. package/dist/routes/provenance.d.ts +34 -0
  272. package/dist/routes/provenance.d.ts.map +1 -0
  273. package/dist/routes/provenance.js +274 -0
  274. package/dist/routes/provenance.js.map +1 -0
  275. package/dist/routes/providers.d.ts +32 -0
  276. package/dist/routes/providers.d.ts.map +1 -0
  277. package/dist/routes/providers.js +490 -0
  278. package/dist/routes/providers.js.map +1 -0
  279. package/dist/routes/public-run-tokens.d.ts +17 -0
  280. package/dist/routes/public-run-tokens.d.ts.map +1 -0
  281. package/dist/routes/public-run-tokens.js +69 -0
  282. package/dist/routes/public-run-tokens.js.map +1 -0
  283. package/dist/routes/retention.d.ts +19 -0
  284. package/dist/routes/retention.d.ts.map +1 -0
  285. package/dist/routes/retention.js +152 -0
  286. package/dist/routes/retention.js.map +1 -0
  287. package/dist/routes/reviewers.d.ts +5 -0
  288. package/dist/routes/reviewers.d.ts.map +1 -0
  289. package/dist/routes/reviewers.js +161 -0
  290. package/dist/routes/reviewers.js.map +1 -0
  291. package/dist/routes/runs.d.ts +34 -0
  292. package/dist/routes/runs.d.ts.map +1 -0
  293. package/dist/routes/runs.js +705 -0
  294. package/dist/routes/runs.js.map +1 -0
  295. package/dist/routes/s3.d.ts +31 -0
  296. package/dist/routes/s3.d.ts.map +1 -0
  297. package/dist/routes/s3.js +433 -0
  298. package/dist/routes/s3.js.map +1 -0
  299. package/dist/routes/schedules.d.ts +20 -0
  300. package/dist/routes/schedules.d.ts.map +1 -0
  301. package/dist/routes/schedules.js +234 -0
  302. package/dist/routes/schedules.js.map +1 -0
  303. package/dist/routes/scope-params.d.ts +57 -0
  304. package/dist/routes/scope-params.d.ts.map +1 -0
  305. package/dist/routes/scope-params.js +105 -0
  306. package/dist/routes/scope-params.js.map +1 -0
  307. package/dist/routes/secret-ref.d.ts +20 -0
  308. package/dist/routes/secret-ref.d.ts.map +1 -0
  309. package/dist/routes/secret-ref.js +42 -0
  310. package/dist/routes/secret-ref.js.map +1 -0
  311. package/dist/routes/secrets.d.ts +53 -0
  312. package/dist/routes/secrets.d.ts.map +1 -0
  313. package/dist/routes/secrets.js +715 -0
  314. package/dist/routes/secrets.js.map +1 -0
  315. package/dist/routes/signing-keys.d.ts +23 -0
  316. package/dist/routes/signing-keys.d.ts.map +1 -0
  317. package/dist/routes/signing-keys.js +212 -0
  318. package/dist/routes/signing-keys.js.map +1 -0
  319. package/dist/routes/sse.d.ts +58 -0
  320. package/dist/routes/sse.d.ts.map +1 -0
  321. package/dist/routes/sse.js +92 -0
  322. package/dist/routes/sse.js.map +1 -0
  323. package/dist/routes/teams.d.ts +30 -0
  324. package/dist/routes/teams.d.ts.map +1 -0
  325. package/dist/routes/teams.js +443 -0
  326. package/dist/routes/teams.js.map +1 -0
  327. package/dist/routes/tenant.d.ts +57 -0
  328. package/dist/routes/tenant.d.ts.map +1 -0
  329. package/dist/routes/tenant.js +352 -0
  330. package/dist/routes/tenant.js.map +1 -0
  331. package/dist/routes/tokens.d.ts +14 -0
  332. package/dist/routes/tokens.d.ts.map +1 -0
  333. package/dist/routes/tokens.js +231 -0
  334. package/dist/routes/tokens.js.map +1 -0
  335. package/dist/routes/tools.d.ts +33 -0
  336. package/dist/routes/tools.d.ts.map +1 -0
  337. package/dist/routes/tools.js +380 -0
  338. package/dist/routes/tools.js.map +1 -0
  339. package/dist/routes/webhook-endpoints.d.ts +10 -0
  340. package/dist/routes/webhook-endpoints.d.ts.map +1 -0
  341. package/dist/routes/webhook-endpoints.js +407 -0
  342. package/dist/routes/webhook-endpoints.js.map +1 -0
  343. package/dist/routes/webhooks.d.ts +21 -0
  344. package/dist/routes/webhooks.d.ts.map +1 -0
  345. package/dist/routes/webhooks.js +228 -0
  346. package/dist/routes/webhooks.js.map +1 -0
  347. package/dist/s3-credential-binding.d.ts +54 -0
  348. package/dist/s3-credential-binding.d.ts.map +1 -0
  349. package/dist/s3-credential-binding.js +4 -0
  350. package/dist/s3-credential-binding.js.map +1 -0
  351. package/dist/secrets-binding.d.ts +281 -0
  352. package/dist/secrets-binding.d.ts.map +1 -0
  353. package/dist/secrets-binding.js +10 -0
  354. package/dist/secrets-binding.js.map +1 -0
  355. package/dist/secrets-provider-binding.d.ts +164 -0
  356. package/dist/secrets-provider-binding.d.ts.map +1 -0
  357. package/dist/secrets-provider-binding.js +4 -0
  358. package/dist/secrets-provider-binding.js.map +1 -0
  359. package/dist/session-store-binding.d.ts +148 -0
  360. package/dist/session-store-binding.d.ts.map +1 -0
  361. package/dist/session-store-binding.js +4 -0
  362. package/dist/session-store-binding.js.map +1 -0
  363. package/dist/signing-key-binding.d.ts +210 -0
  364. package/dist/signing-key-binding.d.ts.map +1 -0
  365. package/dist/signing-key-binding.js +4 -0
  366. package/dist/signing-key-binding.js.map +1 -0
  367. package/dist/state-store-binding.d.ts +53 -0
  368. package/dist/state-store-binding.d.ts.map +1 -0
  369. package/dist/state-store-binding.js +38 -0
  370. package/dist/state-store-binding.js.map +1 -0
  371. package/dist/supervisor-binding.d.ts +526 -0
  372. package/dist/supervisor-binding.d.ts.map +1 -0
  373. package/dist/supervisor-binding.js +4 -0
  374. package/dist/supervisor-binding.js.map +1 -0
  375. package/dist/tenant-host-access.d.ts +41 -0
  376. package/dist/tenant-host-access.d.ts.map +1 -0
  377. package/dist/tenant-host-access.js +42 -0
  378. package/dist/tenant-host-access.js.map +1 -0
  379. package/dist/token-admin.d.ts +99 -0
  380. package/dist/token-admin.d.ts.map +1 -0
  381. package/dist/token-admin.js +4 -0
  382. package/dist/token-admin.js.map +1 -0
  383. package/dist/tool-binding.d.ts +247 -0
  384. package/dist/tool-binding.d.ts.map +1 -0
  385. package/dist/tool-binding.js +4 -0
  386. package/dist/tool-binding.js.map +1 -0
  387. package/dist/trigger-binding.d.ts +13 -0
  388. package/dist/trigger-binding.d.ts.map +1 -0
  389. package/dist/trigger-binding.js +4 -0
  390. package/dist/trigger-binding.js.map +1 -0
  391. package/dist/types.d.ts +71 -0
  392. package/dist/types.d.ts.map +1 -0
  393. package/dist/types.js +4 -0
  394. package/dist/types.js.map +1 -0
  395. package/dist/webhook-endpoint-binding.d.ts +230 -0
  396. package/dist/webhook-endpoint-binding.d.ts.map +1 -0
  397. package/dist/webhook-endpoint-binding.js +12 -0
  398. package/dist/webhook-endpoint-binding.js.map +1 -0
  399. package/dist/xml.d.ts +79 -0
  400. package/dist/xml.d.ts.map +1 -0
  401. package/dist/xml.js +115 -0
  402. package/dist/xml.js.map +1 -0
  403. package/openapi.json +29649 -0
  404. package/package.json +76 -4
  405. package/scripts/emit-openapi.mjs +44 -0
  406. package/src/adapter-binding.ts +204 -0
  407. package/src/agent-binding.ts +231 -0
  408. package/src/app.ts +1286 -0
  409. package/src/capability-binding.ts +83 -0
  410. package/src/cost-binding.ts +213 -0
  411. package/src/deployment-binding.ts +225 -0
  412. package/src/env-binding.ts +140 -0
  413. package/src/errors.ts +295 -0
  414. package/src/eval-run-binding.ts +209 -0
  415. package/src/eval-run-dispatcher.ts +497 -0
  416. package/src/eval-suite-binding.ts +257 -0
  417. package/src/event-bus-binding.ts +127 -0
  418. package/src/flow-binding.ts +213 -0
  419. package/src/guardrail-binding.ts +151 -0
  420. package/src/handler-binding.ts +132 -0
  421. package/src/hitl-binding.ts +172 -0
  422. package/src/identity-directory-binding.ts +128 -0
  423. package/src/identity-provider-binding.ts +203 -0
  424. package/src/image-registry-binding.ts +193 -0
  425. package/src/index.ts +606 -0
  426. package/src/key-management-binding.ts +91 -0
  427. package/src/mcp-endpoint-binding.ts +311 -0
  428. package/src/memory-binding.ts +239 -0
  429. package/src/middleware/auth.ts +437 -0
  430. package/src/middleware/authorize.ts +125 -0
  431. package/src/middleware/error-mapper.ts +40 -0
  432. package/src/middleware/idempotency.ts +160 -0
  433. package/src/middleware/principal.ts +64 -0
  434. package/src/middleware/public-run-routes.ts +50 -0
  435. package/src/middleware/request-id.ts +28 -0
  436. package/src/middleware/sigv4-verify.ts +374 -0
  437. package/src/middleware/sigv4.ts +165 -0
  438. package/src/openapi/generate.ts +307 -0
  439. package/src/openapi/operations.ts +5444 -0
  440. package/src/openapi/schemas.ts +6363 -0
  441. package/src/provenance-binding.ts +169 -0
  442. package/src/provider-binding.ts +196 -0
  443. package/src/public-run-token.ts +263 -0
  444. package/src/retention-binding.ts +78 -0
  445. package/src/reviewer-binding.ts +99 -0
  446. package/src/rotation-status-store.ts +209 -0
  447. package/src/routes/adapters.ts +319 -0
  448. package/src/routes/agents.ts +424 -0
  449. package/src/routes/approvals.ts +759 -0
  450. package/src/routes/artifacts.ts +317 -0
  451. package/src/routes/audit.ts +219 -0
  452. package/src/routes/auth.ts +806 -0
  453. package/src/routes/capabilities.ts +79 -0
  454. package/src/routes/compliance.ts +482 -0
  455. package/src/routes/conversations.ts +369 -0
  456. package/src/routes/cost.ts +327 -0
  457. package/src/routes/deployments.ts +1493 -0
  458. package/src/routes/env.ts +429 -0
  459. package/src/routes/eval-runs.ts +631 -0
  460. package/src/routes/eval-suites.ts +490 -0
  461. package/src/routes/event-triggers.ts +283 -0
  462. package/src/routes/flows.ts +423 -0
  463. package/src/routes/guardrails.ts +320 -0
  464. package/src/routes/identity.ts +203 -0
  465. package/src/routes/mcp.ts +940 -0
  466. package/src/routes/memory.ts +430 -0
  467. package/src/routes/observations.ts +175 -0
  468. package/src/routes/orgs.ts +273 -0
  469. package/src/routes/pagination.ts +51 -0
  470. package/src/routes/policies.ts +413 -0
  471. package/src/routes/projects.ts +634 -0
  472. package/src/routes/proposals.ts +719 -0
  473. package/src/routes/provenance.ts +406 -0
  474. package/src/routes/providers.ts +624 -0
  475. package/src/routes/public-run-tokens.ts +104 -0
  476. package/src/routes/retention.ts +193 -0
  477. package/src/routes/reviewers.ts +209 -0
  478. package/src/routes/runs.ts +892 -0
  479. package/src/routes/s3.ts +519 -0
  480. package/src/routes/schedules.ts +300 -0
  481. package/src/routes/scope-params.ts +133 -0
  482. package/src/routes/secret-ref.ts +52 -0
  483. package/src/routes/secrets.ts +975 -0
  484. package/src/routes/signing-keys.ts +259 -0
  485. package/src/routes/sse.ts +148 -0
  486. package/src/routes/teams.ts +584 -0
  487. package/src/routes/tenant.ts +530 -0
  488. package/src/routes/tokens.ts +285 -0
  489. package/src/routes/tools.ts +491 -0
  490. package/src/routes/webhook-endpoints.ts +534 -0
  491. package/src/routes/webhooks.ts +296 -0
  492. package/src/s3-credential-binding.ts +58 -0
  493. package/src/secrets-binding.ts +308 -0
  494. package/src/secrets-provider-binding.ts +167 -0
  495. package/src/session-store-binding.ts +163 -0
  496. package/src/signing-key-binding.ts +235 -0
  497. package/src/state-store-binding.ts +84 -0
  498. package/src/supervisor-binding.ts +554 -0
  499. package/src/tenant-host-access.ts +62 -0
  500. package/src/token-admin.ts +104 -0
  501. package/src/tool-binding.ts +274 -0
  502. package/src/trigger-binding.ts +38 -0
  503. package/src/types.ts +74 -0
  504. package/src/webhook-endpoint-binding.ts +246 -0
  505. package/src/xml.ts +196 -0
@@ -0,0 +1,368 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { randomUUID } from 'node:crypto';
4
+ import { EVAL_RUN_STATUSES } from './eval-run-binding.js';
5
+ /**
6
+ * Reference dispatcher for `EvalKind === 'accuracy'`. Reads
7
+ * `spec.cases` from the registered suite; for each case, invokes the
8
+ * subject with `case.input`, grades `(caseInput, actualOutput,
9
+ * case.expected ?? case.expectedOutput)` through the injected
10
+ * `EvalGrader`, and aggregates `{ passCount, totalCount, meanScore,
11
+ * perCase[] }`.
12
+ *
13
+ * A dry-run echoes the plan (case count + first-case preview) without
14
+ * invoking the subject — proves the same envelope is available on
15
+ * `dryRun: true` requests. Callers use it as a sanity check before
16
+ * paying for the real run.
17
+ */
18
+ export function createAccuracyDispatcher(options) {
19
+ return {
20
+ kind: 'accuracy',
21
+ validate(suite) {
22
+ const cases = extractCases(suite.spec);
23
+ if (cases === null) {
24
+ return { kind: 'err', message: 'accuracy suite.spec.cases must be an array' };
25
+ }
26
+ if (cases.length === 0) {
27
+ return { kind: 'err', message: 'accuracy suite.spec.cases must not be empty' };
28
+ }
29
+ return { kind: 'ok' };
30
+ },
31
+ async dispatch(ctx) {
32
+ const cases = extractCases(ctx.suite.spec) ?? [];
33
+ if (ctx.dryRun) {
34
+ return {
35
+ result: {
36
+ passCount: 0,
37
+ totalCount: cases.length,
38
+ meanScore: 0,
39
+ perCase: [],
40
+ dryRun: true,
41
+ preview: cases.slice(0, 1).map((c, i) => ({
42
+ caseIndex: i,
43
+ input: c.input,
44
+ expected: extractExpected(c),
45
+ })),
46
+ },
47
+ };
48
+ }
49
+ const perCase = [];
50
+ let passCount = 0;
51
+ let scoreSum = 0;
52
+ for (let i = 0; i < cases.length; i++) {
53
+ if (ctx.abortSignal.aborted) {
54
+ return {
55
+ result: {
56
+ passCount,
57
+ totalCount: cases.length,
58
+ meanScore: perCase.length > 0 ? scoreSum / perCase.length : 0,
59
+ perCase,
60
+ cancelled: true,
61
+ },
62
+ error: 'cancelled',
63
+ };
64
+ }
65
+ const c = cases[i];
66
+ if (c === undefined)
67
+ continue;
68
+ const expected = extractExpected(c);
69
+ const invocation = await ctx.subject.invoke({
70
+ tenantId: ctx.tenantId,
71
+ target: ctx.target,
72
+ input: c.input,
73
+ dryRun: ctx.dryRun,
74
+ abortSignal: ctx.abortSignal,
75
+ });
76
+ if (invocation.error !== undefined) {
77
+ const entry = {
78
+ caseIndex: i,
79
+ ...(c.id !== undefined && { caseId: c.id }),
80
+ pass: false,
81
+ score: 0,
82
+ error: invocation.error,
83
+ };
84
+ perCase.push(entry);
85
+ ctx.onProgress(entry);
86
+ continue;
87
+ }
88
+ const grade = await options.grader.grade({
89
+ caseInput: c.input,
90
+ actualOutput: invocation.output,
91
+ expected,
92
+ });
93
+ if (grade.pass)
94
+ passCount += 1;
95
+ scoreSum += grade.score;
96
+ const entry = {
97
+ caseIndex: i,
98
+ ...(c.id !== undefined && { caseId: c.id }),
99
+ pass: grade.pass,
100
+ score: grade.score,
101
+ ...(grade.reason !== undefined && { reason: grade.reason }),
102
+ ...(grade.metadata !== undefined && { judgeMetadata: grade.metadata }),
103
+ };
104
+ perCase.push(entry);
105
+ ctx.onProgress(entry);
106
+ }
107
+ return {
108
+ result: {
109
+ passCount,
110
+ totalCount: cases.length,
111
+ meanScore: cases.length > 0 ? scoreSum / cases.length : 0,
112
+ perCase,
113
+ },
114
+ };
115
+ },
116
+ };
117
+ }
118
+ function extractCases(spec) {
119
+ const cases = spec.cases;
120
+ if (!Array.isArray(cases))
121
+ return null;
122
+ const out = [];
123
+ for (const c of cases) {
124
+ if (c === null || typeof c !== 'object')
125
+ return null;
126
+ const rec = c;
127
+ if (!('input' in rec))
128
+ return null;
129
+ out.push(rec);
130
+ }
131
+ return out;
132
+ }
133
+ function extractExpected(c) {
134
+ if (c.expected !== undefined)
135
+ return c.expected;
136
+ return c.expectedOutput;
137
+ }
138
+ /**
139
+ * Reference in-process `EvalRunBinding`. Persists eval-run rows in a
140
+ * `Map<runId, EvalRun>`; suitable for tests and dev deployments.
141
+ * Production deployments swap in a durable binding that starts real
142
+ * runs (`runGraph`) — the surface is identical, only the persistence +
143
+ * execution substrate changes.
144
+ *
145
+ * A run starts as `running`, resolves per its dispatcher's outcome,
146
+ * and can be cancelled via `AbortController.abort()` on the wrapped
147
+ * controller. Cancellation is best-effort — a dispatcher that has
148
+ * already returned cannot be undone; the row transitions to
149
+ * `cancelled` and any partial `perCase` results are preserved.
150
+ */
151
+ export function createInProcessEvalRunBinding(options) {
152
+ const now = options.now ?? (() => new Date());
153
+ const runs = new Map();
154
+ const controllers = new Map();
155
+ const setRun = (r) => {
156
+ runs.set(r.runId, r);
157
+ };
158
+ return {
159
+ async start(input) {
160
+ const suite = await options.suiteRegistry.get({
161
+ tenantId: input.tenantId,
162
+ suiteId: input.suiteId,
163
+ });
164
+ if (suite === null) {
165
+ return { kind: 'suite-not-found', suiteId: input.suiteId };
166
+ }
167
+ const dispatcher = options.dispatchers[suite.kind];
168
+ if (dispatcher === undefined) {
169
+ return { kind: 'dispatcher-not-registered', evalKind: suite.kind };
170
+ }
171
+ const target = input.agentRef ?? input.flowRef;
172
+ if (target === undefined) {
173
+ return {
174
+ kind: 'dispatcher-input-invalid',
175
+ message: 'agentRef or flowRef required',
176
+ };
177
+ }
178
+ if (dispatcher.validate !== undefined) {
179
+ const v = dispatcher.validate(suite, target);
180
+ if (v.kind === 'err') {
181
+ return { kind: 'dispatcher-input-invalid', message: v.message };
182
+ }
183
+ }
184
+ const runId = randomUUID();
185
+ const startedAt = now().toISOString();
186
+ const record = {
187
+ runId,
188
+ tenantId: input.tenantId,
189
+ suiteId: suite.id,
190
+ suiteVersion: suite.version,
191
+ kind: suite.kind,
192
+ ...(input.agentRef !== undefined && { agentRef: input.agentRef }),
193
+ ...(input.flowRef !== undefined && { flowRef: input.flowRef }),
194
+ status: 'running',
195
+ dryRun: input.dryRun === true,
196
+ startedAt,
197
+ ...(input.correlationId !== undefined && { correlationId: input.correlationId }),
198
+ };
199
+ setRun(record);
200
+ const controller = new AbortController();
201
+ controllers.set(runId, controller);
202
+ // Fire-and-forget the dispatch — completion updates the row.
203
+ // Errors thrown by the dispatcher itself land the run in
204
+ // `failed` (bug in the dispatcher, not a case-level failure).
205
+ void (async () => {
206
+ let outcome;
207
+ try {
208
+ outcome = await dispatcher.dispatch({
209
+ tenantId: input.tenantId,
210
+ runId,
211
+ suite,
212
+ target,
213
+ dryRun: input.dryRun === true,
214
+ abortSignal: controller.signal,
215
+ subject: options.subject,
216
+ onProgress: (perCaseEntry) => {
217
+ const current = runs.get(runId);
218
+ if (current === undefined)
219
+ return;
220
+ const currentResult = (current.result ?? {});
221
+ const perCase = Array.isArray(currentResult.perCase)
222
+ ? [...currentResult.perCase, perCaseEntry]
223
+ : [perCaseEntry];
224
+ setRun({
225
+ ...current,
226
+ result: { ...currentResult, perCase },
227
+ });
228
+ },
229
+ });
230
+ }
231
+ catch (cause) {
232
+ const message = cause instanceof Error ? cause.message : String(cause);
233
+ const current = runs.get(runId);
234
+ if (current === undefined)
235
+ return;
236
+ setRun({
237
+ ...current,
238
+ status: 'failed',
239
+ completedAt: now().toISOString(),
240
+ error: `Dispatcher threw: ${message}`,
241
+ });
242
+ return;
243
+ }
244
+ const current = runs.get(runId);
245
+ if (current === undefined)
246
+ return;
247
+ if (current.status === 'cancelled') {
248
+ // Cancel path already set the terminal row; preserve any
249
+ // partial result the dispatcher produced.
250
+ setRun({
251
+ ...current,
252
+ result: outcome.result,
253
+ ...(current.completedAt === undefined && {
254
+ completedAt: now().toISOString(),
255
+ }),
256
+ });
257
+ return;
258
+ }
259
+ const status = outcome.error === undefined
260
+ ? 'completed'
261
+ : outcome.error === 'cancelled'
262
+ ? 'cancelled'
263
+ : 'failed';
264
+ setRun({
265
+ ...current,
266
+ status,
267
+ completedAt: now().toISOString(),
268
+ result: outcome.result,
269
+ ...(outcome.error !== undefined &&
270
+ outcome.error !== 'cancelled' && {
271
+ error: outcome.error,
272
+ }),
273
+ });
274
+ })();
275
+ return { kind: 'ok', runId };
276
+ },
277
+ async get(input) {
278
+ const record = runs.get(input.runId);
279
+ if (record === undefined)
280
+ return null;
281
+ if (record.tenantId !== input.tenantId) {
282
+ return null;
283
+ }
284
+ return record;
285
+ },
286
+ async list(input) {
287
+ const filter = input.filter ?? {};
288
+ const all = [];
289
+ for (const r of runs.values()) {
290
+ if (r.tenantId !== input.tenantId)
291
+ continue;
292
+ if (filter.suiteId !== undefined && r.suiteId !== filter.suiteId)
293
+ continue;
294
+ if (filter.status !== undefined && r.status !== filter.status)
295
+ continue;
296
+ if (filter.agentId !== undefined) {
297
+ if (r.agentRef === undefined)
298
+ continue;
299
+ if (r.agentRef.agentId !== filter.agentId) {
300
+ continue;
301
+ }
302
+ }
303
+ if (filter.flowId !== undefined) {
304
+ if (r.flowRef === undefined)
305
+ continue;
306
+ if (r.flowRef.flowId !== filter.flowId) {
307
+ continue;
308
+ }
309
+ }
310
+ if (filter.from !== undefined) {
311
+ if (r.startedAt < filter.from)
312
+ continue;
313
+ }
314
+ if (filter.to !== undefined) {
315
+ if (r.startedAt > filter.to)
316
+ continue;
317
+ }
318
+ all.push(r);
319
+ }
320
+ all.sort((a, b) => {
321
+ const at = a.startedAt;
322
+ const bt = b.startedAt;
323
+ if (at !== bt)
324
+ return at < bt ? 1 : -1;
325
+ return a.runId < b.runId ? 1 : -1;
326
+ });
327
+ const cursor = input.cursor;
328
+ const startAt = cursor === undefined
329
+ ? 0
330
+ : Math.max(0, all.findIndex((r) => r.runId === cursor) + 1);
331
+ const slice = all.slice(startAt, startAt + input.limit);
332
+ const hasMore = startAt + slice.length < all.length;
333
+ const last = slice[slice.length - 1];
334
+ return {
335
+ data: slice,
336
+ ...(hasMore &&
337
+ last !== undefined && {
338
+ nextCursor: last.runId,
339
+ }),
340
+ };
341
+ },
342
+ async cancel(input) {
343
+ const record = runs.get(input.runId);
344
+ if (record === undefined)
345
+ return { kind: 'not-found' };
346
+ if (record.tenantId !== input.tenantId) {
347
+ return { kind: 'not-found' };
348
+ }
349
+ if (isTerminal(record.status)) {
350
+ return { kind: 'already-terminal', status: record.status };
351
+ }
352
+ const controller = controllers.get(input.runId);
353
+ controller?.abort();
354
+ setRun({
355
+ ...record,
356
+ status: 'cancelled',
357
+ completedAt: now().toISOString(),
358
+ });
359
+ return { kind: 'ok' };
360
+ },
361
+ };
362
+ }
363
+ function isTerminal(status) {
364
+ return status === 'completed' || status === 'failed' || status === 'cancelled';
365
+ }
366
+ // re-export for callers that only import the dispatcher module.
367
+ export { EVAL_RUN_STATUSES };
368
+ //# sourceMappingURL=eval-run-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-run-dispatcher.js","sourceRoot":"","sources":["../src/eval-run-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,227 @@
1
+ import type { TupleEnqueueHook } from '@kindgi/authz';
2
+ import type { Scope } from '@kindgi/platform';
3
+ import type { Cursor, ProjectId, TenantId } from '@kindgi/types';
4
+ /**
5
+ * Caller-plugged surface for the evaluation-harness suite catalog —
6
+ * part of the admin control plane. Registry-only: publish + read; run
7
+ * execution + per-kind grader dispatch are out of scope (see
8
+ * `EvalRunBinding`). Graders — an eval-judge adapter, the HITL bridge,
9
+ * a sandboxed handler — consume suite definitions from this store at
10
+ * their own boundary.
11
+ *
12
+ * Mirrors `PolicyRegistryBinding` 1:1 — same versioned-CRUD shape,
13
+ * same tenant-scoped inputs, same opaque cursors, same "unregister a
14
+ * specific version" semantics.
15
+ *
16
+ * The wire shape is intentionally kind-neutral: `evalKind` selects the
17
+ * shape of `spec`. The route validates the closed set of `kind` values
18
+ * and the required top-level fields; deeper `spec` shape is the runtime
19
+ * consumer's responsibility (each kind's grader knows its own contract).
20
+ *
21
+ * Cursors are opaque — the binding chooses its encoding (index-based,
22
+ * `id@version`, ISO timestamps). The API layer only validates that a
23
+ * cursor round-trips as a string; it never inspects the payload.
24
+ */
25
+ export interface EvalSuiteRegistryBinding {
26
+ /**
27
+ * Cursor-paginated list of eval suites (latest version per id, sorted
28
+ * by suite id ascending). Optional filters:
29
+ * - `evalKind` narrows to suites of a single kind (exact match).
30
+ * - `nameFilter` is a prefix match on the suite id — dotted
31
+ * namespaces are the natural filter shape (`acme.accuracy`).
32
+ */
33
+ list(input: EvalSuiteListInput): Promise<EvalSuitePage>;
34
+ /**
35
+ * Latest version of the given suite id, or `null` if unknown. The
36
+ * route surfaces `null` as `404 eval-suite-not-found`.
37
+ */
38
+ get(input: EvalSuiteGetInput): Promise<EvalSuite | null>;
39
+ /**
40
+ * Specific `(suiteId, version)` lookup, or `null` if unknown.
41
+ * Returns tombstoned versions too (provenance paths).
42
+ */
43
+ getVersion(input: EvalSuiteGetVersionInput): Promise<EvalSuite | null>;
44
+ /**
45
+ * Head-row existence probe. Lets GET distinguish 410 gone from
46
+ * 404 not-found.
47
+ */
48
+ headExists(input: EvalSuiteGetInput): Promise<boolean>;
49
+ /**
50
+ * Cursor-paginated list of versions for a specific suite id. Sort
51
+ * order is binding-defined (for example ascending semver). Returns an empty page (no error) when the id
52
+ * is unknown — the route flips that to `404` via a prior `get`.
53
+ */
54
+ listVersions(input: EvalSuiteListVersionsInput): Promise<EvalSuitePage>;
55
+ /**
56
+ * Publish a validated eval-suite definition. The API route validates
57
+ * the wire shape (id / tenantId / semver version / kind / spec object)
58
+ * before calling — the binding receives a well-formed `EvalSuite`.
59
+ * Bindings MAY reject with `already-registered` when the same
60
+ * `(suiteId, version)` is re-published; the route maps that to `409`.
61
+ */
62
+ publish(input: EvalSuitePublishInput): Promise<EvalSuitePublishOutcome>;
63
+ /**
64
+ * Soft-tombstone a specific `(suiteId, version)`. When this leaves
65
+ * NO active versions, the suite has no latest version — derived
66
+ * "retired" state (GET returns 410 gone). Publish reactivates.
67
+ */
68
+ unregister(input: EvalSuiteUnregisterInput): Promise<EvalSuiteUnregisterOutcome>;
69
+ /**
70
+ * Un-tombstone a specific `(suiteId, version)`. Recomputes the
71
+ * suite's latest version. Restores bytes verbatim (semver hygiene).
72
+ * Idempotent.
73
+ */
74
+ reinstateVersion(input: EvalSuiteReinstateVersionInput): Promise<EvalSuiteReinstateVersionOutcome>;
75
+ }
76
+ /**
77
+ * Closed set of eval kinds the framework knows about. Extended
78
+ * additively — new kinds require a spec + validator update in tandem so
79
+ * the registry never accepts a kind no runtime consumer honors.
80
+ *
81
+ * - `accuracy` — metric-based grading against ground truth (input →
82
+ * expectedOutput pairs; grader is an eval-judge adapter).
83
+ * - `pairwise` — A/B comparisons between two agent/flow versions.
84
+ * - `regression` — compare against a stored baseline run.
85
+ * - `human-review` — delegates rubric grading to HITL reviewers.
86
+ * - `benchmark` — reference to a standardized suite (name + version).
87
+ * - `custom` — caller-supplied evaluator handler.
88
+ */
89
+ export declare const EVAL_KINDS: readonly ["accuracy", "pairwise", "regression", "human-review", "benchmark", "custom"];
90
+ export type EvalKind = (typeof EVAL_KINDS)[number];
91
+ /**
92
+ * Wire shape for a single evaluation suite. `spec` is a JSON object
93
+ * whose shape is dictated by `kind` — the registry treats it as opaque
94
+ * JSON so new kinds can extend the catalog without touching this file.
95
+ * Runtime consumers (the eval-judge adapter for `accuracy` / `pairwise`
96
+ * / `regression`, the HITL bridge for `human-review`, the sandbox
97
+ * handler for `custom`) deserialize `spec` against their own contract.
98
+ *
99
+ * Case data lives IN `spec` (not stored separately) — small enough at
100
+ * registry scale.
101
+ */
102
+ export interface EvalSuite {
103
+ readonly id: string;
104
+ readonly tenantId: TenantId;
105
+ readonly version: string;
106
+ readonly kind: EvalKind;
107
+ readonly description?: string;
108
+ readonly spec: Readonly<Record<string, unknown>>;
109
+ }
110
+ export interface EvalSuiteListInput {
111
+ readonly tenantId: TenantId;
112
+ readonly limit: number;
113
+ readonly cursor?: Cursor;
114
+ /** Exact match on `EvalSuite.kind`. Undefined = no filter. */
115
+ readonly evalKind?: EvalKind;
116
+ /** Prefix match on `EvalSuite.id`. Undefined = no filter. */
117
+ readonly nameFilter?: string;
118
+ /**
119
+ * Narrow the list to a specific scope. Absent = no scope narrow
120
+ * (return every row in the tenant the caller can see — admin/audit
121
+ * default).
122
+ *
123
+ * Content-scoped semantics (this binding):
124
+ * - `{ kind: 'project', projectId }` — rows in that project.
125
+ * - `{ kind: 'org', orgId }` — rows in every project belonging to
126
+ * that org.
127
+ * - `{ kind: 'tenant', tenantId }` — every row in the tenant.
128
+ *
129
+ * Content rows always belong to a project, so `inherit` has no
130
+ * effect here.
131
+ */
132
+ readonly scope?: Scope;
133
+ /**
134
+ * `false` = literal-at-this-scope only (admin/audit view).
135
+ * `true` (default) = inheritance walk (user-facing view).
136
+ * No-op for content-scoped bindings (rows only exist at
137
+ * project-level — there is no upward hierarchy to walk). Kept for
138
+ * uniformity: scope-aware bindings share one filter shape across the
139
+ * SDK and OpenAPI schemas.
140
+ */
141
+ readonly inherit?: boolean;
142
+ }
143
+ export interface EvalSuiteGetInput {
144
+ readonly tenantId: TenantId;
145
+ readonly suiteId: string;
146
+ }
147
+ export interface EvalSuiteGetVersionInput {
148
+ readonly tenantId: TenantId;
149
+ readonly suiteId: string;
150
+ readonly version: string;
151
+ }
152
+ export interface EvalSuiteListVersionsInput {
153
+ readonly tenantId: TenantId;
154
+ readonly suiteId: string;
155
+ readonly limit: number;
156
+ readonly cursor?: Cursor;
157
+ }
158
+ export interface EvalSuitePublishInput {
159
+ readonly tenantId: TenantId;
160
+ /**
161
+ * Project the eval suite is published into. REQUIRED. Callers that
162
+ * don't naturally know a projectId
163
+ * resolve the tenant's Default via
164
+ * `projectBinding.getDefault(tenantId)` at THEIR layer and thread
165
+ * the resolved id here — the storage adapter never silently falls
166
+ * back to Default.
167
+ */
168
+ readonly projectId: ProjectId;
169
+ readonly suite: EvalSuite;
170
+ /**
171
+ * REQUIRED. Called inside the binding's write tx after row insert,
172
+ * receiving the business `suiteId`. Returns tuples for the same tx.
173
+ * See `AgentPublishInput.enqueueTuples` for the design rationale.
174
+ */
175
+ readonly enqueueTuples: TupleEnqueueHook;
176
+ }
177
+ export interface EvalSuiteUnregisterInput {
178
+ readonly tenantId: TenantId;
179
+ readonly suiteId: string;
180
+ readonly version: string;
181
+ }
182
+ export interface EvalSuiteReinstateVersionInput {
183
+ readonly tenantId: TenantId;
184
+ readonly suiteId: string;
185
+ readonly version: string;
186
+ }
187
+ export interface EvalSuitePage {
188
+ readonly data: readonly EvalSuite[];
189
+ readonly nextCursor?: Cursor;
190
+ }
191
+ export type EvalSuitePublishOutcome = {
192
+ readonly kind: 'ok';
193
+ readonly suiteId: string;
194
+ readonly version: string;
195
+ } | {
196
+ readonly kind: 'already-registered';
197
+ readonly suiteId: string;
198
+ readonly version: string;
199
+ } | {
200
+ /**
201
+ * The caller-supplied `projectId` does not resolve to a real
202
+ * project row in this tenant. Distinct from
203
+ * `already-registered` so the route + deployment loop can
204
+ * surface a clean `400 bad-input` (per the route's error
205
+ * contract) rather than the misleading `already-registered`
206
+ * fallback. Implementations detect a missing project at publish
207
+ * time (a SQL store typically from its foreign-key violation).
208
+ */
209
+ readonly kind: 'project-not-found';
210
+ readonly suiteId: string;
211
+ readonly version: string;
212
+ readonly projectId: ProjectId;
213
+ };
214
+ export type EvalSuiteUnregisterOutcome = {
215
+ readonly unregistered: boolean;
216
+ };
217
+ export type EvalSuiteReinstateVersionOutcome = {
218
+ readonly kind: 'ok';
219
+ readonly suiteId: string;
220
+ readonly version: string;
221
+ readonly wasTombstoned: boolean;
222
+ } | {
223
+ readonly kind: 'not-found';
224
+ readonly suiteId: string;
225
+ readonly version: string;
226
+ };
227
+ //# sourceMappingURL=eval-suite-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-suite-binding.d.ts","sourceRoot":"","sources":["../src/eval-suite-binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ /**
4
+ * Closed set of eval kinds the framework knows about. Extended
5
+ * additively — new kinds require a spec + validator update in tandem so
6
+ * the registry never accepts a kind no runtime consumer honors.
7
+ *
8
+ * - `accuracy` — metric-based grading against ground truth (input →
9
+ * expectedOutput pairs; grader is an eval-judge adapter).
10
+ * - `pairwise` — A/B comparisons between two agent/flow versions.
11
+ * - `regression` — compare against a stored baseline run.
12
+ * - `human-review` — delegates rubric grading to HITL reviewers.
13
+ * - `benchmark` — reference to a standardized suite (name + version).
14
+ * - `custom` — caller-supplied evaluator handler.
15
+ */
16
+ export const EVAL_KINDS = [
17
+ 'accuracy',
18
+ 'pairwise',
19
+ 'regression',
20
+ 'human-review',
21
+ 'benchmark',
22
+ 'custom',
23
+ ];
24
+ //# sourceMappingURL=eval-suite-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval-suite-binding.js","sourceRoot":"","sources":["../src/eval-suite-binding.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAiFjC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,cAAc;IACd,WAAW;IACX,QAAQ;CACA,CAAC"}