@kindgi/api 0.0.0-bootstrap.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +396 -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 +264 -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 +13 -0
  104. package/dist/middleware/error-mapper.d.ts.map +1 -0
  105. package/dist/middleware/error-mapper.js +32 -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 +5051 -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 +773 -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 +29659 -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 +1285 -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 +291 -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 +37 -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 +5445 -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 +981 -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,406 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ import { Hono } from 'hono';
5
+
6
+ import type { ConversationBinding } from '@kindgi/agents';
7
+ import { serializePublicKeyPem, signEd25519 } from '@kindgi/crypto';
8
+ import type { SigningKeyBinding } from '@kindgi/crypto';
9
+ import { canonicalize } from '@kindgi/schema';
10
+ import type { ConversationId, RunId, SigningKeyId, TenantId, Timestamp } from '@kindgi/types';
11
+
12
+ import { statusFor, toWireError } from '../errors.js';
13
+
14
+ import type {
15
+ ProvenanceBinding,
16
+ ProvenanceListCursor,
17
+ ProvenanceRecordSummary,
18
+ } from '../provenance-binding.js';
19
+ import type { AppEnv } from '../types.js';
20
+ import { clampLimit, decodeCursor, encodeCursor } from './pagination.js';
21
+
22
+ /**
23
+ * Provenance resource routes.
24
+ *
25
+ * Reads flow through `ProvenanceBinding`: the API package owns the wire
26
+ * shape + pagination envelope while the binding owns the storage
27
+ * projection (query + serialization to `ProvenanceRecordSummary`). Export signing
28
+ * is caller-plugged via `SigningKeyBinding` from the crypto module:
29
+ * deployments that need signed exports plug in a KMS-backed key store;
30
+ * deployments that omit the binding get `404 signing-not-configured` on
31
+ * the export route.
32
+ *
33
+ * The export bundle is canonicalized as sorted-key JSON (via
34
+ * `canonicalize` — same algorithm the runtime uses for signing
35
+ * individual `Provenance` records) so the signature verifies byte-
36
+ * identically on any client that re-canonicalizes the same shape.
37
+ * Verification is a pure client-side operation via `verifyEd25519` — no
38
+ * server round trip.
39
+ */
40
+ export interface ProvenanceRouterOptions {
41
+ readonly signingKey?: SigningKeyBinding;
42
+ /**
43
+ * Conversation binding used by the signed-export path to read
44
+ * conversation transcripts (`readMessages`) alongside provenance
45
+ * DAGs. Absent = the export omits messages (empty array).
46
+ */
47
+ readonly conversationBinding?: ConversationBinding;
48
+ }
49
+
50
+ /** Bundle schema version — bump when the wire shape of `bundle.body` changes. */
51
+ const BUNDLE_SCHEMA_VERSION = '1.0.0';
52
+
53
+ export function provenanceRouter(
54
+ binding: ProvenanceBinding,
55
+ options: ProvenanceRouterOptions = {},
56
+ ): Hono<AppEnv> {
57
+ const r = new Hono<AppEnv>();
58
+ const signingKey = options.signingKey;
59
+
60
+ // ---------- GET / (list metadata, cursor-paginated) ----------
61
+ r.get('/', async (c) => {
62
+ const requestId = c.get('requestId');
63
+ const tenantId = c.get('tenantId') as TenantId;
64
+ const limit = clampLimit(c.req.query('limit'));
65
+
66
+ const rawCursor = c.req.query('cursor');
67
+ let cursorFilter: ProvenanceListCursor | undefined;
68
+ if (rawCursor !== undefined && rawCursor.length > 0) {
69
+ const decoded = decodeCursor(rawCursor);
70
+ if (decoded === null) {
71
+ c.status(statusFor('bad-input') as never);
72
+ return c.json(
73
+ toWireError({ code: 'bad-input', message: '`cursor` is malformed' }, requestId),
74
+ );
75
+ }
76
+ cursorFilter = { createdAt: decoded.createdAt, id: decoded.id };
77
+ }
78
+
79
+ const runIdFilter = c.req.query('runId');
80
+ const agentIdFilter = c.req.query('agentId');
81
+ const createdAfterRaw = c.req.query('createdAfter');
82
+
83
+ let createdAfter: Date | undefined;
84
+ if (createdAfterRaw !== undefined && createdAfterRaw.length > 0) {
85
+ const parsed = new Date(createdAfterRaw);
86
+ if (Number.isNaN(parsed.getTime())) {
87
+ c.status(statusFor('bad-input') as never);
88
+ return c.json(
89
+ toWireError(
90
+ { code: 'bad-input', message: '`createdAfter` must be an ISO 8601 timestamp' },
91
+ requestId,
92
+ ),
93
+ );
94
+ }
95
+ createdAfter = parsed;
96
+ }
97
+
98
+ const result = await binding.listRecords({
99
+ tenantId,
100
+ limit,
101
+ ...(runIdFilter !== undefined && runIdFilter.length > 0 && { runId: runIdFilter as RunId }),
102
+ ...(agentIdFilter !== undefined && agentIdFilter.length > 0 && { agentId: agentIdFilter }),
103
+ ...(createdAfter !== undefined && { createdAfter }),
104
+ ...(cursorFilter !== undefined && { cursor: cursorFilter }),
105
+ });
106
+
107
+ if (result.kind === 'err') {
108
+ c.status(statusFor(result.error.code) as never);
109
+ return c.json(
110
+ toWireError({ code: result.error.code, message: result.error.message }, requestId),
111
+ );
112
+ }
113
+ const { records, nextCursor } = result.value;
114
+ const hasMore = nextCursor !== undefined;
115
+ return c.json({
116
+ data: records.map(serializeRecordMetadata),
117
+ hasMore,
118
+ ...(nextCursor !== undefined && {
119
+ nextCursor: encodeCursor({ createdAt: nextCursor.createdAt, id: nextCursor.id }),
120
+ }),
121
+ });
122
+ });
123
+
124
+ // ---------- GET /:runId (full DAG) ----------
125
+ r.get('/:runId', async (c) => {
126
+ const requestId = c.get('requestId');
127
+ const tenantId = c.get('tenantId') as TenantId;
128
+ const runId = c.req.param('runId') as RunId;
129
+
130
+ const result = await binding.getByRunId(tenantId, runId);
131
+ if (result.kind === 'err') {
132
+ if (result.error.code === 'provenance-not-found') {
133
+ c.status(statusFor('not-found') as never);
134
+ return c.json(
135
+ toWireError(
136
+ {
137
+ code: 'provenance-not-found',
138
+ message: result.error.message,
139
+ runId: runId as unknown as string,
140
+ },
141
+ requestId,
142
+ ),
143
+ );
144
+ }
145
+ c.status(statusFor(result.error.code) as never);
146
+ return c.json(
147
+ toWireError({ code: result.error.code, message: result.error.message }, requestId),
148
+ );
149
+ }
150
+ const provenance = result.value;
151
+ return c.json({
152
+ id: provenance.id as unknown as string,
153
+ runId: provenance.runId as unknown as string,
154
+ tenantId: provenance.tenantId as unknown as string,
155
+ version: provenance.version,
156
+ createdAt: provenance.createdAt as unknown as string,
157
+ ...(provenance.flowRef !== undefined && {
158
+ flowRef: {
159
+ id: provenance.flowRef.id as unknown as string,
160
+ version: provenance.flowRef.version,
161
+ },
162
+ }),
163
+ dag: {
164
+ nodes: provenance.nodes,
165
+ edges: provenance.edges,
166
+ },
167
+ ...(provenance.signature !== undefined && { signature: provenance.signature }),
168
+ });
169
+ });
170
+
171
+ // ---------- POST /:runId/export (signed bundle) ----------
172
+ r.post('/:runId/export', async (c) => {
173
+ const requestId = c.get('requestId');
174
+ const tenantId = c.get('tenantId') as TenantId;
175
+ const runId = c.req.param('runId') as RunId;
176
+
177
+ if (signingKey === undefined) {
178
+ c.status(statusFor('signing-not-configured') as never);
179
+ return c.json(
180
+ toWireError(
181
+ {
182
+ code: 'signing-not-configured',
183
+ message:
184
+ 'This deployment does not have a `signingKey` binding mounted; signed provenance exports are unavailable.',
185
+ },
186
+ requestId,
187
+ ),
188
+ );
189
+ }
190
+
191
+ let body: unknown;
192
+ try {
193
+ body = await c.req.json();
194
+ } catch {
195
+ c.status(statusFor('bad-input') as never);
196
+ return c.json(
197
+ toWireError({ code: 'bad-input', message: 'Request body must be valid JSON' }, requestId),
198
+ );
199
+ }
200
+ if (body === null || typeof body !== 'object' || Array.isArray(body)) {
201
+ c.status(statusFor('bad-input') as never);
202
+ return c.json(
203
+ toWireError({ code: 'bad-input', message: 'Request body must be an object' }, requestId),
204
+ );
205
+ }
206
+ const parsed = parseExportBody(body as Record<string, unknown>);
207
+ if (parsed.kind === 'err') {
208
+ c.status(statusFor('bad-input') as never);
209
+ return c.json(toWireError({ code: 'bad-input', message: parsed.message }, requestId));
210
+ }
211
+ const { signingKeyId, includeMessages } = parsed.value;
212
+
213
+ // 1. Load the DAG.
214
+ const loaded = await binding.getByRunId(tenantId, runId);
215
+ if (loaded.kind === 'err') {
216
+ if (loaded.error.code === 'provenance-not-found') {
217
+ c.status(statusFor('not-found') as never);
218
+ return c.json(
219
+ toWireError(
220
+ {
221
+ code: 'provenance-not-found',
222
+ message: loaded.error.message,
223
+ runId: runId as unknown as string,
224
+ },
225
+ requestId,
226
+ ),
227
+ );
228
+ }
229
+ c.status(statusFor(loaded.error.code) as never);
230
+ return c.json(
231
+ toWireError({ code: loaded.error.code, message: loaded.error.message }, requestId),
232
+ );
233
+ }
234
+ const provenance = loaded.value;
235
+
236
+ // 2. Optionally hydrate conversation messages. Agent turns use the
237
+ // conversation id as the run id; for flow-only runs no
238
+ // conversation exists and we return an empty `messages: []`
239
+ // field so the shape stays stable.
240
+ let messages: readonly unknown[] | undefined;
241
+ if (includeMessages) {
242
+ if (options.conversationBinding === undefined) {
243
+ // Reads require a ConversationBinding. When the route is wired
244
+ // without one, fall back to the same stable-empty-shape used
245
+ // for flow-only runs so response shape doesn't change.
246
+ messages = [];
247
+ } else {
248
+ const msgResult = await options.conversationBinding.readMessages({
249
+ tenantId,
250
+ conversationId: runId as unknown as ConversationId,
251
+ });
252
+ messages = msgResult.kind === 'ok' ? msgResult.value : [];
253
+ }
254
+ }
255
+
256
+ // 3. Look up the private key material.
257
+ const privateKey = signingKey.getPrivateKey(signingKeyId);
258
+ if (privateKey === null) {
259
+ c.status(statusFor('signing-key-not-found') as never);
260
+ return c.json(
261
+ toWireError(
262
+ {
263
+ code: 'signing-key-not-found',
264
+ message: `No signing key registered with id "${signingKeyId as unknown as string}"`,
265
+ signingKeyId: signingKeyId as unknown as string,
266
+ },
267
+ requestId,
268
+ ),
269
+ );
270
+ }
271
+ const publicKeyRaw = signingKey.getPublicKey(signingKeyId);
272
+ if (publicKeyRaw === null) {
273
+ // Contract: `getPublicKey` never returns null for a key that
274
+ // `getPrivateKey` resolved. Treat mismatch as a binding bug.
275
+ c.status(statusFor('signing-key-not-found') as never);
276
+ return c.json(
277
+ toWireError(
278
+ {
279
+ code: 'signing-key-not-found',
280
+ message: `Signing key "${signingKeyId as unknown as string}" resolved a private key but no public key`,
281
+ signingKeyId: signingKeyId as unknown as string,
282
+ },
283
+ requestId,
284
+ ),
285
+ );
286
+ }
287
+
288
+ // 4. Build the canonical bundle body. Bundle shape is v1.0.0 —
289
+ // ordering here is irrelevant for signing (canonicalize sorts
290
+ // keys) but declared explicitly for reviewer scanability.
291
+ const bundleBody = {
292
+ bundleSchemaVersion: BUNDLE_SCHEMA_VERSION,
293
+ provenanceId: provenance.id as unknown as string,
294
+ runId: provenance.runId as unknown as string,
295
+ tenantId: provenance.tenantId as unknown as string,
296
+ version: provenance.version,
297
+ createdAt: provenance.createdAt as unknown as string,
298
+ ...(provenance.flowRef !== undefined && {
299
+ flowRef: {
300
+ id: provenance.flowRef.id as unknown as string,
301
+ version: provenance.flowRef.version,
302
+ },
303
+ }),
304
+ dag: {
305
+ nodes: provenance.nodes,
306
+ edges: provenance.edges,
307
+ },
308
+ ...(messages !== undefined && { messages }),
309
+ };
310
+ const canonicalBundleBytes = new TextEncoder().encode(canonicalize(bundleBody));
311
+
312
+ // 5. Sign the canonical bytes.
313
+ const signResult = signEd25519(privateKey, canonicalBundleBytes);
314
+ if (signResult.kind === 'err') {
315
+ c.status(statusFor('export-key-error') as never);
316
+ return c.json(
317
+ toWireError(
318
+ {
319
+ code: 'export-key-error',
320
+ message: `Failed to sign provenance bundle: ${signResult.error.message}`,
321
+ },
322
+ requestId,
323
+ ),
324
+ );
325
+ }
326
+
327
+ // 6. Emit the signed envelope. `bundle` is a base64 of the exact
328
+ // bytes that were signed — verifiers decode + re-canonicalize
329
+ // is unnecessary, they can verify against `atob(bundle)`
330
+ // directly.
331
+ const exportedAt = new Date().toISOString() as Timestamp;
332
+ return c.json({
333
+ runId: runId as unknown as string,
334
+ bundle: Buffer.from(canonicalBundleBytes).toString('base64'),
335
+ bundleSchemaVersion: BUNDLE_SCHEMA_VERSION,
336
+ algorithm: 'ed25519' as const,
337
+ signingKeyId: signingKeyId as unknown as string,
338
+ signature: Buffer.from(signResult.value).toString('base64'),
339
+ publicKey: serializePublicKeyPem(publicKeyRaw),
340
+ canonicalization: 'sorted-key-json' as const,
341
+ exportedAt: exportedAt as unknown as string,
342
+ });
343
+ });
344
+
345
+ return r;
346
+ }
347
+
348
+ // ============ helpers ============
349
+
350
+ interface RecordMetadata {
351
+ readonly id: string;
352
+ readonly runId: string;
353
+ readonly tenantId: string;
354
+ readonly version: string;
355
+ readonly createdAt: string;
356
+ readonly flowRef?: { readonly id: string; readonly version: string };
357
+ readonly signed: boolean;
358
+ }
359
+
360
+ function serializeRecordMetadata(row: ProvenanceRecordSummary): RecordMetadata {
361
+ return {
362
+ id: row.id as unknown as string,
363
+ runId: row.runId as unknown as string,
364
+ tenantId: row.tenantId as unknown as string,
365
+ version: row.version,
366
+ createdAt: row.createdAt as unknown as string,
367
+ ...(row.flowRef !== undefined && {
368
+ flowRef: {
369
+ id: row.flowRef.id as unknown as string,
370
+ version: row.flowRef.version,
371
+ },
372
+ }),
373
+ signed: row.signed,
374
+ };
375
+ }
376
+
377
+ interface ValidatedExportBody {
378
+ readonly signingKeyId: SigningKeyId;
379
+ readonly includeMessages: boolean;
380
+ }
381
+
382
+ type ParseResult<T> =
383
+ | { readonly kind: 'ok'; readonly value: T }
384
+ | { readonly kind: 'err'; readonly message: string };
385
+
386
+ function parseExportBody(body: Record<string, unknown>): ParseResult<ValidatedExportBody> {
387
+ const raw = body.signingKeyId;
388
+ if (typeof raw !== 'string' || raw.length === 0) {
389
+ return { kind: 'err', message: 'Field `signingKeyId` must be a non-empty string' };
390
+ }
391
+ let includeMessages = false;
392
+ if ('includeMessages' in body) {
393
+ const im = body.includeMessages;
394
+ if (typeof im !== 'boolean') {
395
+ return { kind: 'err', message: 'Field `includeMessages` must be a boolean when present' };
396
+ }
397
+ includeMessages = im;
398
+ }
399
+ return {
400
+ kind: 'ok',
401
+ value: {
402
+ signingKeyId: raw as SigningKeyId,
403
+ includeMessages,
404
+ },
405
+ };
406
+ }