@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,104 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ import type { ApiTokenId, ProjectId, TenantId } from '@kindgi/types';
5
+
6
+ /**
7
+ * Admin surface for API keys: mint, list, read, revoke. Distinct from
8
+ * `TokenResolver`, which is the read path used by the auth middleware.
9
+ * Splitting keeps the auth hot path free of write concerns and lets
10
+ * deployments plug in different implementations.
11
+ *
12
+ * An API key is a machine credential: a service account
13
+ * (`service_account:<tokenId>`) with a role in its tenant and an explicit
14
+ * list of framework capabilities. `POST /v1/tokens` mints;
15
+ * `GET /v1/tokens` and `GET /v1/tokens/:tokenId` read (never the secret);
16
+ * `POST /v1/tokens/:tokenId/revoke` revokes.
17
+ */
18
+ export interface TokenAdmin {
19
+ mint(input: TokenMintInput): Promise<TokenMintOutput>;
20
+ list(input: TokenListInput): Promise<readonly ApiTokenRecord[]>;
21
+ get(input: TokenGetInput): Promise<ApiTokenRecord | undefined>;
22
+ revoke(input: TokenRevokeInput): Promise<TokenRevokeOutcome>;
23
+ }
24
+
25
+ /**
26
+ * A key's role in its tenant. `admin` administers the tenant (and mints,
27
+ * lists and revokes keys); `member` belongs to it and administers nothing.
28
+ */
29
+ export type ApiTokenRole = 'admin' | 'member';
30
+
31
+ export const API_TOKEN_ROLES: readonly ApiTokenRole[] = ['admin', 'member'];
32
+
33
+ export interface TokenMintInput {
34
+ readonly tenantId: TenantId;
35
+ readonly role: ApiTokenRole;
36
+ /**
37
+ * Framework capabilities the key carries (`env:write`, `secrets:write`,
38
+ * …). The route only lets a caller grant capabilities it holds itself.
39
+ */
40
+ readonly capabilities: readonly string[];
41
+ /** Optional human-readable label. Shown in admin UIs. */
42
+ readonly label?: string;
43
+ /** Optional expiration date. */
44
+ readonly expiresAt?: Date;
45
+ /** Optional project scope; when set, tokens are only valid for that project. */
46
+ readonly projectId?: ProjectId;
47
+ /**
48
+ * Who minted it, as a principal reference: `user:<id>` or
49
+ * `service_account:<tokenId>`.
50
+ */
51
+ readonly createdBy?: string;
52
+ }
53
+
54
+ export interface TokenMintOutput {
55
+ /** The new key, as `list` and `get` will show it. */
56
+ readonly record: ApiTokenRecord;
57
+ /**
58
+ * The plaintext bearer token. Returned to the caller ONCE, at mint
59
+ * time. Stores must persist a hash — not the plaintext — so lost
60
+ * tokens can only be replaced, not recovered.
61
+ */
62
+ readonly token: string;
63
+ }
64
+
65
+ /** What a key looks like after minting: everything but its secret. */
66
+ export interface ApiTokenRecord {
67
+ readonly tokenId: ApiTokenId;
68
+ readonly role: ApiTokenRole;
69
+ readonly capabilities: readonly string[];
70
+ readonly label?: string;
71
+ readonly projectId?: ProjectId;
72
+ readonly createdBy?: string;
73
+ readonly createdAt: Date;
74
+ readonly expiresAt?: Date;
75
+ /** Set once revoked. A revoked key never resolves again. */
76
+ readonly revokedAt?: Date;
77
+ /** When the key last authenticated a request (updated at most once a minute). */
78
+ readonly lastUsedAt?: Date;
79
+ }
80
+
81
+ /**
82
+ * A page of keys, newest first (`createdAt` then `tokenId`, descending).
83
+ * The store returns up to `limit` records strictly after `after` in that
84
+ * order; the route asks for one more than it shows, to know whether more
85
+ * remain.
86
+ */
87
+ export interface TokenListInput {
88
+ readonly tenantId: TenantId;
89
+ readonly limit: number;
90
+ /** The last record of the previous page. */
91
+ readonly after?: { readonly createdAt: Date; readonly tokenId: ApiTokenId };
92
+ }
93
+
94
+ export interface TokenGetInput {
95
+ readonly tenantId: TenantId;
96
+ readonly tokenId: ApiTokenId;
97
+ }
98
+
99
+ export interface TokenRevokeInput {
100
+ readonly tenantId: TenantId;
101
+ readonly tokenId: ApiTokenId;
102
+ }
103
+
104
+ export type TokenRevokeOutcome = { readonly kind: 'ok' } | { readonly kind: 'not-found' };
@@ -0,0 +1,274 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ import type { TupleEnqueueHook } from '@kindgi/authz';
5
+ import type { Scope } from '@kindgi/platform';
6
+ import type { ToolManifest } from '@kindgi/tools';
7
+ import type { Cursor, ProjectId, Semver, TenantId, ToolId } from '@kindgi/types';
8
+
9
+ /**
10
+ * Caller-plugged surface for the tool catalog. Versioned CRUD mirroring
11
+ * `AgentRegistryBinding` — the API package does NOT own registry
12
+ * persistence. Deployments wire a `ToolRegistry` (from `@kindgi/tools`)
13
+ * — or a durable store — through this binding.
14
+ *
15
+ * The surface is metadata-only: a `Tool` runtime value carries a
16
+ * `handler` closure, which cannot cross HTTP. The wire body is a
17
+ * `ToolManifest` (Tool minus handler); the actual handler must already
18
+ * be registered with the runtime. Handler code is not uploaded over
19
+ * this surface.
20
+ *
21
+ * `publish` is versioned — each call adds a new `(toolId,
22
+ * version)` row. `get(toolId)` returns the latest active version;
23
+ * agents reference tools via `{ id, version: <semver-range> }` and
24
+ * `resolve(toolId, versionSpec)` walks active versions to pick the
25
+ * highest satisfying via `semver.maxSatisfying`. Retirement follows the
26
+ * versioned soft-tombstone pattern: `unregister(toolId, version)`
27
+ * soft-tombstones one version; `reinstateVersion` un-tombstones; when no
28
+ * active versions remain, the tool has no latest version and
29
+ * `GET /v1/tools/{id}` returns 410 gone (distinct from 404
30
+ * not-found via `headExists`).
31
+ */
32
+ export interface ToolRegistryBinding {
33
+ /**
34
+ * Cursor-paginated list of tools (latest active version per id).
35
+ * Optional `nameFilter` is a prefix match on the tool id — tools use
36
+ * dotted namespaces (`acme.verify-citation`), so prefix matching is
37
+ * the natural filter shape. Derived-retired tools (no active
38
+ * versions) are hidden from list by default.
39
+ */
40
+ list(input: ToolListInput): Promise<ToolPage>;
41
+ /**
42
+ * The manifest of the LATEST active version for the given tool id,
43
+ * or `null` if the id is unknown OR every version is tombstoned.
44
+ * The route uses `headExists` to distinguish 410 gone from 404
45
+ * not-found.
46
+ */
47
+ get(input: ToolGetInput): Promise<ToolManifest | null>;
48
+ /**
49
+ * Exact `(toolId, version)` lookup, including tombstoned versions.
50
+ * Provenance paths use this to resolve historical run references.
51
+ */
52
+ getVersion(input: ToolGetVersionInput): Promise<ToolManifest | null>;
53
+ /**
54
+ * Cursor-paginated list of versions for a specific tool id. Sort
55
+ * order is binding-defined (for example, publish timestamp
56
+ * descending). Returns an empty page (no
57
+ * error) when the id is unknown — the route flips that to 404 via
58
+ * a prior `headExists`.
59
+ *
60
+ * By default returns only active versions. Set
61
+ * `includeTombstoned = true` to include soft-tombstoned rows too;
62
+ * tombstoned rows carry `unregisteredAt` on the wire (ISO string),
63
+ * active rows do not.
64
+ */
65
+ listVersions(input: ToolListVersionsInput): Promise<ToolVersionPage>;
66
+ /**
67
+ * Head-row existence probe. Lets `GET /v1/tools/{id}` distinguish
68
+ * `410 gone` (identity exists, no active version) from `404 not-
69
+ * found` (never registered). Same shape as
70
+ * `AgentRegistryBinding.headExists`.
71
+ */
72
+ headExists(input: ToolGetInput): Promise<boolean>;
73
+ /**
74
+ * Resolve a semver range against active versions and return the
75
+ * highest satisfying manifest via `semver.maxSatisfying`. When
76
+ * `versionSpec` is absent, returns the latest active version (same
77
+ * as `get`). `not-satisfiable` fires when the range parses but no
78
+ * active version matches. `invalid-range` fires when the range
79
+ * itself is not valid semver grammar. `not-found` fires when the
80
+ * tool id is unknown.
81
+ */
82
+ resolve(input: ToolResolveInput): Promise<ToolResolveOutcome>;
83
+ /**
84
+ * Publish a validated tool manifest. Every publish adds a version
85
+ * row; the tool's latest version is recomputed across active
86
+ * versions. Bindings MAY reject with `already-registered` when the
87
+ * same `(toolId, version)` is re-published; the route maps that to
88
+ * `409`. Semver hygiene: version numbers are single-use even after
89
+ * unregister — reinstate instead of republishing the same bytes.
90
+ */
91
+ publish(input: ToolPublishInput): Promise<ToolPublishOutcome>;
92
+ /**
93
+ * Soft-tombstone a specific `(toolId, version)`. When this leaves
94
+ * NO active versions, the tool has no latest version — it enters the
95
+ * derived "retired" state (GET returns 410 gone).
96
+ * Publish of a new version reactivates. Version is REQUIRED
97
+ * (there are no bare-tool-id semantics).
98
+ */
99
+ unregister(input: ToolUnregisterInput): Promise<ToolUnregisterOutcome>;
100
+ /**
101
+ * Un-tombstone a specific `(toolId, version)`. Recomputes the tool's
102
+ * latest version across active versions. Restores the manifest
103
+ * bytes verbatim (semver hygiene). Idempotent.
104
+ */
105
+ reinstateVersion(input: ToolReinstateVersionInput): Promise<ToolReinstateVersionOutcome>;
106
+ }
107
+
108
+ export interface ToolListInput {
109
+ readonly tenantId: TenantId;
110
+ readonly limit: number;
111
+ readonly cursor?: Cursor;
112
+ /** Prefix match on `ToolManifest.id`. Undefined = no filter. */
113
+ readonly nameFilter?: string;
114
+ /**
115
+ * Narrow the list to a specific scope. Absent = no scope narrow
116
+ * (return every row in the tenant the caller can see).
117
+ */
118
+ readonly scope?: Scope;
119
+ /**
120
+ * `false` = literal-at-this-scope only. `true` (default) =
121
+ * inheritance walk — no-op for content-scoped bindings
122
+ * (documented for uniformity).
123
+ */
124
+ readonly inherit?: boolean;
125
+ }
126
+
127
+ export interface ToolGetInput {
128
+ readonly tenantId: TenantId;
129
+ readonly toolId: ToolId;
130
+ }
131
+
132
+ export interface ToolGetVersionInput {
133
+ readonly tenantId: TenantId;
134
+ readonly toolId: ToolId;
135
+ readonly version: Semver;
136
+ }
137
+
138
+ export interface ToolListVersionsInput {
139
+ readonly tenantId: TenantId;
140
+ readonly toolId: ToolId;
141
+ readonly limit: number;
142
+ readonly cursor?: Cursor;
143
+ /**
144
+ * `false` (default) → return only active versions. `true` → return
145
+ * active + tombstoned rows; tombstoned entries carry `unregisteredAt`
146
+ * on the wire, active entries do not. Aligns with the soft-tombstone
147
+ * pattern used by agents / flows / eval suites / policies.
148
+ */
149
+ readonly includeTombstoned?: boolean;
150
+ }
151
+
152
+ export interface ToolResolveInput {
153
+ readonly tenantId: TenantId;
154
+ readonly toolId: ToolId;
155
+ /**
156
+ * Semver range (npm grammar): `'1.2.3'` exact pin, `'^1.2.3'`
157
+ * compatible-updates, `'~1.2.3'` patch-updates, `'>=1.0.0 <2.0.0'`
158
+ * explicit range. Absent = latest active (behaves like `get`).
159
+ */
160
+ readonly versionSpec?: string;
161
+ }
162
+
163
+ export interface ToolPublishInput {
164
+ readonly tenantId: TenantId;
165
+ /**
166
+ * Project the tool is registered into. REQUIRED. Callers
167
+ * that don't naturally know a projectId (deployment
168
+ * route, boot-time dev-echo seed, MCP bridge) resolve the tenant's
169
+ * Default via `projectBinding.getDefault(tenantId)` at THEIR layer.
170
+ */
171
+ readonly projectId: ProjectId;
172
+ readonly tool: ToolManifest;
173
+ /**
174
+ * REQUIRED. Called inside the binding's write tx after row insert,
175
+ * receiving the business `toolId`. Returns tuples for the same tx.
176
+ * See `AgentPublishInput.enqueueTuples` for the design rationale.
177
+ */
178
+ readonly enqueueTuples: TupleEnqueueHook;
179
+ }
180
+
181
+ export interface ToolUnregisterInput {
182
+ readonly tenantId: TenantId;
183
+ readonly toolId: ToolId;
184
+ /** REQUIRED — no bare-id unregister under the versioned model. */
185
+ readonly version: Semver;
186
+ }
187
+
188
+ export interface ToolReinstateVersionInput {
189
+ readonly tenantId: TenantId;
190
+ readonly toolId: ToolId;
191
+ readonly version: Semver;
192
+ }
193
+
194
+ export interface ToolPage {
195
+ readonly data: readonly ToolManifest[];
196
+ readonly nextCursor?: Cursor;
197
+ }
198
+
199
+ /**
200
+ * A single row in a `listVersions` result. Manifest fields plus an
201
+ * optional `unregisteredAt` timestamp — present iff the version has
202
+ * been soft-tombstoned via `unregister`. Callers that ignore the extra
203
+ * field see a plain `ToolManifest`.
204
+ */
205
+ export type ToolVersionRow = ToolManifest & {
206
+ readonly unregisteredAt?: string;
207
+ };
208
+
209
+ export interface ToolVersionPage {
210
+ readonly data: readonly ToolVersionRow[];
211
+ readonly nextCursor?: Cursor;
212
+ }
213
+
214
+ export type ToolPublishOutcome =
215
+ | {
216
+ readonly kind: 'ok';
217
+ readonly toolId: ToolId;
218
+ readonly version: Semver;
219
+ }
220
+ | {
221
+ readonly kind: 'already-registered';
222
+ readonly toolId: ToolId;
223
+ readonly version: Semver;
224
+ }
225
+ | {
226
+ readonly kind: 'project-not-found';
227
+ readonly toolId: ToolId;
228
+ readonly version: Semver;
229
+ readonly projectId: ProjectId;
230
+ };
231
+
232
+ export type ToolUnregisterOutcome = {
233
+ readonly unregistered: boolean;
234
+ };
235
+
236
+ export type ToolReinstateVersionOutcome =
237
+ | {
238
+ readonly kind: 'ok';
239
+ readonly toolId: ToolId;
240
+ readonly version: Semver;
241
+ readonly wasTombstoned: boolean;
242
+ }
243
+ | {
244
+ readonly kind: 'not-found';
245
+ readonly toolId: ToolId;
246
+ readonly version: Semver;
247
+ };
248
+
249
+ export type ToolResolveOutcome =
250
+ | {
251
+ readonly kind: 'ok';
252
+ readonly toolId: ToolId;
253
+ readonly resolvedVersion: Semver;
254
+ readonly manifest: ToolManifest;
255
+ }
256
+ | {
257
+ /** No `(toolId)` head row — tool id was never published. */
258
+ readonly kind: 'not-found';
259
+ readonly toolId: ToolId;
260
+ }
261
+ | {
262
+ /** Head exists but no active versions match the requested range. */
263
+ readonly kind: 'not-satisfiable';
264
+ readonly toolId: ToolId;
265
+ readonly versionSpec: string;
266
+ /** Active semver strings — helps the caller diagnose. */
267
+ readonly candidateVersions: readonly string[];
268
+ }
269
+ | {
270
+ /** `versionSpec` failed `semver.validRange`. */
271
+ readonly kind: 'invalid-range';
272
+ readonly toolId: ToolId;
273
+ readonly versionSpec: string;
274
+ };
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ /**
5
+ * Trigger registry — API-layer view of the runtime-owned CRUD contract.
6
+ *
7
+ * The interface lives in `@kindgi/runtime` (public wire vocabulary);
8
+ * the Kindgi runtime provides an implementation. The API layer
9
+ * re-exports the contract here for parity with the other caller-plugged
10
+ * bindings (`AdapterRegistryBinding`, `ProviderRegistryBinding`, etc.) —
11
+ * routes import from this file, deployments plug in a satisfying impl
12
+ * (their own, if they want bespoke persistence).
13
+ */
14
+
15
+ export type {
16
+ CronTriggerRecord,
17
+ EventTriggerRecord,
18
+ GetTriggerInput,
19
+ ListTriggersInput,
20
+ RegisterCronTriggerInput,
21
+ RegisterEventTriggerInput,
22
+ RegisterTriggerError,
23
+ RegisterTriggerInput,
24
+ RegisterWebhookTriggerInput,
25
+ TriggerKind,
26
+ TriggerLifecycleError,
27
+ TriggerLifecycleInput,
28
+ TriggerListPage,
29
+ TriggerRecord,
30
+ TriggerRegistryBinding,
31
+ UpdateCronTriggerInput,
32
+ UpdateEventTriggerInput,
33
+ UpdateTriggerError,
34
+ UpdateTriggerInput,
35
+ UpdateWebhookTriggerInput,
36
+ WebhookTriggerRecord,
37
+ } from '@kindgi/runtime';
38
+ export { TRIGGER_KINDS } from '@kindgi/runtime';
package/src/types.ts ADDED
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+
4
+ import type { Principal, ReviewerRole } from '@kindgi/authz';
5
+ import type { ApiTokenId, RunId, SessionId, TenantId, UserId } from '@kindgi/types';
6
+
7
+ /**
8
+ * Hono environment shape — variables the middleware chain populates
9
+ * and route handlers consume via `c.get(...)`.
10
+ */
11
+ export interface AppEnv {
12
+ Variables: {
13
+ requestId: string;
14
+ /** Set by `bearerAuthMiddleware` on authenticated routes. */
15
+ tenantId: TenantId;
16
+ /**
17
+ * Set by `bearerAuthMiddleware` when the token's `TokenResolution`
18
+ * carried a `reviewerRole`. Approvals routes gate visibility +
19
+ * decisions on this: `standard < senior < admin`. Absent for
20
+ * tokens that were never provisioned with a reviewer role.
21
+ */
22
+ reviewerRole?: ReviewerRole;
23
+ /**
24
+ * Set by `bearerAuthMiddleware` when the token resolution carries
25
+ * a `userId`. Approvals routes hand it to `ReviewerBinding` to
26
+ * translate `UserId → ReviewerId` before calling `submitReview`.
27
+ */
28
+ userId?: UserId;
29
+ /**
30
+ * Set by `bearerAuthMiddleware` when the caller authenticated with a
31
+ * durable API key: the key's id. The principal is the key's service
32
+ * account.
33
+ */
34
+ tokenId?: ApiTokenId;
35
+ /**
36
+ * Set by `bearerAuthMiddleware` when the caller presented a
37
+ * framework-issued OAuth session token (`kgi_sk_*`).
38
+ * `/v1/identity/whoami` + `/v1/auth/logout` read this to introspect /
39
+ * revoke without a second lookup. Absent for static bearer tokens.
40
+ */
41
+ sessionId?: SessionId;
42
+ /** Identity-provider id behind a session token. Absent for bearer. */
43
+ providerId?: string;
44
+ /** Set by `sigv4Middleware` on `/s3/*`: the bucket the credential may access. */
45
+ bucket?: string;
46
+ /** Set by `sigv4Middleware` on `/s3/*`: the access key that signed the request. */
47
+ s3AccessKeyId?: string;
48
+ /** OAuth scopes granted to a session token. Absent for bearer. */
49
+ scopes?: readonly string[];
50
+ /**
51
+ * Framework capabilities granted to the bearer. Route handlers
52
+ * call `hasCapability(c, '<name>')` to gate
53
+ * writes / reveals; missing capability → 403 `permission-denied`.
54
+ * Absent = no capabilities granted.
55
+ */
56
+ capabilities?: readonly string[];
57
+ /**
58
+ * Composite authz Principal built by `principalMiddleware` from
59
+ * the token resolution. Present on every route mounted BELOW that
60
+ * middleware (i.e. all `/v1/*` routes). Consumed by the
61
+ * `authorize()` middleware factory and any route handler that
62
+ * needs to make conditional authz checks.
63
+ */
64
+ principal?: Principal;
65
+ /**
66
+ * Set when the request authenticated with a public run token
67
+ * (`kgi_pt_…`): such a request may only read the runs in
68
+ * `publicRunIds` and their descendants, on the progress routes.
69
+ */
70
+ tokenKind?: 'public-run';
71
+ /** The runs a public run token names. */
72
+ publicRunIds?: readonly RunId[];
73
+ };
74
+ }